@tdengine/websocket 3.2.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/lib/package.json +64 -0
  2. package/lib/src/client/retryConfig.d.ts +10 -0
  3. package/lib/src/client/retryConfig.d.ts.map +1 -0
  4. package/lib/src/client/retryConfig.js +46 -0
  5. package/lib/src/client/wsClient.d.ts +24 -7
  6. package/lib/src/client/wsClient.d.ts.map +1 -1
  7. package/lib/src/client/wsClient.js +164 -137
  8. package/lib/src/client/wsConnector.d.ts +55 -9
  9. package/lib/src/client/wsConnector.d.ts.map +1 -1
  10. package/lib/src/client/wsConnector.js +522 -102
  11. package/lib/src/client/wsConnectorPool.d.ts +5 -1
  12. package/lib/src/client/wsConnectorPool.d.ts.map +1 -1
  13. package/lib/src/client/wsConnectorPool.js +67 -52
  14. package/lib/src/client/wsEventCallback.d.ts +3 -0
  15. package/lib/src/client/wsEventCallback.d.ts.map +1 -1
  16. package/lib/src/client/wsEventCallback.js +67 -8
  17. package/lib/src/client/wsResponse.d.ts +0 -3
  18. package/lib/src/client/wsResponse.d.ts.map +1 -1
  19. package/lib/src/client/wsResponse.js +0 -3
  20. package/lib/src/common/addressConnectionTracker.d.ts +11 -0
  21. package/lib/src/common/addressConnectionTracker.d.ts.map +1 -0
  22. package/lib/src/common/addressConnectionTracker.js +53 -0
  23. package/lib/src/common/config.d.ts +3 -0
  24. package/lib/src/common/config.d.ts.map +1 -1
  25. package/lib/src/common/config.js +6 -0
  26. package/lib/src/common/constant.d.ts +1 -0
  27. package/lib/src/common/constant.d.ts.map +1 -1
  28. package/lib/src/common/constant.js +6 -1
  29. package/lib/src/common/dsn.d.ts +30 -0
  30. package/lib/src/common/dsn.d.ts.map +1 -0
  31. package/lib/src/common/dsn.js +221 -0
  32. package/lib/src/common/taosResult.d.ts.map +1 -1
  33. package/lib/src/common/taosResult.js +0 -5
  34. package/lib/src/common/urlParser.d.ts +32 -0
  35. package/lib/src/common/urlParser.d.ts.map +1 -0
  36. package/lib/src/common/urlParser.js +201 -0
  37. package/lib/src/common/utils.d.ts +6 -1
  38. package/lib/src/common/utils.d.ts.map +1 -1
  39. package/lib/src/common/utils.js +74 -22
  40. package/lib/src/index.d.ts.map +1 -1
  41. package/lib/src/sql/wsSql.d.ts.map +1 -1
  42. package/lib/src/sql/wsSql.js +2 -2
  43. package/lib/src/stmt/FieldBindParams.d.ts.map +1 -1
  44. package/lib/src/stmt/wsColumnInfo.d.ts.map +1 -1
  45. package/lib/src/stmt/wsParams1.d.ts.map +1 -1
  46. package/lib/src/stmt/wsParams1.js +26 -26
  47. package/lib/src/stmt/wsParams2.d.ts.map +1 -1
  48. package/lib/src/stmt/wsParams2.js +0 -3
  49. package/lib/src/stmt/wsParamsBase.d.ts.map +1 -1
  50. package/lib/src/stmt/wsProto.d.ts.map +1 -1
  51. package/lib/src/stmt/wsProto.js +16 -16
  52. package/lib/src/stmt/wsStmt1.d.ts.map +1 -1
  53. package/lib/src/stmt/wsStmt2.d.ts +12 -4
  54. package/lib/src/stmt/wsStmt2.d.ts.map +1 -1
  55. package/lib/src/stmt/wsStmt2.js +182 -64
  56. package/lib/src/stmt/wsTableInfo.d.ts.map +1 -1
  57. package/lib/src/tmq/config.d.ts +4 -2
  58. package/lib/src/tmq/config.d.ts.map +1 -1
  59. package/lib/src/tmq/config.js +30 -13
  60. package/lib/src/tmq/constant.d.ts +4 -0
  61. package/lib/src/tmq/constant.d.ts.map +1 -1
  62. package/lib/src/tmq/constant.js +4 -0
  63. package/lib/src/tmq/tmqResponse.d.ts.map +1 -1
  64. package/lib/src/tmq/tmqResponse.js +1 -4
  65. package/lib/src/tmq/wsTmq.d.ts +4 -1
  66. package/lib/src/tmq/wsTmq.d.ts.map +1 -1
  67. package/lib/src/tmq/wsTmq.js +55 -27
  68. package/lib/test/bulkPulling/a.test.d.ts +2 -0
  69. package/lib/test/bulkPulling/a.test.d.ts.map +1 -0
  70. package/lib/test/bulkPulling/a.test.js +166 -0
  71. package/lib/test/bulkPulling/cloud.tmq.test.js +3 -2
  72. package/lib/test/bulkPulling/decimal.test.js +8 -8
  73. package/lib/test/bulkPulling/dsn.test.d.ts +2 -0
  74. package/lib/test/bulkPulling/dsn.test.d.ts.map +1 -0
  75. package/lib/test/bulkPulling/dsn.test.js +397 -0
  76. package/lib/test/bulkPulling/queryTables.test.js +1 -1
  77. package/lib/test/bulkPulling/retryConfig.test.d.ts +2 -0
  78. package/lib/test/bulkPulling/retryConfig.test.d.ts.map +1 -0
  79. package/lib/test/bulkPulling/retryConfig.test.js +34 -0
  80. package/lib/test/bulkPulling/schemaless.test.js +15 -14
  81. package/lib/test/bulkPulling/sql.failover.test.d.ts +2 -0
  82. package/lib/test/bulkPulling/sql.failover.test.d.ts.map +1 -0
  83. package/lib/test/bulkPulling/sql.failover.test.js +338 -0
  84. package/lib/test/bulkPulling/sql.test.js +116 -44
  85. package/lib/test/bulkPulling/stmt1.func.test.js +31 -30
  86. package/lib/test/bulkPulling/stmt1.type.test.js +1 -1
  87. package/lib/test/bulkPulling/stmt2.failover.test.d.ts +2 -0
  88. package/lib/test/bulkPulling/stmt2.failover.test.d.ts.map +1 -0
  89. package/lib/test/bulkPulling/stmt2.failover.test.js +313 -0
  90. package/lib/test/bulkPulling/stmt2.func.test.js +37 -36
  91. package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts +2 -0
  92. package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts.map +1 -0
  93. package/lib/test/bulkPulling/stmt2.init.failover.test.js +50 -0
  94. package/lib/test/bulkPulling/stmt2.type.test.js +1 -1
  95. package/lib/test/bulkPulling/tmq.config.test.d.ts +2 -0
  96. package/lib/test/bulkPulling/tmq.config.test.d.ts.map +1 -0
  97. package/lib/test/bulkPulling/tmq.config.test.js +77 -0
  98. package/lib/test/bulkPulling/tmq.failover.test.d.ts +2 -0
  99. package/lib/test/bulkPulling/tmq.failover.test.d.ts.map +1 -0
  100. package/lib/test/bulkPulling/tmq.failover.test.js +404 -0
  101. package/lib/test/bulkPulling/tmq.test.js +135 -14
  102. package/lib/test/bulkPulling/urlParser.test.d.ts +2 -0
  103. package/lib/test/bulkPulling/urlParser.test.d.ts.map +1 -0
  104. package/lib/test/bulkPulling/urlParser.test.js +452 -0
  105. package/lib/test/bulkPulling/wsClient.reconnect.integration.test.d.ts +2 -0
  106. package/lib/test/bulkPulling/wsClient.reconnect.integration.test.d.ts.map +1 -0
  107. package/lib/test/bulkPulling/wsClient.reconnect.integration.test.js +184 -0
  108. package/lib/test/bulkPulling/wsClient.recovery.test.d.ts +2 -0
  109. package/lib/test/bulkPulling/wsClient.recovery.test.d.ts.map +1 -0
  110. package/lib/test/bulkPulling/wsClient.recovery.test.js +104 -0
  111. package/lib/test/bulkPulling/wsConfig.dsn.test.d.ts +2 -0
  112. package/lib/test/bulkPulling/wsConfig.dsn.test.d.ts.map +1 -0
  113. package/lib/test/bulkPulling/wsConfig.dsn.test.js +39 -0
  114. package/lib/test/bulkPulling/wsConnectPool.test.js +7 -7
  115. package/lib/test/bulkPulling/wsConnector.failover.test.d.ts +2 -0
  116. package/lib/test/bulkPulling/wsConnector.failover.test.d.ts.map +1 -0
  117. package/lib/test/bulkPulling/wsConnector.failover.test.js +497 -0
  118. package/lib/test/bulkPulling/wsConnectorPool.key.test.d.ts +2 -0
  119. package/lib/test/bulkPulling/wsConnectorPool.key.test.d.ts.map +1 -0
  120. package/lib/test/bulkPulling/wsConnectorPool.key.test.js +52 -0
  121. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts +2 -0
  122. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts.map +1 -0
  123. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.js +28 -0
  124. package/lib/test/bulkPulling/wsEventCallback.test.d.ts +2 -0
  125. package/lib/test/bulkPulling/wsEventCallback.test.d.ts.map +1 -0
  126. package/lib/test/bulkPulling/wsEventCallback.test.js +54 -0
  127. package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts +2 -0
  128. package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts.map +1 -0
  129. package/lib/test/bulkPulling/wsProxy.failover.integration.test.js +120 -0
  130. package/lib/test/bulkPulling/wsProxy.failover.test.d.ts +2 -0
  131. package/lib/test/bulkPulling/wsProxy.failover.test.d.ts.map +1 -0
  132. package/lib/test/bulkPulling/wsProxy.failover.test.js +465 -0
  133. package/lib/test/client/wsClient.recovery.test.d.ts +2 -0
  134. package/lib/test/client/wsClient.recovery.test.d.ts.map +1 -0
  135. package/lib/test/client/wsClient.recovery.test.js +122 -0
  136. package/lib/test/client/wsConnectPool.test.d.ts +2 -0
  137. package/lib/test/client/wsConnectPool.test.d.ts.map +1 -0
  138. package/lib/test/client/wsConnectPool.test.js +147 -0
  139. package/lib/test/client/wsConnector.failover.test.d.ts +2 -0
  140. package/lib/test/client/wsConnector.failover.test.d.ts.map +1 -0
  141. package/lib/test/client/wsConnector.failover.test.js +681 -0
  142. package/lib/test/client/wsConnector.leastConnections.test.d.ts +2 -0
  143. package/lib/test/client/wsConnector.leastConnections.test.d.ts.map +1 -0
  144. package/lib/test/client/wsConnector.leastConnections.test.js +71 -0
  145. package/lib/test/client/wsConnectorPool.key.test.d.ts +2 -0
  146. package/lib/test/client/wsConnectorPool.key.test.d.ts.map +1 -0
  147. package/lib/test/client/wsConnectorPool.key.test.js +127 -0
  148. package/lib/test/client/wsEventCallback.test.d.ts +2 -0
  149. package/lib/test/client/wsEventCallback.test.d.ts.map +1 -0
  150. package/lib/test/client/wsEventCallback.test.js +98 -0
  151. package/lib/test/common/addressConnectionTracker.test.d.ts +2 -0
  152. package/lib/test/common/addressConnectionTracker.test.d.ts.map +1 -0
  153. package/lib/test/common/addressConnectionTracker.test.js +74 -0
  154. package/lib/test/common/dsn.test.d.ts +2 -0
  155. package/lib/test/common/dsn.test.d.ts.map +1 -0
  156. package/lib/test/common/dsn.test.js +406 -0
  157. package/lib/test/common/log.test.d.ts +2 -0
  158. package/lib/test/common/log.test.d.ts.map +1 -0
  159. package/lib/test/common/log.test.js +54 -0
  160. package/lib/test/common/utils.test.d.ts +2 -0
  161. package/lib/test/common/utils.test.d.ts.map +1 -0
  162. package/lib/test/common/utils.test.js +13 -0
  163. package/lib/test/common/wsConfig.dsn.test.d.ts +2 -0
  164. package/lib/test/common/wsConfig.dsn.test.d.ts.map +1 -0
  165. package/lib/test/common/wsConfig.dsn.test.js +39 -0
  166. package/lib/test/helpers/utils.d.ts +27 -0
  167. package/lib/test/helpers/utils.d.ts.map +1 -0
  168. package/lib/test/helpers/utils.js +341 -0
  169. package/lib/test/helpers/wsFailoverProxy.d.ts +109 -0
  170. package/lib/test/helpers/wsFailoverProxy.d.ts.map +1 -0
  171. package/lib/test/helpers/wsFailoverProxy.js +420 -0
  172. package/lib/test/helpers/wsProxy.d.ts +110 -0
  173. package/lib/test/helpers/wsProxy.d.ts.map +1 -0
  174. package/lib/test/helpers/wsProxy.js +429 -0
  175. package/lib/test/sql/core/decimal.test.d.ts +2 -0
  176. package/lib/test/sql/core/decimal.test.d.ts.map +1 -0
  177. package/lib/test/sql/core/decimal.test.js +153 -0
  178. package/lib/test/sql/core/queryTables.test.d.ts +2 -0
  179. package/lib/test/sql/core/queryTables.test.d.ts.map +1 -0
  180. package/lib/test/sql/core/queryTables.test.js +506 -0
  181. package/lib/test/sql/core/schemaless.test.d.ts +2 -0
  182. package/lib/test/sql/core/schemaless.test.d.ts.map +1 -0
  183. package/lib/test/sql/core/schemaless.test.js +102 -0
  184. package/lib/test/sql/core/sql.test.d.ts +2 -0
  185. package/lib/test/sql/core/sql.test.d.ts.map +1 -0
  186. package/lib/test/sql/core/sql.test.js +324 -0
  187. package/lib/test/sql/decimal.test.d.ts +2 -0
  188. package/lib/test/sql/decimal.test.d.ts.map +1 -0
  189. package/lib/test/sql/decimal.test.js +153 -0
  190. package/lib/test/sql/failover/sql.failover.test.d.ts +2 -0
  191. package/lib/test/sql/failover/sql.failover.test.d.ts.map +1 -0
  192. package/lib/test/sql/failover/sql.failover.test.js +341 -0
  193. package/lib/test/sql/queryTables.test.d.ts +2 -0
  194. package/lib/test/sql/queryTables.test.d.ts.map +1 -0
  195. package/lib/test/sql/queryTables.test.js +506 -0
  196. package/lib/test/sql/schemaless.test.d.ts +2 -0
  197. package/lib/test/sql/schemaless.test.d.ts.map +1 -0
  198. package/lib/test/sql/schemaless.test.js +102 -0
  199. package/lib/test/sql/sql.failover.test.d.ts +2 -0
  200. package/lib/test/sql/sql.failover.test.d.ts.map +1 -0
  201. package/lib/test/sql/sql.failover.test.js +341 -0
  202. package/lib/test/sql/sql.test.d.ts +2 -0
  203. package/lib/test/sql/sql.test.d.ts.map +1 -0
  204. package/lib/test/sql/sql.test.js +324 -0
  205. package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts +2 -0
  206. package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts.map +1 -0
  207. package/lib/test/stmt/failover/stmt2.failover.mock.test.js +341 -0
  208. package/lib/test/stmt/failover/stmt2.failover.test.d.ts +2 -0
  209. package/lib/test/stmt/failover/stmt2.failover.test.d.ts.map +1 -0
  210. package/lib/test/stmt/failover/stmt2.failover.test.js +384 -0
  211. package/lib/test/stmt/stmt1.func.test.d.ts +2 -0
  212. package/lib/test/stmt/stmt1.func.test.d.ts.map +1 -0
  213. package/lib/test/stmt/stmt1.func.test.js +418 -0
  214. package/lib/test/stmt/stmt1.type.test.d.ts +2 -0
  215. package/lib/test/stmt/stmt1.type.test.d.ts.map +1 -0
  216. package/lib/test/stmt/stmt1.type.test.js +399 -0
  217. package/lib/test/stmt/stmt2.failover.mock.test.d.ts +2 -0
  218. package/lib/test/stmt/stmt2.failover.mock.test.d.ts.map +1 -0
  219. package/lib/test/stmt/stmt2.failover.mock.test.js +341 -0
  220. package/lib/test/stmt/stmt2.failover.test.d.ts +2 -0
  221. package/lib/test/stmt/stmt2.failover.test.d.ts.map +1 -0
  222. package/lib/test/stmt/stmt2.failover.test.js +384 -0
  223. package/lib/test/stmt/stmt2.func.test.d.ts +2 -0
  224. package/lib/test/stmt/stmt2.func.test.d.ts.map +1 -0
  225. package/lib/test/stmt/stmt2.func.test.js +537 -0
  226. package/lib/test/stmt/stmt2.type.test.d.ts +2 -0
  227. package/lib/test/stmt/stmt2.type.test.d.ts.map +1 -0
  228. package/lib/test/stmt/stmt2.type.test.js +401 -0
  229. package/lib/test/stmt/v1/stmt1.func.test.d.ts +2 -0
  230. package/lib/test/stmt/v1/stmt1.func.test.d.ts.map +1 -0
  231. package/lib/test/stmt/v1/stmt1.func.test.js +418 -0
  232. package/lib/test/stmt/v1/stmt1.type.test.d.ts +2 -0
  233. package/lib/test/stmt/v1/stmt1.type.test.d.ts.map +1 -0
  234. package/lib/test/stmt/v1/stmt1.type.test.js +399 -0
  235. package/lib/test/stmt/v2/stmt2.func.test.d.ts +2 -0
  236. package/lib/test/stmt/v2/stmt2.func.test.d.ts.map +1 -0
  237. package/lib/test/stmt/v2/stmt2.func.test.js +537 -0
  238. package/lib/test/stmt/v2/stmt2.type.test.d.ts +2 -0
  239. package/lib/test/stmt/v2/stmt2.type.test.d.ts.map +1 -0
  240. package/lib/test/stmt/v2/stmt2.type.test.js +401 -0
  241. package/lib/test/tmq/cloud/cloud.tmq.test.d.ts +2 -0
  242. package/lib/test/tmq/cloud/cloud.tmq.test.d.ts.map +1 -0
  243. package/lib/test/tmq/cloud/cloud.tmq.test.js +84 -0
  244. package/lib/test/tmq/cloud/tmq.cloud.test.d.ts +2 -0
  245. package/lib/test/tmq/cloud/tmq.cloud.test.d.ts.map +1 -0
  246. package/lib/test/tmq/cloud/tmq.cloud.test.js +82 -0
  247. package/lib/test/tmq/core/tmq.config.test.d.ts +2 -0
  248. package/lib/test/tmq/core/tmq.config.test.d.ts.map +1 -0
  249. package/lib/test/tmq/core/tmq.config.test.js +83 -0
  250. package/lib/test/tmq/core/tmq.test.d.ts +2 -0
  251. package/lib/test/tmq/core/tmq.test.d.ts.map +1 -0
  252. package/lib/test/tmq/core/tmq.test.js +513 -0
  253. package/lib/test/tmq/failover/tmq.failover.test.d.ts +2 -0
  254. package/lib/test/tmq/failover/tmq.failover.test.d.ts.map +1 -0
  255. package/lib/test/tmq/failover/tmq.failover.test.js +404 -0
  256. package/lib/test/tmq/tmq.cloud.test.d.ts +2 -0
  257. package/lib/test/tmq/tmq.cloud.test.d.ts.map +1 -0
  258. package/lib/test/tmq/tmq.cloud.test.js +82 -0
  259. package/lib/test/tmq/tmq.config.test.d.ts +2 -0
  260. package/lib/test/tmq/tmq.config.test.d.ts.map +1 -0
  261. package/lib/test/tmq/tmq.config.test.js +94 -0
  262. package/lib/test/tmq/tmq.failover.test.d.ts +2 -0
  263. package/lib/test/tmq/tmq.failover.test.d.ts.map +1 -0
  264. package/lib/test/tmq/tmq.failover.test.js +404 -0
  265. package/lib/test/tmq/tmq.test.d.ts +2 -0
  266. package/lib/test/tmq/tmq.test.d.ts.map +1 -0
  267. package/lib/test/tmq/tmq.test.js +513 -0
  268. package/lib/test/unit/connectionManager.test.d.ts +2 -0
  269. package/lib/test/unit/connectionManager.test.d.ts.map +1 -0
  270. package/lib/test/unit/connectionManager.test.js +91 -0
  271. package/lib/test/utils.d.ts +4 -0
  272. package/lib/test/utils.d.ts.map +1 -1
  273. package/lib/test/utils.js +11 -17
  274. package/package.json +1 -1
  275. package/readme.md +2 -2
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const wsConnectorPool_1 = require("@src/client/wsConnectorPool");
4
+ const config_1 = require("@src/common/config");
5
+ const log_1 = require("@src/common/log");
6
+ const wsSql_1 = require("@src/sql/wsSql");
7
+ const wsStmt1_1 = require("@src/stmt/wsStmt1");
8
+ const utils_1 = require("@test-helpers/utils");
9
+ const stable = "ws_stmt_stb";
10
+ const table = "stmt_001";
11
+ const db = "ws_stmt1";
12
+ const createDB = `create database if not exists ${db} keep 3650`;
13
+ const useDB = `use ${db}`;
14
+ const dropDB = `drop database if exists ${db}`;
15
+ const tableCN = "stmt_cn";
16
+ const stableCN = "ws_stmt_stb_cn";
17
+ const jsonTable = "stmt_json";
18
+ const jsonTableCN = "stmt_json_cn";
19
+ const stableTags = [
20
+ true,
21
+ -1,
22
+ -2,
23
+ -3,
24
+ -4,
25
+ 1,
26
+ 2,
27
+ 3,
28
+ 4,
29
+ parseFloat((3.1415).toFixed(5)),
30
+ parseFloat((3.14159265).toFixed(15)),
31
+ "varchar_tag_1",
32
+ "nchar_tag_1",
33
+ ];
34
+ const stableCNTags = [
35
+ false,
36
+ -1 * 2,
37
+ -2 * 2,
38
+ -3 * 2,
39
+ -4 * 2,
40
+ 1 * 2,
41
+ 2 * 2,
42
+ 3 * 2,
43
+ 4 * 2,
44
+ parseFloat((3.1415 * 2).toFixed(5)),
45
+ parseFloat((3.14159265 * 2).toFixed(15)),
46
+ "varchar_标签_壹",
47
+ "nchar_标签_贰",
48
+ ];
49
+ const tableValues = [
50
+ [1656677710000, 1656677720000, 1656677730000, 1656677740000, 1656677750000],
51
+ [0, -1, -2, -3, -4],
52
+ [-1, -2, -3, -4, -5],
53
+ [-3, -4, -5, -6, -7],
54
+ // [0, 1, 2, 3, 4],
55
+ [BigInt(-2), BigInt(-3), BigInt(-4), BigInt(-5), BigInt(-6)],
56
+ [0, 1, 2, 3, 4],
57
+ [1, 2, 3, 4, 5],
58
+ [2, 3, 4, 5, 6],
59
+ // [0, 1, 2, 3, 4],
60
+ [BigInt(3), BigInt(4), BigInt(5), BigInt(6), BigInt(7)],
61
+ [
62
+ parseFloat((3.1415).toFixed(5)),
63
+ parseFloat((3.1415 * 2).toFixed(5)),
64
+ parseFloat((3.1415 * 3).toFixed(5)),
65
+ parseFloat((3.1415 * 4).toFixed(5)),
66
+ parseFloat((3.1415 * 5).toFixed(5)),
67
+ ],
68
+ [
69
+ parseFloat((3.14159265).toFixed(15)),
70
+ parseFloat((3.14159265 * 2).toFixed(15)),
71
+ parseFloat((3.14159265 * 3).toFixed(15)),
72
+ parseFloat((3.14159265 * 4).toFixed(15)),
73
+ parseFloat((3.14159265 * 5).toFixed(15)),
74
+ ],
75
+ [
76
+ "varchar_col_1",
77
+ "varchar_col_2",
78
+ "varchar_col_3",
79
+ "varchar_col_4",
80
+ "varchar_col_5",
81
+ ],
82
+ ["nchar_col_1", "nchar_col_2", "", "nchar_col_4", "nchar_col_5"],
83
+ [true, false, true, false, true],
84
+ [null, null, null, null, null],
85
+ ];
86
+ const tableCNValues = [
87
+ [
88
+ BigInt(1656677760000),
89
+ BigInt(1656677770000),
90
+ BigInt(1656677780000),
91
+ BigInt(1656677790000),
92
+ BigInt(1656677100000),
93
+ ],
94
+ [0, -1, -2, -3, -4],
95
+ [-1, -2, -3, -4, -5],
96
+ [-2, -3, -4, -5, -6],
97
+ [BigInt(-3), BigInt(-4), BigInt(-5), BigInt(-6), BigInt(-7)],
98
+ [0, 1, 2, 3, 4],
99
+ [1, 2, 3, 4, 5],
100
+ [2, 3, 4, 5, 6],
101
+ [BigInt(3), BigInt(4), BigInt(5), BigInt(6), BigInt(7)],
102
+ [
103
+ parseFloat((3.1415).toFixed(5)),
104
+ parseFloat((3.1415 * 2).toFixed(5)),
105
+ parseFloat((3.1415 * 3).toFixed(5)),
106
+ parseFloat((3.1415 * 4).toFixed(5)),
107
+ parseFloat((3.1415 * 5).toFixed(5)),
108
+ ],
109
+ [
110
+ parseFloat((3.14159265).toFixed(15)),
111
+ parseFloat((3.14159265 * 2).toFixed(15)),
112
+ parseFloat((3.14159265 * 3).toFixed(15)),
113
+ parseFloat((3.14159265 * 4).toFixed(15)),
114
+ parseFloat((3.14159265 * 5).toFixed(15)),
115
+ ],
116
+ [
117
+ "varchar_列_壹",
118
+ "varchar_列_贰",
119
+ "varchar_列_叁",
120
+ "varchar_列_肆",
121
+ "varchar_列_伍",
122
+ ],
123
+ ["nchar_列_甲", "nchar_列_乙", "nchar_列_丙", "nchar_列_丁", "nchar_列_戊"],
124
+ [true, false, true, false, true],
125
+ [null, null, null, null, null],
126
+ ];
127
+ let geoDataArray = [];
128
+ let varbinary = [];
129
+ const encoder = new TextEncoder();
130
+ for (let i = 0; i < 5; i++) {
131
+ let data = new Uint8Array([
132
+ 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59,
133
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40,
134
+ ]);
135
+ geoDataArray.push(data.buffer);
136
+ let vdata = encoder.encode(`varchar_col_${i + 1}`);
137
+ varbinary.push(vdata.buffer);
138
+ }
139
+ const jsonTags = [
140
+ '{"key1":"taos","key2":null,"key3":"TDengine","key4":0,"key5":false}',
141
+ ];
142
+ const jsonTagsCN = [
143
+ '{"key1":"taosdata","key2":null,"key3":"TDengine涛思数据","key4":1,"key5":true}',
144
+ ];
145
+ const selectStable = `select * from ${stable}`;
146
+ const selectStableCN = `select * from ${stableCN}`;
147
+ const selectTable = `select * from ${table}`;
148
+ const selectTableCN = `select * from ${tableCN}`;
149
+ const selectJsonTable = `select * from ${jsonTable}`;
150
+ const selectJsonTableCN = `select * from ${jsonTableCN}`;
151
+ let dsn = `ws://${(0, utils_1.testUsername)()}:${(0, utils_1.testPassword)()}@localhost:6041`;
152
+ (0, log_1.setLevel)("debug");
153
+ beforeAll(async () => {
154
+ let conf = new config_1.WSConfig(dsn);
155
+ let ws = await wsSql_1.WsSql.open(conf);
156
+ await ws.exec(dropDB);
157
+ await ws.exec(createDB);
158
+ await ws.exec(useDB);
159
+ await ws.exec((0, utils_1.createBaseSTable)(stable));
160
+ await ws.exec((0, utils_1.createSTableJSON)(jsonTable));
161
+ await ws.close();
162
+ });
163
+ describe("TDWebSocket.Stmt()", () => {
164
+ jest.setTimeout(20 * 1000);
165
+ test("normal BindParam", async () => {
166
+ let wsConf = new config_1.WSConfig(dsn, "100.100.100.100");
167
+ wsConf.setDb(db);
168
+ let connector = await wsSql_1.WsSql.open(wsConf);
169
+ let stmt = await connector.stmtInit();
170
+ expect(stmt).toBeTruthy();
171
+ expect(stmt).toBeInstanceOf(wsStmt1_1.WsStmt1);
172
+ expect(stmt).toBeInstanceOf(wsStmt1_1.WsStmt1);
173
+ expect(connector.state()).toBeGreaterThan(0);
174
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, stableTags.length, db, stable));
175
+ await stmt.setTableName(table);
176
+ let tagParams = stmt.newStmtParam();
177
+ tagParams.setBoolean([stableTags[0]]);
178
+ tagParams.setTinyInt([stableTags[1]]);
179
+ tagParams.setSmallInt([stableTags[2]]);
180
+ tagParams.setInt([stableTags[3]]);
181
+ tagParams.setBigint([BigInt(stableTags[4])]);
182
+ tagParams.setUTinyInt([stableTags[5]]);
183
+ tagParams.setUSmallInt([stableTags[6]]);
184
+ tagParams.setUInt([stableTags[7]]);
185
+ tagParams.setUBigint([BigInt(stableTags[8])]);
186
+ tagParams.setFloat([stableTags[9]]);
187
+ tagParams.setDouble([stableTags[10]]);
188
+ tagParams.setBinary([stableTags[11]]);
189
+ tagParams.setNchar([stableTags[12]]);
190
+ await stmt.setTags(tagParams);
191
+ let bindParams = stmt.newStmtParam();
192
+ bindParams.setTimestamp(tableValues[0]);
193
+ bindParams.setTinyInt(tableValues[1]);
194
+ bindParams.setSmallInt(tableValues[2]);
195
+ bindParams.setInt(tableValues[3]);
196
+ bindParams.setBigint(tableValues[4]);
197
+ bindParams.setUTinyInt(tableValues[5]);
198
+ bindParams.setUSmallInt(tableValues[6]);
199
+ bindParams.setUInt(tableValues[7]);
200
+ bindParams.setUBigint(tableValues[8]);
201
+ bindParams.setFloat(tableValues[9]);
202
+ bindParams.setDouble(tableValues[10]);
203
+ bindParams.setBinary(tableValues[11]);
204
+ bindParams.setNchar(tableValues[12]);
205
+ bindParams.setBoolean(tableValues[13]);
206
+ bindParams.setInt(tableValues[14]);
207
+ bindParams.setGeometry(geoDataArray);
208
+ bindParams.setVarBinary(varbinary);
209
+ await stmt.bind(bindParams);
210
+ await stmt.batch();
211
+ await stmt.exec();
212
+ expect(stmt.getLastAffected()).toEqual(5);
213
+ await stmt.close();
214
+ let result = await connector.exec(`select * from ${db}.${stable}`);
215
+ console.log(result);
216
+ await connector.close();
217
+ });
218
+ test("normal CN BindParam", async () => {
219
+ let wsConf = new config_1.WSConfig(dsn, "100.100.100.100");
220
+ wsConf.setDb(db);
221
+ let connector = await wsSql_1.WsSql.open(wsConf);
222
+ let stmt = await (await connector).stmtInit();
223
+ expect(stmt).toBeTruthy();
224
+ expect(stmt).toBeInstanceOf(wsStmt1_1.WsStmt1);
225
+ expect(connector.state()).toBeGreaterThan(0);
226
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, stableTags.length, db, stable));
227
+ await stmt.setTableName(table);
228
+ let tagParams = stmt.newStmtParam();
229
+ tagParams.setBoolean([stableCNTags[0]]);
230
+ tagParams.setTinyInt([stableCNTags[1]]);
231
+ tagParams.setSmallInt([stableCNTags[2]]);
232
+ tagParams.setInt([stableCNTags[3]]);
233
+ tagParams.setBigint([BigInt(stableCNTags[4])]);
234
+ tagParams.setUTinyInt([stableCNTags[5]]);
235
+ tagParams.setUSmallInt([stableCNTags[6]]);
236
+ tagParams.setUInt([stableCNTags[7]]);
237
+ tagParams.setUBigint([BigInt(stableCNTags[8])]);
238
+ tagParams.setFloat([stableCNTags[9]]);
239
+ tagParams.setDouble([stableCNTags[10]]);
240
+ tagParams.setBinary([stableCNTags[11]]);
241
+ tagParams.setNchar([stableCNTags[12]]);
242
+ await stmt.setTags(tagParams);
243
+ let bindParams = stmt.newStmtParam();
244
+ bindParams.setTimestamp(tableCNValues[0]);
245
+ bindParams.setTinyInt(tableCNValues[1]);
246
+ bindParams.setSmallInt(tableCNValues[2]);
247
+ bindParams.setInt(tableCNValues[3]);
248
+ bindParams.setBigint(tableCNValues[4]);
249
+ bindParams.setUTinyInt(tableCNValues[5]);
250
+ bindParams.setUSmallInt(tableCNValues[6]);
251
+ bindParams.setUInt(tableCNValues[7]);
252
+ bindParams.setUBigint(tableCNValues[8]);
253
+ bindParams.setFloat(tableCNValues[9]);
254
+ bindParams.setDouble(tableCNValues[10]);
255
+ bindParams.setBinary(tableCNValues[11]);
256
+ bindParams.setNchar(tableCNValues[12]);
257
+ bindParams.setBoolean(tableCNValues[13]);
258
+ bindParams.setInt(tableCNValues[14]);
259
+ bindParams.setGeometry(geoDataArray);
260
+ bindParams.setVarBinary(varbinary);
261
+ await stmt.bind(bindParams);
262
+ await stmt.batch();
263
+ await stmt.exec();
264
+ expect(stmt.getLastAffected()).toEqual(5);
265
+ await stmt.close();
266
+ let result = await connector.exec(`select count(*) from ${db}.${stable}`);
267
+ console.log(result);
268
+ await connector.close();
269
+ });
270
+ test("normal json tag BindParam", async () => {
271
+ let wsConf = new config_1.WSConfig(dsn, "100.100.100.100");
272
+ wsConf.setDb(db);
273
+ let connector = await wsSql_1.WsSql.open(wsConf);
274
+ let stmt = await (await connector).stmtInit();
275
+ expect(stmt).toBeTruthy();
276
+ expect(stmt).toBeInstanceOf(wsStmt1_1.WsStmt1);
277
+ expect(connector.state()).toBeGreaterThan(0);
278
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, jsonTags.length, db, jsonTable));
279
+ await stmt.setTableName(`${jsonTable}_001`);
280
+ let tagParams = stmt.newStmtParam();
281
+ tagParams.setJson(jsonTags);
282
+ await stmt.setTags(tagParams);
283
+ let bindParams = stmt.newStmtParam();
284
+ bindParams.setTimestamp(tableCNValues[0]);
285
+ bindParams.setTinyInt(tableCNValues[1]);
286
+ bindParams.setSmallInt(tableCNValues[2]);
287
+ bindParams.setInt(tableCNValues[3]);
288
+ bindParams.setBigint(tableCNValues[4]);
289
+ bindParams.setUTinyInt(tableCNValues[5]);
290
+ bindParams.setUSmallInt(tableCNValues[6]);
291
+ bindParams.setUInt(tableCNValues[7]);
292
+ bindParams.setUBigint(tableCNValues[8]);
293
+ bindParams.setFloat(tableCNValues[9]);
294
+ bindParams.setDouble(tableCNValues[10]);
295
+ bindParams.setBinary(tableCNValues[11]);
296
+ bindParams.setNchar(tableCNValues[12]);
297
+ bindParams.setBoolean(tableCNValues[13]);
298
+ bindParams.setInt(tableCNValues[14]);
299
+ bindParams.setGeometry(geoDataArray);
300
+ bindParams.setVarBinary(varbinary);
301
+ await stmt.bind(bindParams);
302
+ await stmt.batch();
303
+ await stmt.exec();
304
+ expect(stmt.getLastAffected()).toEqual(5);
305
+ await stmt.close();
306
+ let result = await connector.exec(`select * from ${db}.${jsonTable}`);
307
+ console.log(result);
308
+ await connector.close();
309
+ });
310
+ test("normal json cn tag BindParam", async () => {
311
+ let wsConf = new config_1.WSConfig(dsn, "100.100.100.100");
312
+ wsConf.setDb(db);
313
+ let connector = await wsSql_1.WsSql.open(wsConf);
314
+ let stmt = await connector.stmtInit();
315
+ expect(stmt).toBeTruthy();
316
+ expect(stmt).toBeInstanceOf(wsStmt1_1.WsStmt1);
317
+ expect(connector.state()).toBeGreaterThan(0);
318
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, jsonTags.length, db, jsonTable));
319
+ await stmt.setTableName(`${jsonTable}_001`);
320
+ let tagParams = stmt.newStmtParam();
321
+ tagParams.setJson(jsonTagsCN);
322
+ await stmt.setTags(tagParams);
323
+ let bindParams = stmt.newStmtParam();
324
+ bindParams.setTimestamp(tableCNValues[0]);
325
+ bindParams.setTinyInt(tableCNValues[1]);
326
+ bindParams.setSmallInt(tableCNValues[2]);
327
+ bindParams.setInt(tableCNValues[3]);
328
+ bindParams.setBigint(tableCNValues[4]);
329
+ bindParams.setUTinyInt(tableCNValues[5]);
330
+ bindParams.setUSmallInt(tableCNValues[6]);
331
+ bindParams.setUInt(tableCNValues[7]);
332
+ bindParams.setUBigint(tableCNValues[8]);
333
+ bindParams.setFloat(tableCNValues[9]);
334
+ bindParams.setDouble(tableCNValues[10]);
335
+ bindParams.setBinary(tableCNValues[11]);
336
+ bindParams.setNchar(tableCNValues[12]);
337
+ bindParams.setBoolean(tableCNValues[13]);
338
+ bindParams.setInt(tableCNValues[14]);
339
+ bindParams.setGeometry(geoDataArray);
340
+ bindParams.setVarBinary(varbinary);
341
+ await stmt.bind(bindParams);
342
+ await stmt.batch();
343
+ await stmt.exec();
344
+ expect(stmt.getLastAffected()).toEqual(5);
345
+ await stmt.close();
346
+ let result = await connector.exec(`select * from ${db}.${jsonTable}`);
347
+ console.log(result);
348
+ await connector.close();
349
+ });
350
+ });
351
+ test("test bind exception cases", async () => {
352
+ let wsConf = new config_1.WSConfig(dsn, "100.100.100.100");
353
+ let connector = await wsSql_1.WsSql.open(wsConf);
354
+ let stmt = await connector.stmtInit();
355
+ expect(stmt).toBeInstanceOf(wsStmt1_1.WsStmt1);
356
+ const params = stmt.newStmtParam();
357
+ const emptyArrayMethods = [
358
+ { method: "setBoolean", name: "SetBooleanColumn" },
359
+ { method: "setTinyInt", name: "SetTinyIntColumn" },
360
+ { method: "setUTinyInt", name: "SetUTinyIntColumn" },
361
+ { method: "setSmallInt", name: "SetSmallIntColumn" },
362
+ { method: "setUSmallInt", name: "SetSmallIntColumn" },
363
+ { method: "setInt", name: "SetIntColumn" },
364
+ { method: "setUInt", name: "SetUIntColumn" },
365
+ { method: "setBigint", name: "SetBigIntColumn" },
366
+ { method: "setUBigint", name: "SetUBigIntColumn" },
367
+ { method: "setFloat", name: "SetFloatColumn" },
368
+ { method: "setDouble", name: "SetDoubleColumn" },
369
+ { method: "setTimestamp", name: "SeTimestampColumn" },
370
+ ];
371
+ emptyArrayMethods.forEach(({ method, name }) => {
372
+ expect(() => {
373
+ params[method]([]);
374
+ }).toThrow(`${name} params is invalid!`);
375
+ expect(() => {
376
+ params[method](null);
377
+ }).toThrow(`${name} params is invalid!`);
378
+ expect(() => {
379
+ params[method](undefined);
380
+ }).toThrow(`${name} params is invalid!`);
381
+ });
382
+ expect(() => {
383
+ params.setBoolean(["not boolean"]);
384
+ }).toThrow("SetTinyIntColumn params is invalid!");
385
+ expect(() => {
386
+ params.setTinyInt(["not number"]);
387
+ }).toThrow("SetTinyIntColumn params is invalid!");
388
+ expect(() => {
389
+ params.setBigint(["not bigint"]);
390
+ }).toThrow("SetTinyIntColumn params is invalid!");
391
+ await connector.close();
392
+ });
393
+ afterAll(async () => {
394
+ let conf = new config_1.WSConfig(dsn);
395
+ let ws = await wsSql_1.WsSql.open(conf);
396
+ await ws.exec(dropDB);
397
+ await ws.close();
398
+ wsConnectorPool_1.WebSocketConnectionPool.instance().destroyed();
399
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stmt2.failover.mock.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stmt2.failover.mock.test.d.ts","sourceRoot":"","sources":["../../../test/stmt/stmt2.failover.mock.test.ts"],"names":[],"mappings":""}