@tdengine/websocket 3.2.3 → 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 (224) hide show
  1. package/lib/package.json +1 -1
  2. package/lib/src/client/wsClient.d.ts +23 -7
  3. package/lib/src/client/wsClient.d.ts.map +1 -1
  4. package/lib/src/client/wsClient.js +154 -139
  5. package/lib/src/client/wsConnector.d.ts +55 -9
  6. package/lib/src/client/wsConnector.d.ts.map +1 -1
  7. package/lib/src/client/wsConnector.js +519 -100
  8. package/lib/src/client/wsConnectorPool.d.ts +5 -1
  9. package/lib/src/client/wsConnectorPool.d.ts.map +1 -1
  10. package/lib/src/client/wsConnectorPool.js +61 -43
  11. package/lib/src/client/wsEventCallback.d.ts +3 -0
  12. package/lib/src/client/wsEventCallback.d.ts.map +1 -1
  13. package/lib/src/client/wsEventCallback.js +67 -8
  14. package/lib/src/common/addressConnectionTracker.d.ts +11 -0
  15. package/lib/src/common/addressConnectionTracker.d.ts.map +1 -0
  16. package/lib/src/common/addressConnectionTracker.js +53 -0
  17. package/lib/src/common/dsn.d.ts +14 -2
  18. package/lib/src/common/dsn.d.ts.map +1 -1
  19. package/lib/src/common/dsn.js +91 -22
  20. package/lib/src/common/taosResult.d.ts.map +1 -1
  21. package/lib/src/common/taosResult.js +0 -5
  22. package/lib/src/common/urlParser.d.ts +32 -0
  23. package/lib/src/common/urlParser.d.ts.map +1 -0
  24. package/lib/src/common/urlParser.js +201 -0
  25. package/lib/src/common/utils.d.ts +2 -1
  26. package/lib/src/common/utils.d.ts.map +1 -1
  27. package/lib/src/common/utils.js +35 -34
  28. package/lib/src/sql/wsSql.js +2 -2
  29. package/lib/src/stmt/FieldBindParams.d.ts.map +1 -1
  30. package/lib/src/stmt/wsColumnInfo.d.ts.map +1 -1
  31. package/lib/src/stmt/wsParams1.d.ts.map +1 -1
  32. package/lib/src/stmt/wsParams1.js +26 -26
  33. package/lib/src/stmt/wsParams2.d.ts.map +1 -1
  34. package/lib/src/stmt/wsParams2.js +0 -3
  35. package/lib/src/stmt/wsParamsBase.d.ts.map +1 -1
  36. package/lib/src/stmt/wsProto.d.ts.map +1 -1
  37. package/lib/src/stmt/wsProto.js +16 -16
  38. package/lib/src/stmt/wsStmt1.d.ts.map +1 -1
  39. package/lib/src/stmt/wsStmt2.d.ts +12 -4
  40. package/lib/src/stmt/wsStmt2.d.ts.map +1 -1
  41. package/lib/src/stmt/wsStmt2.js +182 -64
  42. package/lib/src/stmt/wsTableInfo.d.ts.map +1 -1
  43. package/lib/src/tmq/config.d.ts +3 -2
  44. package/lib/src/tmq/config.d.ts.map +1 -1
  45. package/lib/src/tmq/config.js +15 -15
  46. package/lib/src/tmq/wsTmq.d.ts +4 -1
  47. package/lib/src/tmq/wsTmq.d.ts.map +1 -1
  48. package/lib/src/tmq/wsTmq.js +50 -27
  49. package/lib/test/bulkPulling/a.test.d.ts +2 -0
  50. package/lib/test/bulkPulling/a.test.d.ts.map +1 -0
  51. package/lib/test/bulkPulling/a.test.js +166 -0
  52. package/lib/test/bulkPulling/dsn.test.js +19 -0
  53. package/lib/test/bulkPulling/retryConfig.test.js +11 -11
  54. package/lib/test/bulkPulling/sql.failover.test.d.ts +2 -0
  55. package/lib/test/bulkPulling/sql.failover.test.d.ts.map +1 -0
  56. package/lib/test/bulkPulling/sql.failover.test.js +338 -0
  57. package/lib/test/bulkPulling/stmt2.failover.test.d.ts +2 -0
  58. package/lib/test/bulkPulling/stmt2.failover.test.d.ts.map +1 -0
  59. package/lib/test/bulkPulling/stmt2.failover.test.js +313 -0
  60. package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts +2 -0
  61. package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts.map +1 -0
  62. package/lib/test/bulkPulling/stmt2.init.failover.test.js +50 -0
  63. package/lib/test/bulkPulling/tmq.failover.test.d.ts +2 -0
  64. package/lib/test/bulkPulling/tmq.failover.test.d.ts.map +1 -0
  65. package/lib/test/bulkPulling/tmq.failover.test.js +404 -0
  66. package/lib/test/bulkPulling/urlParser.test.d.ts +2 -0
  67. package/lib/test/bulkPulling/urlParser.test.d.ts.map +1 -0
  68. package/lib/test/bulkPulling/urlParser.test.js +452 -0
  69. package/lib/test/bulkPulling/wsClient.reconnect.integration.test.js +2 -2
  70. package/lib/test/bulkPulling/wsClient.recovery.test.d.ts +2 -0
  71. package/lib/test/bulkPulling/wsClient.recovery.test.d.ts.map +1 -0
  72. package/lib/test/bulkPulling/wsClient.recovery.test.js +104 -0
  73. package/lib/test/bulkPulling/wsConfig.dsn.test.js +2 -0
  74. package/lib/test/bulkPulling/wsConnector.failover.test.js +396 -27
  75. package/lib/test/bulkPulling/wsConnectorPool.key.test.js +12 -10
  76. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts +2 -0
  77. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts.map +1 -0
  78. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.js +28 -0
  79. package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts +2 -0
  80. package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts.map +1 -0
  81. package/lib/test/bulkPulling/wsProxy.failover.integration.test.js +120 -0
  82. package/lib/test/bulkPulling/wsProxy.failover.test.d.ts +2 -0
  83. package/lib/test/bulkPulling/wsProxy.failover.test.d.ts.map +1 -0
  84. package/lib/test/bulkPulling/wsProxy.failover.test.js +465 -0
  85. package/lib/test/client/wsClient.recovery.test.d.ts +2 -0
  86. package/lib/test/client/wsClient.recovery.test.d.ts.map +1 -0
  87. package/lib/test/client/wsClient.recovery.test.js +122 -0
  88. package/lib/test/client/wsConnectPool.test.d.ts +2 -0
  89. package/lib/test/client/wsConnectPool.test.d.ts.map +1 -0
  90. package/lib/test/client/wsConnectPool.test.js +147 -0
  91. package/lib/test/client/wsConnector.failover.test.d.ts +2 -0
  92. package/lib/test/client/wsConnector.failover.test.d.ts.map +1 -0
  93. package/lib/test/client/wsConnector.failover.test.js +681 -0
  94. package/lib/test/client/wsConnector.leastConnections.test.d.ts +2 -0
  95. package/lib/test/client/wsConnector.leastConnections.test.d.ts.map +1 -0
  96. package/lib/test/client/wsConnector.leastConnections.test.js +71 -0
  97. package/lib/test/client/wsConnectorPool.key.test.d.ts +2 -0
  98. package/lib/test/client/wsConnectorPool.key.test.d.ts.map +1 -0
  99. package/lib/test/client/wsConnectorPool.key.test.js +127 -0
  100. package/lib/test/client/wsEventCallback.test.d.ts +2 -0
  101. package/lib/test/client/wsEventCallback.test.d.ts.map +1 -0
  102. package/lib/test/client/wsEventCallback.test.js +98 -0
  103. package/lib/test/common/addressConnectionTracker.test.d.ts +2 -0
  104. package/lib/test/common/addressConnectionTracker.test.d.ts.map +1 -0
  105. package/lib/test/common/addressConnectionTracker.test.js +74 -0
  106. package/lib/test/common/dsn.test.d.ts +2 -0
  107. package/lib/test/common/dsn.test.d.ts.map +1 -0
  108. package/lib/test/common/dsn.test.js +406 -0
  109. package/lib/test/common/log.test.d.ts +2 -0
  110. package/lib/test/common/log.test.d.ts.map +1 -0
  111. package/lib/test/common/log.test.js +54 -0
  112. package/lib/test/common/utils.test.d.ts +2 -0
  113. package/lib/test/common/utils.test.d.ts.map +1 -0
  114. package/lib/test/common/utils.test.js +13 -0
  115. package/lib/test/common/wsConfig.dsn.test.d.ts +2 -0
  116. package/lib/test/common/wsConfig.dsn.test.d.ts.map +1 -0
  117. package/lib/test/common/wsConfig.dsn.test.js +39 -0
  118. package/lib/test/helpers/utils.d.ts +27 -0
  119. package/lib/test/helpers/utils.d.ts.map +1 -0
  120. package/lib/test/helpers/utils.js +341 -0
  121. package/lib/test/helpers/wsFailoverProxy.d.ts +109 -0
  122. package/lib/test/helpers/wsFailoverProxy.d.ts.map +1 -0
  123. package/lib/test/helpers/wsFailoverProxy.js +420 -0
  124. package/lib/test/helpers/wsProxy.d.ts +110 -0
  125. package/lib/test/helpers/wsProxy.d.ts.map +1 -0
  126. package/lib/test/helpers/wsProxy.js +429 -0
  127. package/lib/test/sql/core/decimal.test.d.ts +2 -0
  128. package/lib/test/sql/core/decimal.test.d.ts.map +1 -0
  129. package/lib/test/sql/core/decimal.test.js +153 -0
  130. package/lib/test/sql/core/queryTables.test.d.ts +2 -0
  131. package/lib/test/sql/core/queryTables.test.d.ts.map +1 -0
  132. package/lib/test/sql/core/queryTables.test.js +506 -0
  133. package/lib/test/sql/core/schemaless.test.d.ts +2 -0
  134. package/lib/test/sql/core/schemaless.test.d.ts.map +1 -0
  135. package/lib/test/sql/core/schemaless.test.js +102 -0
  136. package/lib/test/sql/core/sql.test.d.ts +2 -0
  137. package/lib/test/sql/core/sql.test.d.ts.map +1 -0
  138. package/lib/test/sql/core/sql.test.js +324 -0
  139. package/lib/test/sql/decimal.test.d.ts +2 -0
  140. package/lib/test/sql/decimal.test.d.ts.map +1 -0
  141. package/lib/test/sql/decimal.test.js +153 -0
  142. package/lib/test/sql/failover/sql.failover.test.d.ts +2 -0
  143. package/lib/test/sql/failover/sql.failover.test.d.ts.map +1 -0
  144. package/lib/test/sql/failover/sql.failover.test.js +341 -0
  145. package/lib/test/sql/queryTables.test.d.ts +2 -0
  146. package/lib/test/sql/queryTables.test.d.ts.map +1 -0
  147. package/lib/test/sql/queryTables.test.js +506 -0
  148. package/lib/test/sql/schemaless.test.d.ts +2 -0
  149. package/lib/test/sql/schemaless.test.d.ts.map +1 -0
  150. package/lib/test/sql/schemaless.test.js +102 -0
  151. package/lib/test/sql/sql.failover.test.d.ts +2 -0
  152. package/lib/test/sql/sql.failover.test.d.ts.map +1 -0
  153. package/lib/test/sql/sql.failover.test.js +341 -0
  154. package/lib/test/sql/sql.test.d.ts +2 -0
  155. package/lib/test/sql/sql.test.d.ts.map +1 -0
  156. package/lib/test/sql/sql.test.js +324 -0
  157. package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts +2 -0
  158. package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts.map +1 -0
  159. package/lib/test/stmt/failover/stmt2.failover.mock.test.js +341 -0
  160. package/lib/test/stmt/failover/stmt2.failover.test.d.ts +2 -0
  161. package/lib/test/stmt/failover/stmt2.failover.test.d.ts.map +1 -0
  162. package/lib/test/stmt/failover/stmt2.failover.test.js +384 -0
  163. package/lib/test/stmt/stmt1.func.test.d.ts +2 -0
  164. package/lib/test/stmt/stmt1.func.test.d.ts.map +1 -0
  165. package/lib/test/stmt/stmt1.func.test.js +418 -0
  166. package/lib/test/stmt/stmt1.type.test.d.ts +2 -0
  167. package/lib/test/stmt/stmt1.type.test.d.ts.map +1 -0
  168. package/lib/test/stmt/stmt1.type.test.js +399 -0
  169. package/lib/test/stmt/stmt2.failover.mock.test.d.ts +2 -0
  170. package/lib/test/stmt/stmt2.failover.mock.test.d.ts.map +1 -0
  171. package/lib/test/stmt/stmt2.failover.mock.test.js +341 -0
  172. package/lib/test/stmt/stmt2.failover.test.d.ts +2 -0
  173. package/lib/test/stmt/stmt2.failover.test.d.ts.map +1 -0
  174. package/lib/test/stmt/stmt2.failover.test.js +384 -0
  175. package/lib/test/stmt/stmt2.func.test.d.ts +2 -0
  176. package/lib/test/stmt/stmt2.func.test.d.ts.map +1 -0
  177. package/lib/test/stmt/stmt2.func.test.js +537 -0
  178. package/lib/test/stmt/stmt2.type.test.d.ts +2 -0
  179. package/lib/test/stmt/stmt2.type.test.d.ts.map +1 -0
  180. package/lib/test/stmt/stmt2.type.test.js +401 -0
  181. package/lib/test/stmt/v1/stmt1.func.test.d.ts +2 -0
  182. package/lib/test/stmt/v1/stmt1.func.test.d.ts.map +1 -0
  183. package/lib/test/stmt/v1/stmt1.func.test.js +418 -0
  184. package/lib/test/stmt/v1/stmt1.type.test.d.ts +2 -0
  185. package/lib/test/stmt/v1/stmt1.type.test.d.ts.map +1 -0
  186. package/lib/test/stmt/v1/stmt1.type.test.js +399 -0
  187. package/lib/test/stmt/v2/stmt2.func.test.d.ts +2 -0
  188. package/lib/test/stmt/v2/stmt2.func.test.d.ts.map +1 -0
  189. package/lib/test/stmt/v2/stmt2.func.test.js +537 -0
  190. package/lib/test/stmt/v2/stmt2.type.test.d.ts +2 -0
  191. package/lib/test/stmt/v2/stmt2.type.test.d.ts.map +1 -0
  192. package/lib/test/stmt/v2/stmt2.type.test.js +401 -0
  193. package/lib/test/tmq/cloud/cloud.tmq.test.d.ts +2 -0
  194. package/lib/test/tmq/cloud/cloud.tmq.test.d.ts.map +1 -0
  195. package/lib/test/tmq/cloud/cloud.tmq.test.js +84 -0
  196. package/lib/test/tmq/cloud/tmq.cloud.test.d.ts +2 -0
  197. package/lib/test/tmq/cloud/tmq.cloud.test.d.ts.map +1 -0
  198. package/lib/test/tmq/cloud/tmq.cloud.test.js +82 -0
  199. package/lib/test/tmq/core/tmq.config.test.d.ts +2 -0
  200. package/lib/test/tmq/core/tmq.config.test.d.ts.map +1 -0
  201. package/lib/test/tmq/core/tmq.config.test.js +83 -0
  202. package/lib/test/tmq/core/tmq.test.d.ts +2 -0
  203. package/lib/test/tmq/core/tmq.test.d.ts.map +1 -0
  204. package/lib/test/tmq/core/tmq.test.js +513 -0
  205. package/lib/test/tmq/failover/tmq.failover.test.d.ts +2 -0
  206. package/lib/test/tmq/failover/tmq.failover.test.d.ts.map +1 -0
  207. package/lib/test/tmq/failover/tmq.failover.test.js +404 -0
  208. package/lib/test/tmq/tmq.cloud.test.d.ts +2 -0
  209. package/lib/test/tmq/tmq.cloud.test.d.ts.map +1 -0
  210. package/lib/test/tmq/tmq.cloud.test.js +82 -0
  211. package/lib/test/tmq/tmq.config.test.d.ts +2 -0
  212. package/lib/test/tmq/tmq.config.test.d.ts.map +1 -0
  213. package/lib/test/tmq/tmq.config.test.js +94 -0
  214. package/lib/test/tmq/tmq.failover.test.d.ts +2 -0
  215. package/lib/test/tmq/tmq.failover.test.d.ts.map +1 -0
  216. package/lib/test/tmq/tmq.failover.test.js +404 -0
  217. package/lib/test/tmq/tmq.test.d.ts +2 -0
  218. package/lib/test/tmq/tmq.test.d.ts.map +1 -0
  219. package/lib/test/tmq/tmq.test.js +513 -0
  220. package/lib/test/unit/connectionManager.test.d.ts +2 -0
  221. package/lib/test/unit/connectionManager.test.d.ts.map +1 -0
  222. package/lib/test/unit/connectionManager.test.js +91 -0
  223. package/package.json +1 -1
  224. package/readme.md +2 -2
