@tdengine/websocket 3.1.9 → 3.2.1

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 (121) hide show
  1. package/lib/example/all_type_query.js +26 -22
  2. package/lib/example/all_type_stmt.js +22 -20
  3. package/lib/example/basicBatchTmq.js +14 -14
  4. package/lib/example/basicSchemaless.js +11 -11
  5. package/lib/example/basicSql.js +10 -10
  6. package/lib/example/basicStmt.js +3 -3
  7. package/lib/example/basicTmq.js +8 -9
  8. package/lib/index.d.ts +1 -1
  9. package/lib/index.d.ts.map +1 -1
  10. package/lib/index.js +1 -1
  11. package/lib/src/client/wsClient.d.ts +3 -2
  12. package/lib/src/client/wsClient.d.ts.map +1 -1
  13. package/lib/src/client/wsClient.js +66 -40
  14. package/lib/src/client/wsConnector.d.ts.map +1 -1
  15. package/lib/src/client/wsConnector.js +40 -14
  16. package/lib/src/client/wsConnectorPool.d.ts.map +1 -1
  17. package/lib/src/client/wsConnectorPool.js +29 -14
  18. package/lib/src/client/wsEventCallback.d.ts.map +1 -1
  19. package/lib/src/client/wsEventCallback.js +6 -4
  20. package/lib/src/client/wsResponse.d.ts.map +1 -1
  21. package/lib/src/client/wsResponse.js +6 -2
  22. package/lib/src/common/config.d.ts +5 -3
  23. package/lib/src/common/config.d.ts.map +1 -1
  24. package/lib/src/common/config.js +15 -5
  25. package/lib/src/common/constant.d.ts +11 -1
  26. package/lib/src/common/constant.d.ts.map +1 -1
  27. package/lib/src/common/constant.js +48 -40
  28. package/lib/src/common/log.d.ts +1 -1
  29. package/lib/src/common/log.d.ts.map +1 -1
  30. package/lib/src/common/log.js +9 -7
  31. package/lib/src/common/reqid.d.ts.map +1 -1
  32. package/lib/src/common/reqid.js +7 -7
  33. package/lib/src/common/taosResult.d.ts.map +1 -1
  34. package/lib/src/common/taosResult.js +46 -27
  35. package/lib/src/common/ut8Helper.d.ts.map +1 -1
  36. package/lib/src/common/ut8Helper.js +8 -8
  37. package/lib/src/common/utils.d.ts.map +1 -1
  38. package/lib/src/common/utils.js +17 -16
  39. package/lib/src/common/wsError.d.ts.map +1 -1
  40. package/lib/src/common/wsError.js +3 -3
  41. package/lib/src/common/wsOptions.d.ts +1 -1
  42. package/lib/src/index.d.ts +3 -3
  43. package/lib/src/index.d.ts.map +1 -1
  44. package/lib/src/sql/wsProto.d.ts.map +1 -1
  45. package/lib/src/sql/wsRows.d.ts +3 -3
  46. package/lib/src/sql/wsRows.d.ts.map +1 -1
  47. package/lib/src/sql/wsRows.js +4 -2
  48. package/lib/src/sql/wsSql.d.ts +5 -5
  49. package/lib/src/sql/wsSql.d.ts.map +1 -1
  50. package/lib/src/sql/wsSql.js +23 -15
  51. package/lib/src/stmt/FieldBindParams.d.ts +9 -0
  52. package/lib/src/stmt/FieldBindParams.d.ts.map +1 -0
  53. package/lib/src/stmt/FieldBindParams.js +13 -0
  54. package/lib/src/stmt/wsColumnInfo.d.ts +12 -0
  55. package/lib/src/stmt/wsColumnInfo.d.ts.map +1 -0
  56. package/lib/src/stmt/wsColumnInfo.js +17 -0
  57. package/lib/src/stmt/wsParams1.d.ts +14 -0
  58. package/lib/src/stmt/wsParams1.d.ts.map +1 -0
  59. package/lib/src/stmt/wsParams1.js +300 -0
  60. package/lib/src/stmt/wsParams2.d.ts +14 -0
  61. package/lib/src/stmt/wsParams2.d.ts.map +1 -0
  62. package/lib/src/stmt/wsParams2.js +203 -0
  63. package/lib/src/stmt/wsParamsBase.d.ts +45 -0
  64. package/lib/src/stmt/wsParamsBase.d.ts.map +1 -0
  65. package/lib/src/stmt/wsParamsBase.js +220 -0
  66. package/lib/src/stmt/wsProto.d.ts +13 -1
  67. package/lib/src/stmt/wsProto.d.ts.map +1 -1
  68. package/lib/src/stmt/wsProto.js +206 -2
  69. package/lib/src/stmt/wsStmt.d.ts +6 -16
  70. package/lib/src/stmt/wsStmt.d.ts.map +1 -1
  71. package/lib/src/stmt/wsStmt.js +0 -201
  72. package/lib/src/stmt/wsStmt1.d.ts +30 -0
  73. package/lib/src/stmt/wsStmt1.d.ts.map +1 -0
  74. package/lib/src/stmt/wsStmt1.js +206 -0
  75. package/lib/src/stmt/wsStmt2.d.ts +37 -0
  76. package/lib/src/stmt/wsStmt2.d.ts.map +1 -0
  77. package/lib/src/stmt/wsStmt2.js +284 -0
  78. package/lib/src/stmt/wsTableInfo.d.ts +17 -0
  79. package/lib/src/stmt/wsTableInfo.d.ts.map +1 -0
  80. package/lib/src/stmt/wsTableInfo.js +54 -0
  81. package/lib/src/tmq/config.d.ts.map +1 -1
  82. package/lib/src/tmq/config.js +2 -2
  83. package/lib/src/tmq/constant.d.ts.map +1 -1
  84. package/lib/src/tmq/constant.js +28 -28
  85. package/lib/src/tmq/tmqResponse.d.ts.map +1 -1
  86. package/lib/src/tmq/tmqResponse.js +31 -17
  87. package/lib/src/tmq/wsTmq.d.ts +2 -2
  88. package/lib/src/tmq/wsTmq.d.ts.map +1 -1
  89. package/lib/src/tmq/wsTmq.js +32 -30
  90. package/lib/test/bulkPulling/cloud.tmq.test.js +11 -11
  91. package/lib/test/bulkPulling/decimal.test.js +50 -26
  92. package/lib/test/bulkPulling/log.test.js +8 -8
  93. package/lib/test/bulkPulling/queryTables.test.js +255 -49
  94. package/lib/test/bulkPulling/schemaless.test.js +34 -34
  95. package/lib/test/bulkPulling/sql.test.js +108 -66
  96. package/lib/test/bulkPulling/stmt1.func.test.d.ts +2 -0
  97. package/lib/test/bulkPulling/stmt1.func.test.d.ts.map +1 -0
  98. package/lib/test/bulkPulling/{stmt.func.test.js → stmt1.func.test.js} +128 -116
  99. package/lib/test/bulkPulling/stmt1.type.test.d.ts +2 -0
  100. package/lib/test/bulkPulling/stmt1.type.test.d.ts.map +1 -0
  101. package/lib/test/bulkPulling/stmt1.type.test.js +399 -0
  102. package/lib/test/bulkPulling/stmt2.func.test.d.ts +2 -0
  103. package/lib/test/bulkPulling/stmt2.func.test.d.ts.map +1 -0
  104. package/lib/test/bulkPulling/stmt2.func.test.js +543 -0
  105. package/lib/test/bulkPulling/stmt2.type.test.d.ts +2 -0
  106. package/lib/test/bulkPulling/stmt2.type.test.d.ts.map +1 -0
  107. package/lib/test/bulkPulling/{stmt.type.test.js → stmt2.type.test.js} +136 -49
  108. package/lib/test/bulkPulling/tmq.test.js +225 -31
  109. package/lib/test/bulkPulling/utils.test.js +2 -2
  110. package/lib/test/bulkPulling/wsConnectPool.test.js +20 -20
  111. package/lib/test/utils.d.ts.map +1 -1
  112. package/lib/test/utils.js +130 -129
  113. package/package.json +1 -1
  114. package/readme.md +1 -0
  115. package/lib/src/stmt/wsParams.d.ts +0 -41
  116. package/lib/src/stmt/wsParams.d.ts.map +0 -1
  117. package/lib/src/stmt/wsParams.js +0 -428
  118. package/lib/test/bulkPulling/stmt.func.test.d.ts +0 -2
  119. package/lib/test/bulkPulling/stmt.func.test.d.ts.map +0 -1
  120. package/lib/test/bulkPulling/stmt.type.test.d.ts +0 -2
  121. package/lib/test/bulkPulling/stmt.type.test.d.ts.map +0 -1
@@ -2,21 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WsStmtQueryResponse = void 0;
4
4
  exports.binaryBlockEncode = binaryBlockEncode;
5
+ exports.stmt2BinaryBlockEncode = stmt2BinaryBlockEncode;
5
6
  const wsResponse_1 = require("../client/wsResponse");
6
7
  const constant_1 = require("../common/constant");
8
+ const wsError_1 = require("../common/wsError");
7
9
  class WsStmtQueryResponse extends wsResponse_1.WSQueryResponse {
8
10
  constructor(resp) {
9
11
  super(resp);
10
12
  this.stmt_id = BigInt(resp.msg.stmt_id);
11
13
  this.affected = resp.msg.affected;
14
+ this.is_insert = resp.msg.is_insert;
15
+ this.fields = resp.msg.fields;
12
16
  }
13
17
  }
14
18
  exports.WsStmtQueryResponse = WsStmtQueryResponse;
15
19
  function binaryBlockEncode(bindParams, bindType, stmtId, reqId, row) {
16
20
  //Computing the length of data
17
21
  let columns = bindParams.getParams().length;
18
- let length = constant_1.TDengineTypeLength['BIGINT'] * 4;
19
- length += constant_1.TDengineTypeLength['INT'] * 5;
22
+ let length = constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.BIGINT] * 4;
23
+ length += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT] * 5;
20
24
  length += columns * 5 + columns * 4;