@@ -0,0 +1,401 @@
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 wsStmt2_1 = require("@src/stmt/wsStmt2");
8
+ const utils_1 = require("@test-helpers/utils");
9
+ const stable = "ws_stmt_stb";
10
+ const table = "stmt_001";
11
+ const db = "ws_stmt2";
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);
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(wsStmt2_1.WsStmt2);
172
+ expect(connector.state()).toBeGreaterThan(0);
173
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, stableTags.length, db, stable));
174
+ await stmt.setTableName(table);
175
+ let tagParams = stmt.newStmtParam();
176
+ tagParams.setBoolean([stableTags[0]]);
177
+ tagParams.setTinyInt([stableTags[1]]);
178
+ tagParams.setSmallInt([stableTags[2]]);
179
+ tagParams.setInt([stableTags[3]]);
180
+ tagParams.setBigint([BigInt(stableTags[4])]);
181
+ tagParams.setUTinyInt([stableTags[5]]);
182
+ tagParams.setUSmallInt([stableTags[6]]);
183
+ tagParams.setUInt([stableTags[7]]);
184
+ tagParams.setUBigint([BigInt(stableTags[8])]);
185
+ tagParams.setFloat([stableTags[9]]);
186
+ tagParams.setDouble([stableTags[10]]);
187
+ tagParams.setBinary([stableTags[11]]);
188
+ tagParams.setNchar([stableTags[12]]);
189
+ await stmt.setTags(tagParams);
190
+ let bindParams = stmt.newStmtParam();
191
+ bindParams.setTimestamp(tableValues[0]);
192
+ bindParams.setTinyInt(tableValues[1]);
193
+ bindParams.setSmallInt(tableValues[2]);
194
+ bindParams.setInt(tableValues[3]);
195
+ bindParams.setBigint(tableValues[4]);
196
+ bindParams.setUTinyInt(tableValues[5]);
197
+ bindParams.setUSmallInt(tableValues[6]);
198
+ bindParams.setUInt(tableValues[7]);
199
+ bindParams.setUBigint(tableValues[8]);
200
+ bindParams.setFloat(tableValues[9]);
201
+ bindParams.setDouble(tableValues[10]);
202
+ bindParams.setBinary(tableValues[11]);
203
+ bindParams.setNchar(tableValues[12]);
204
+ bindParams.setBoolean(tableValues[13]);
205
+ bindParams.setInt(tableValues[14]);
206
+ bindParams.setGeometry(geoDataArray);
207
+ bindParams.setVarBinary(varbinary);
208
+ await stmt.bind(bindParams);
209
+ await stmt.batch();
210
+ await stmt.exec();
211
+ expect(stmt.getLastAffected()).toEqual(5);
212
+ await stmt.close();
213
+ let result = await connector.exec(`select * from ${db}.${stable}`);
214
+ console.log(result);
215
+ await connector.close();
216
+ });
217
+ test("normal CN BindParam", async () => {
218
+ let wsConf = new config_1.WSConfig(dsn);
219
+ wsConf.setDb(db);
220
+ let connector = await wsSql_1.WsSql.open(wsConf);
221
+ let stmt = await (await connector).stmtInit();
222
+ expect(stmt).toBeTruthy();
223
+ expect(stmt).toBeInstanceOf(wsStmt2_1.WsStmt2);
224
+ expect(connector.state()).toBeGreaterThan(0);
225
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, stableTags.length, db, stable));
226
+ await stmt.setTableName(table);
227
+ let tagParams = stmt.newStmtParam();
228
+ tagParams.setBoolean([stableCNTags[0]]);
229
+ tagParams.setTinyInt([stableCNTags[1]]);
230
+ tagParams.setSmallInt([stableCNTags[2]]);
231
+ tagParams.setInt([stableCNTags[3]]);
232
+ tagParams.setBigint([BigInt(stableCNTags[4])]);
233
+ tagParams.setUTinyInt([stableCNTags[5]]);
234
+ tagParams.setUSmallInt([stableCNTags[6]]);
235
+ tagParams.setUInt([stableCNTags[7]]);
236
+ tagParams.setUBigint([BigInt(stableCNTags[8])]);
237
+ tagParams.setFloat([stableCNTags[9]]);
238
+ tagParams.setDouble([stableCNTags[10]]);
239
+ tagParams.setBinary([stableCNTags[11]]);
240
+ tagParams.setNchar([stableCNTags[12]]);
241
+ await stmt.setTags(tagParams);
242
+ let bindParams = stmt.newStmtParam();
243
+ bindParams.setTimestamp(tableCNValues[0]);
244
+ bindParams.setTinyInt(tableCNValues[1]);
245
+ bindParams.setSmallInt(tableCNValues[2]);
246
+ bindParams.setInt(tableCNValues[3]);
247
+ bindParams.setBigint(tableCNValues[4]);
248
+ bindParams.setUTinyInt(tableCNValues[5]);
249
+ bindParams.setUSmallInt(tableCNValues[6]);
250
+ bindParams.setUInt(tableCNValues[7]);
251
+ bindParams.setUBigint(tableCNValues[8]);
252
+ bindParams.setFloat(tableCNValues[9]);
253
+ bindParams.setDouble(tableCNValues[10]);
254
+ bindParams.setBinary(tableCNValues[11]);
255
+ bindParams.setNchar(tableCNValues[12]);
256
+ bindParams.setBoolean(tableCNValues[13]);
257
+ bindParams.setInt(tableCNValues[14]);
258
+ bindParams.setGeometry(geoDataArray);
259
+ bindParams.setVarBinary(varbinary);
260
+ await stmt.bind(bindParams);
261
+ await stmt.batch();
262
+ await stmt.exec();
263
+ expect(stmt.getLastAffected()).toEqual(5);
264
+ await stmt.close();
265
+ let result = await connector.exec(`select count(*) from ${db}.${stable}`);
266
+ console.log(result);
267
+ await connector.close();
268
+ });
269
+ test("normal json tag BindParam", async () => {
270
+ let wsConf = new config_1.WSConfig(dsn);
271
+ wsConf.setDb(db);
272
+ let connector = await wsSql_1.WsSql.open(wsConf);
273
+ let stmt = await (await connector).stmtInit();
274
+ expect(stmt).toBeTruthy();
275
+ expect(stmt).toBeInstanceOf(wsStmt2_1.WsStmt2);
276
+ expect(connector.state()).toBeGreaterThan(0);
277
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, jsonTags.length, db, jsonTable));
278
+ await stmt.setTableName(`${jsonTable}_001`);
279
+ let tagParams = stmt.newStmtParam();
280
+ tagParams.setJson(jsonTags);
281
+ await stmt.setTags(tagParams);
282
+ let bindParams = stmt.newStmtParam();
283
+ bindParams.setTimestamp(tableCNValues[0]);
284
+ bindParams.setTinyInt(tableCNValues[1]);
285
+ bindParams.setSmallInt(tableCNValues[2]);
286
+ bindParams.setInt(tableCNValues[3]);
287
+ bindParams.setBigint(tableCNValues[4]);
288
+ bindParams.setUTinyInt(tableCNValues[5]);
289
+ bindParams.setUSmallInt(tableCNValues[6]);
290
+ bindParams.setUInt(tableCNValues[7]);
291
+ bindParams.setUBigint(tableCNValues[8]);
292
+ bindParams.setFloat(tableCNValues[9]);
293
+ bindParams.setDouble(tableCNValues[10]);
294
+ bindParams.setBinary(tableCNValues[11]);
295
+ bindParams.setNchar(tableCNValues[12]);
296
+ bindParams.setBoolean(tableCNValues[13]);
297
+ bindParams.setInt(tableCNValues[14]);
298
+ bindParams.setGeometry(geoDataArray);
299
+ bindParams.setVarBinary(varbinary);
300
+ await stmt.bind(bindParams);
301
+ await stmt.batch();
302
+ await stmt.exec();
303
+ expect(stmt.getLastAffected()).toEqual(5);
304
+ await stmt.close();
305
+ let result = await connector.exec(`select * from ${db}.${jsonTable}`);
306
+ console.log(result);
307
+ await connector.close();
308
+ });
309
+ test("normal json cn tag BindParam", async () => {
310
+ let wsConf = new config_1.WSConfig(dsn);
311
+ wsConf.setDb(db);
312
+ let connector = await wsSql_1.WsSql.open(wsConf);
313
+ let stmt = await connector.stmtInit();
314
+ expect(stmt).toBeTruthy();
315
+ expect(stmt).toBeInstanceOf(wsStmt2_1.WsStmt2);
316
+ expect(connector.state()).toBeGreaterThan(0);
317
+ await stmt.prepare((0, utils_1.getInsertBind)(tableValues.length + 2, jsonTags.length, db, jsonTable));
318
+ await stmt.setTableName(`${jsonTable}_001`);
319
+ let tagParams = stmt.newStmtParam();
320
+ tagParams.setJson(jsonTagsCN);
321
+ await stmt.setTags(tagParams);
322
+ let bindParams = stmt.newStmtParam();
323
+ bindParams.setTimestamp(tableCNValues[0]);
324
+ bindParams.setTinyInt(tableCNValues[1]);
325
+ bindParams.setSmallInt(tableCNValues[2]);
326
+ bindParams.setInt(tableCNValues[3]);
327
+ bindParams.setBigint(tableCNValues[4]);
328
+ bindParams.setUTinyInt(tableCNValues[5]);
329
+ bindParams.setUSmallInt(tableCNValues[6]);
330
+ bindParams.setUInt(tableCNValues[7]);
331
+ bindParams.setUBigint(tableCNValues[8]);
332
+ bindParams.setFloat(tableCNValues[9]);
333
+ bindParams.setDouble(tableCNValues[10]);
334
+ bindParams.setBinary(tableCNValues[11]);
335
+ bindParams.setNchar(tableCNValues[12]);
336
+ bindParams.setBoolean(tableCNValues[13]);
337
+ bindParams.setInt(tableCNValues[14]);
338
+ bindParams.setGeometry(geoDataArray);
339
+ bindParams.setVarBinary(varbinary);
340
+ await stmt.bind(bindParams);
341
+ await stmt.batch();
342
+ await stmt.exec();
343
+ expect(stmt.getLastAffected()).toEqual(5);
344
+ await stmt.close();
345
+ let result = await connector.exec(`select * from ${db}.${jsonTable}`);
346
+ console.log(result);
347
+ await connector.close();
348
+ });
349
+ });
350
+ test("test bind exception cases", async () => {
351
+ let wsConf = new config_1.WSConfig(dsn);
352
+ let connector = await wsSql_1.WsSql.open(wsConf);
353
+ let stmt = await connector.stmtInit();
354
+ expect(stmt).toBeInstanceOf(wsStmt2_1.WsStmt2);
355
+ const params = stmt.newStmtParam();
356
+ const emptyArrayMethods = [
357
+ { method: "setBoolean", name: "SetBooleanColumn" },
358
+ { method: "setTinyInt", name: "SetTinyIntColumn" },
359
+ { method: "setUTinyInt", name: "SetUTinyIntColumn" },
360
+ { method: "setSmallInt", name: "SetSmallIntColumn" },
361
+ { method: "setUSmallInt", name: "SetSmallIntColumn" },
362
+ { method: "setInt", name: "SetIntColumn" },
363
+ { method: "setUInt", name: "SetUIntColumn" },
364
+ { method: "setBigint", name: "SetBigIntColumn" },
365
+ { method: "setUBigint", name: "SetUBigIntColumn" },
366
+ { method: "setFloat", name: "SetFloatColumn" },
367
+ { method: "setDouble", name: "SetDoubleColumn" },
368
+ { method: "setTimestamp", name: "SeTimestampColumn" },
369
+ ];
370
+ emptyArrayMethods.forEach(({ method, name }) => {
371
+ expect(() => {
372
+ params[method]([]);
373
+ }).toThrow(`${name} params is invalid!`);
374
+ expect(() => {
375
+ params[method](null);
376
+ }).toThrow(`${name} params is invalid!`);
377
+ expect(() => {
378
+ params[method](undefined);
379
+ }).toThrow(`${name} params is invalid!`);
380
+ });
381
+ expect(() => {
382
+ params.setBoolean(["not boolean"]);
383
+ params.encode();
384
+ }).toThrow("SetTinyIntColumn params is invalid!");
385
+ expect(() => {
386
+ params.setTinyInt(["not number"]);
387
+ params.encode();
388
+ }).toThrow("SetTinyIntColumn params is invalid!");
389
+ expect(() => {
390
+ params.setBigint(["not bigint"]);
391
+ params.encode();
392
+ }).toThrow("SetTinyIntColumn params is invalid!");
393
+ await connector.close();
394
+ });
395
+ afterAll(async () => {
396
+ let conf = new config_1.WSConfig(dsn);
397
+ let ws = await wsSql_1.WsSql.open(conf);
398
+ await ws.exec(dropDB);
399
+ await ws.close();
400
+ wsConnectorPool_1.WebSocketConnectionPool.instance().destroyed();
401
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stmt1.func.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stmt1.func.test.d.ts","sourceRoot":"","sources":["../../../../test/stmt/v1/stmt1.func.test.ts"],"names":[],"mappings":""}