21
25
  length += bindParams.getDataTotalLen();
22
26
  let arrayBuffer = new ArrayBuffer(length);
@@ -65,3 +69,203 @@ function binaryBlockEncode(bindParams, bindType, stmtId, reqId, row) {
65
69
  }
66
70
  return arrayBuffer;
67
71
  }
72
+ function writeColumnToView(column, view, offset) {
73
+ let currentOffset = offset;
74
+ // length, type, _rows
75
+ view.setInt32(currentOffset, column.length, true);
76
+ currentOffset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
77
+ view.setInt32(currentOffset, column.type, true);
78
+ currentOffset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
79
+ view.setInt32(currentOffset, column._rows, true);
80
+ currentOffset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
81
+ // isNull bitmap
82
+ if (column.isNull && column.isNull.length > 0) {
83
+ const isNullBuffer = new Uint8Array(column.isNull);
84
+ new Uint8Array(view.buffer, view.byteOffset + currentOffset).set(isNullBuffer);
85
+ currentOffset += isNullBuffer.length;
86
+ }
87
+ // _haveLength and _dataLengths
88
+ view.setUint8(currentOffset, column._haveLength);
89
+ currentOffset += 1;
90
+ if (column._haveLength === 1 && column._dataLengths) {
91
+ for (const length of column._dataLengths) {
92
+ view.setInt32(currentOffset, length, true);
93
+ currentOffset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
94
+ }
95
+ }
96
+ // data
97
+ view.setInt32(currentOffset, column.data.byteLength, true);
98
+ currentOffset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
99
+ if (column.data.byteLength > 0) {
100
+ new Uint8Array(view.buffer, view.byteOffset + currentOffset).set(new Uint8Array(column.data));
101
+ currentOffset += column.data.byteLength;
102
+ }
103
+ return currentOffset - offset; // Return the total number of bytes written
104
+ }
105
+ function stmt2BinaryBlockEncode(reqId, stmtTableInfoList, stmt_id, toBeBindTableNameIndex, toBeBindTagCount, toBeBindColCount) {
106
+ if (!stmt_id) {
107
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "stmt_id is invalid");
108
+ }
109
+ const listLength = stmtTableInfoList.length;
110
+ const result = {
111
+ totalTableNameSize: 0,
112
+ totalTagSize: 0,
113
+ totalColSize: 0,
114
+ tableNameSizeList: new Array(listLength),
115
+ tagSizeList: new Array(listLength),
116
+ colSizeList: new Array(listLength),
117
+ };
118
+ const hasTableName = toBeBindTableNameIndex != null && toBeBindTableNameIndex >= 0;
119
+ const hasTags = toBeBindTagCount > 0;
120
+ for (let i = 0; i < listLength; i++) {
121
+ const tableInfo = stmtTableInfoList[i];
122
+ if (hasTableName) {
123
+ const tableName = tableInfo.getTableName();
124
+ if (!tableName)
125
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "Table name is empty");
126
+ const size = tableInfo.getTableNameLength();
127
+ if (size > 0) {
128
+ result.tableNameSizeList[i] = size + 1;
129
+ result.totalTableNameSize += size + 1;
130
+ }
131
+ else {
132
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "Table name len is empty");
133
+ }
134
+ }
135
+ if (hasTags) {
136
+ const tagParams = tableInfo.getTags();
137
+ if (!tagParams)
138
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "Bind tags is empty!");
139
+ tagParams.encode();
140
+ const size = tagParams.getDataTotalLen();
141
+ result.tagSizeList[i] = size;
142
+ result.totalTagSize += size;
143
+ }
144
+ const params = tableInfo.getParams();
145
+ if (!params)
146
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "Bind params is empty!");
147
+ params.encode();
148
+ const size = params.getDataTotalLen();
149
+ result.colSizeList[i] = size;
150
+ result.totalColSize += size;
151
+ }
152
+ let totalSize = result.totalTableNameSize + result.totalTagSize + result.totalColSize;
153
+ let toBeBindTableNameCount = toBeBindTableNameIndex != null && toBeBindTableNameIndex >= 0 ? 1 : 0;
154
+ totalSize +=
155
+ stmtTableInfoList.length *
156
+ (toBeBindTableNameCount * 2 +
157
+ (toBeBindTagCount > 0 ? 1 : 0) * 4 +
158
+ (toBeBindColCount > 0 ? 1 : 0) * 4);
159
+ let headerSize = 28; // Fixed header size
160
+ let msgHeaderSize = 30; // Fixed msg header size
161
+ const buffer = new ArrayBuffer(headerSize + msgHeaderSize + totalSize);
162
+ const view = new DataView(buffer);
163
+ let offset = 0;
164
+ view.setBigUint64(offset, reqId, true);
165
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.BIGINT];
166
+ view.setBigUint64(offset, stmt_id, true);
167
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.BIGINT];
168
+ view.setBigUint64(offset, 9n, true);
169
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.BIGINT]; // action: bind
170
+ view.setInt16(offset, 1, true);
171
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.SMALLINT]; // version
172
+ view.setInt32(offset, -1, true);
173
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
174
+ view.setInt32(offset, totalSize + headerSize, true);
175
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT]; // total length
176
+ view.setInt32(offset, stmtTableInfoList.length, true);
177
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
178
+ view.setInt32(offset, toBeBindTagCount, true);
179
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
180
+ view.setInt32(offset, toBeBindColCount, true);
181
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
182
+ view.setInt32(offset, toBeBindTableNameCount > 0 ? 0x1c : 0, true);
183
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
184
+ if (toBeBindTagCount) {
185
+ if (toBeBindTableNameCount > 0) {
186
+ view.setInt32(offset, headerSize +
187
+ result.totalTableNameSize +
188
+ 2 * stmtTableInfoList.length, true);
189
+ }
190
+ else {
191
+ view.setInt32(offset, headerSize, true);
192
+ }
193
+ }
194
+ else {
195
+ view.setInt32(offset, 0, true);
196
+ }
197
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
198
+ if (toBeBindColCount > 0) {
199
+ let skipSize = 0;
200
+ if (toBeBindTableNameCount > 0) {
201
+ skipSize +=
202
+ result.totalTableNameSize + 2 * stmtTableInfoList.length;
203
+ }
204
+ if (toBeBindTagCount > 0) {
205
+ skipSize += result.totalTagSize + 4 * stmtTableInfoList.length;
206
+ }
207
+ // colOffset = 28 + skipSize
208
+ view.setInt32(offset, skipSize + headerSize, true);
209
+ }
210
+ else {
211
+ view.setInt32(offset, 0, true);
212
+ }
213
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
214
+ if (toBeBindTableNameCount > 0) {
215
+ let dataOffset = offset +
216
+ result.tableNameSizeList.length *
217
+ constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.SMALLINT];
218
+ for (let i = 0; i < listLength; i++) {
219
+ view.setInt16(offset, result.tableNameSizeList[i], true);
220
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.SMALLINT];
221
+ let tableName = stmtTableInfoList[i].getTableName();
222
+ if (tableName && tableName.length > 0) {
223
+ new Uint8Array(buffer, dataOffset).set(tableName);
224
+ dataOffset += tableName.length;
225
+ view.setUint8(dataOffset, 0);
226
+ dataOffset += 1;
227
+ }
228
+ else {
229
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "Table name is empty");
230
+ }
231
+ }
232
+ offset = dataOffset;
233
+ }
234
+ if (toBeBindTagCount > 0) {
235
+ let dataOffset = offset +
236
+ result.tagSizeList.length *
237
+ constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
238
+ for (let i = 0; i < listLength; i++) {
239
+ view.setInt32(offset, result.tagSizeList[i], true);
240
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
241
+ let tags = stmtTableInfoList[i].getTags();
242
+ if (tags && tags.getParams().length > 0) {
243
+ for (const col of tags.getParams()) {
244
+ dataOffset += writeColumnToView(col, new DataView(buffer, dataOffset), 0);
245
+ }
246
+ }
247
+ else {
248
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "Tags are empty");
249
+ }
250
+ }
251
+ offset = dataOffset;
252
+ }
253
+ // ColumnDataLength
254
+ if (toBeBindColCount > 0) {
255
+ let dataOffset = offset +
256
+ result.colSizeList.length *
257
+ constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
258
+ for (let i = 0; i < listLength; i++) {
259
+ view.setInt32(offset, result.colSizeList[i], true);
260
+ offset += constant_1.TDengineTypeLength[constant_1.TDengineTypeCode.INT];
261
+ let params = stmtTableInfoList[i].getParams();
262
+ if (!params) {
263
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "Bind params is empty!");
264
+ }
265
+ for (const col of params.getParams()) {
266
+ dataOffset += writeColumnToView(col, new DataView(buffer, dataOffset), 0);
267
+ }
268
+ }
269
+ }
270
+ return buffer;
271
+ }
@@ -1,26 +1,16 @@
1
- import { WsClient } from '../client/wsClient';
2
- import { StmtBindParams } from './wsParams';
3
- export declare class WsStmt {
4
- private _wsClient;
5
- private _stmt_id;
6
- private _precision;
7
- private lastAffected;
8
- private constructor();
9
- static newStmt(wsClient: WsClient, precision?: number, reqId?: number): Promise<WsStmt>;
1
+ import { WSRows } from "../sql/wsRows";
2
+ import { StmtBindParams } from "./wsParamsBase";
3
+ export interface WsStmt {
4
+ getStmtId(): bigint | undefined | null;
10
5
  prepare(sql: string): Promise<void>;
11
6
  setTableName(tableName: string): Promise<void>;
12
- setJsonTags(tags: Array<any>): Promise<void>;
13
- newStmtParam(): StmtBindParams;
14
7
  setTags(paramsArray: StmtBindParams): Promise<void>;
8
+ newStmtParam(): StmtBindParams;
15
9
  bind(paramsArray: StmtBindParams): Promise<void>;
16
- jsonBind(paramArray: Array<Array<any>>): Promise<void>;
17
10
  batch(): Promise<void>;
18
11
  exec(): Promise<void>;
12
+ resultSet(): Promise<WSRows>;
19
13
  getLastAffected(): number | null | undefined;
20
14
  close(): Promise<void>;
21
- getStmtId(): bigint | undefined | null;
22
- private execute;
23
- private sendBinaryMsg;
24
- private init;
25
15
  }
26
16
  //# sourceMappingURL=wsStmt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wsStmt.d.ts","sourceRoot":"","sources":["../../../src/stmt/wsStmt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,qBAAa,MAAM;IACf,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO;WAOM,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWrF,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,YAAY,IAAG,cAAc;IAIvB,OAAO,CAAC,WAAW,EAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAclD,IAAI,CAAC,WAAW,EAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/C,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,eAAe;IAIT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,SAAS,IAAI,MAAM,GAAG,SAAS,GAAG,IAAI;YAI/B,OAAO;YA2BP,aAAa;YAeb,IAAI;CAwBrB"}
1
+ {"version":3,"file":"wsStmt.d.ts","sourceRoot":"","sources":["../../../src/stmt/wsStmt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,MAAM;IACnB,SAAS,IAAI,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,IAAI,cAAc,CAAC;IAC/B,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,eAAe,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
@@ -1,203 +1,2 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WsStmt = void 0;
7
- const json_bigint_1 = __importDefault(require("json-bigint"));
8
- const wsError_1 = require("../common/wsError");
9
- const wsProto_1 = require("./wsProto");
10
- const reqid_1 = require("../common/reqid");
11
- const constant_1 = require("../common/constant");
12
- const wsParams_1 = require("./wsParams");
13
- const log_1 = __importDefault(require("../common/log"));
14
- class WsStmt {
15
- constructor(wsClient, precision) {
16
- this._precision = constant_1.PrecisionLength['ms'];
17
- this._wsClient = wsClient;
18
- if (precision) {
19
- this._precision = precision;
20
- }
21
- }
22
- static async newStmt(wsClient, precision, reqId) {
23
- try {
24
- let wsStmt = new WsStmt(wsClient, precision);
25
- return await wsStmt.init(reqId);
26
- }
27
- catch (e) {
28
- log_1.default.error(`WsStmt init is failed, ${e.code}, ${e.message}`);
29
- throw (e);
30
- }
31
- }
32
- async prepare(sql) {
33
- let queryMsg = {
34
- action: 'prepare',
35
- args: {
36
- req_id: reqid_1.ReqId.getReqID(),
37
- sql: sql,
38
- stmt_id: this._stmt_id,
39
- },
40
- };
41
- return await this.execute(queryMsg);
42
- }
43
- async setTableName(tableName) {
44
- let queryMsg = {
45
- action: 'set_table_name',
46
- args: {
47
- req_id: reqid_1.ReqId.getReqID(),
48
- name: tableName,
49
- stmt_id: this._stmt_id,
50
- },
51
- };
52
- return await this.execute(queryMsg);
53
- }
54
- async setJsonTags(tags) {
55
- let queryMsg = {
56
- action: 'set_tags',
57
- args: {
58
- req_id: reqid_1.ReqId.getReqID(),
59
- tags: tags,
60
- stmt_id: this._stmt_id,
61
- },
62
- };
63
- return await this.execute(queryMsg);
64
- }
65
- newStmtParam() {
66
- return new wsParams_1.StmtBindParams(this._precision);
67
- }
68
- async setTags(paramsArray) {
69
- if (!paramsArray || !this._stmt_id) {
70
- throw new wsError_1.TaosError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "SetBinaryTags paramArray is invalid!");
71
- }
72
- let columnInfos = paramsArray.getParams();
73
- if (!columnInfos) {
74
- throw new wsError_1.TaosError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "SetBinaryTags paramArray is invalid!");
75
- }
76
- let reqId = BigInt(reqid_1.ReqId.getReqID());
77
- let dataBlock = (0, wsProto_1.binaryBlockEncode)(paramsArray, 1 /* StmtBindType.STMT_TYPE_TAG */, this._stmt_id, reqId, paramsArray.getDataRows());
78
- return await this.sendBinaryMsg(reqId, 'set_tags', dataBlock);
79
- }
80
- async bind(paramsArray) {
81
- if (!paramsArray || !this._stmt_id) {
82
- throw new wsError_1.TaosError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "BinaryBind paramArray is invalid!");
83
- }
84
- let columnInfos = paramsArray.getParams();
85
- if (!columnInfos) {
86
- throw new wsError_1.TaosError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, "BinaryBind paramArray is invalid!");
87
- }
88
- let reqId = BigInt(reqid_1.ReqId.getReqID());
89
- let dataBlock = (0, wsProto_1.binaryBlockEncode)(paramsArray, 2 /* StmtBindType.STMT_TYPE_BIND */, this._stmt_id, reqId, paramsArray.getDataRows());
90
- return await this.sendBinaryMsg(reqId, 'bind', dataBlock);
91
- }
92
- async jsonBind(paramArray) {
93
- let queryMsg = {
94
- action: 'bind',
95
- args: {
96
- req_id: reqid_1.ReqId.getReqID(),
97
- columns: paramArray,
98
- stmt_id: this._stmt_id,
99
- },
100
- };
101
- return await this.execute(queryMsg);
102
- }
103
- async batch() {
104
- let queryMsg = {
105
- action: 'add_batch',
106
- args: {
107
- req_id: reqid_1.ReqId.getReqID(),
108
- stmt_id: this._stmt_id,
109
- },
110
- };
111
- return await this.execute(queryMsg);
112
- }
113
- async exec() {
114
- let queryMsg = {
115
- action: 'exec',
116
- args: {
117
- req_id: reqid_1.ReqId.getReqID(),
118
- stmt_id: this._stmt_id,
119
- },
120
- };
121
- return await this.execute(queryMsg);
122
- }
123
- getLastAffected() {
124
- return this.lastAffected;
125
- }
126
- async close() {
127
- let queryMsg = {
128
- action: 'close',
129
- args: {
130
- req_id: reqid_1.ReqId.getReqID(),
131
- stmt_id: this._stmt_id,
132
- },
133
- };
134
- return await this.execute(queryMsg, false);
135
- }
136
- getStmtId() {
137
- return this._stmt_id;
138
- }
139
- async execute(queryMsg, register = true) {
140
- try {
141
- if (this._wsClient.getState() <= 0) {
142
- throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "websocket connect has closed!");
143
- }
144
- let reqMsg = json_bigint_1.default.stringify(queryMsg);
145
- if (register) {
146
- let result = await this._wsClient.exec(reqMsg, false);
147
- let resp = new wsProto_1.WsStmtQueryResponse(result);
148
- if (resp.stmt_id) {
149
- this._stmt_id = resp.stmt_id;
150
- }
151
- if (resp.affected) {
152
- this.lastAffected = resp.affected;
153
- }
154
- }
155
- else {
156
- await this._wsClient.execNoResp(reqMsg);
157
- this._stmt_id = null;
158
- this.lastAffected = null;
159
- }
160
- return;
161
- }
162
- catch (e) {
163
- throw new wsError_1.TaosResultError(e.code, e.message);
164
- }
165
- }
166
- async sendBinaryMsg(reqId, action, message) {
167
- if (this._wsClient.getState() <= 0) {
168
- throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "websocket connect has closed!");
169
- }
170
- let result = await this._wsClient.sendBinaryMsg(reqId, action, message, false);
171
- let resp = new wsProto_1.WsStmtQueryResponse(result);
172
- if (resp.stmt_id) {
173
- this._stmt_id = resp.stmt_id;
174
- }
175
- if (resp.affected) {
176
- this.lastAffected = resp.affected;
177
- }
178
- }
179
- async init(reqId) {
180
- if (this._wsClient) {
181
- try {
182
- if (this._wsClient.getState() <= 0) {
183
- await this._wsClient.connect();
184
- await this._wsClient.checkVersion();
185
- }
186
- let queryMsg = {
187
- action: 'init',
188
- args: {
189
- req_id: reqid_1.ReqId.getReqID(reqId),
190
- },
191
- };
192
- await this.execute(queryMsg);
193
- return this;
194
- }
195
- catch (e) {
196
- log_1.default.error(`stmt init filed, ${e.code}, ${e.message}`);
197
- throw (e);
198
- }
199
- }
200
- throw (new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "stmt connect closed"));
201
- }
202
- }
203
- exports.WsStmt = WsStmt;
@@ -0,0 +1,30 @@
1
+ import { WsClient } from "../client/wsClient";
2
+ import { StmtBindParams } from "./wsParamsBase";
3
+ import { WsStmt } from "./wsStmt";
4
+ import { Stmt1BindParams } from "./wsParams1";
5
+ import { WSRows } from "../sql/wsRows";
6
+ export declare class WsStmt1 implements WsStmt {
7
+ private _wsClient;
8
+ private _stmt_id;
9
+ private _precision;
10
+ private lastAffected;
11
+ private constructor();
12
+ static newStmt(wsClient: WsClient, precision?: number, reqId?: number): Promise<WsStmt>;
13
+ prepare(sql: string): Promise<void>;
14
+ setTableName(tableName: string): Promise<void>;
15
+ setJsonTags(tags: Array<any>): Promise<void>;
16
+ newStmtParam(): Stmt1BindParams;
17
+ setTags(paramsArray: StmtBindParams): Promise<void>;
18
+ bind(paramsArray: StmtBindParams): Promise<void>;
19
+ jsonBind(paramArray: Array<Array<any>>): Promise<void>;
20
+ batch(): Promise<void>;
21
+ exec(): Promise<void>;
22
+ resultSet(): Promise<WSRows>;
23
+ getLastAffected(): number | null | undefined;
24
+ close(): Promise<void>;
25
+ getStmtId(): bigint | undefined | null;
26
+ private execute;
27
+ private sendBinaryMsg;
28
+ private init;
29
+ }
30
+ //# sourceMappingURL=wsStmt1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsStmt1.d.ts","sourceRoot":"","sources":["../../../src/stmt/wsStmt1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAe9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,qBAAa,OAAQ,YAAW,MAAM;IAClC,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,UAAU,CAAiC;IAEnD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO;WAOM,OAAO,CAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAUZ,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,YAAY,IAAI,eAAe;IAIzB,OAAO,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnD,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhD,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,eAAe;IAIT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,SAAS,IAAI,MAAM,GAAG,SAAS,GAAG,IAAI;YAI/B,OAAO;YAiCP,aAAa;YA2Bb,IAAI;CAyBrB"}