• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

taosdata / TDengine / #4935

22 Jan 2026 06:38AM UTC coverage: 66.708% (+0.02%) from 66.691%
#4935

push

travis-ci

web-flow
merge: from main to 3.0 #34371

121 of 271 new or added lines in 17 files covered. (44.65%)

9066 existing lines in 149 files now uncovered.

203884 of 305637 relevant lines covered (66.71%)

125811266.68 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

79.83
/source/common/src/msg/xnode.c
1
/*
2
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
3
 *
4
 * This program is free software: you can use, redistribute, and/or modify
5
 * it under the terms of the GNU Affero General Public License, version 3
6
 * or later ("AGPL"), as published by the Free Software Foundation.
7
 *
8
 * This program is distributed in the hope that it will be useful, but WITHOUT
9
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
 * FITNESS FOR A PARTICULAR PURPOSE.
11
 *
12
 * You should have received a copy of the GNU Affero General Public License
13
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14
 */
15

16
#define _DEFAULT_SOURCE
17

18
#include <stdint.h>
19
#include <stdio.h>
20
#include "osMemPool.h"
21
#include "osMemory.h"
22
#include "taoserror.h"
23
#include "tencode.h"
24
#include "tmsg.h"
25
#include "tutil.h"
26

27
CowStr xCreateCowStr(int32_t len, const char *ptr, bool shouldClone) {
109,837✔
28
  CowStr cow = {0};
109,837✔
29
  if (NULL == ptr) {
109,837✔
30
    return cow;
×
31
  }
32
  if (shouldClone) {
109,837✔
33
    cow.len = len;
56,875✔
34
    cow.ptr = taosMemoryCalloc(1, len + 1);
56,875✔
35
    if (cow.ptr == NULL) {
56,875✔
36
      cow.len = 0;
×
37
      return cow;
×
38
    }
39
    (void)memcpy((void*)cow.ptr, ptr, len);
56,875✔
40
    ((char*)cow.ptr)[len] = '\0';
56,875✔
41
    cow.shouldFree = true;
56,875✔
42
  } else {
43
    cow.len = len;
52,962✔
44
    cow.ptr = ptr;
52,962✔
45
    cow.shouldFree = false;
52,962✔
46
  }
47
  return cow;
109,837✔
48
}
49
void xSetCowStr(CowStr *cow, int32_t len, const char *ptr, bool shouldFree) {
30,394✔
50
  if (cow == NULL) {
30,394✔
51
    return;
×
52
  }
53
  if (NULL == ptr) {
30,394✔
54
    xFreeCowStr(cow);
×
55
    return;
×
56
  }
57
  cow->len = len;
30,394✔
58
  cow->ptr = taosMemoryCalloc(1, len + 1);
30,394✔
59
  if (cow->ptr == NULL) {
30,394✔
60
    cow->len = 0;
×
61
    return;
×
62
  }
63
  (void)memcpy((void*)cow->ptr, ptr, len);
30,394✔
64
  ((char*)cow->ptr)[len] = '\0';
30,394✔
65
  cow->shouldFree = shouldFree;
30,394✔
66
}
67
CowStr xCloneRefCowStr(CowStr *cow) {
35,672✔
68
  CowStr ref = {0};
35,672✔
69
  if (cow == NULL) {
35,672✔
70
    return ref;
×
71
  }
72
  ref.len = cow->len;
35,672✔
73
  ref.ptr = cow->ptr;
35,672✔
74
  ref.shouldFree = false;
35,672✔
75
  return ref;
35,672✔
76
}
77

78
char *xCowStrToStr(CowStr *cow) { return taosStrndupi(cow->ptr, (int64_t)cow->len); }
×
79
void xFreeCowStr(CowStr *cow) {
2,473,926✔
80
  // printf("Free CowStr: cow=%p, ptr=%p, len=%d, shouldFree=%d\n", cow, cow->ptr, cow->len, cow->shouldFree);
81
  if (cow == NULL) {
2,473,926✔
82
    return;
×
83
  }
84
  if (cow->shouldFree && cow->ptr != NULL) {
2,473,926✔
85
    taosMemoryFreeClear(cow->ptr);
227,500✔
86
    cow->ptr = NULL;
227,500✔
87
  }
88
  cow->len = 0;
2,473,926✔
89
  cow->ptr = NULL;
2,473,926✔
90
  cow->shouldFree = false;
2,473,926✔
91
}
92
int32_t xEncodeCowStr(SEncoder *encoder, CowStr *cow) {
400,582✔
93
  if (cow->ptr == NULL) {
400,582✔
94
    return tEncodeU32v(encoder, 0);
120,120✔
95
  }
96
  return tEncodeBinary(encoder, (uint8_t*)cow->ptr, cow->len + 1);
560,924✔
97
}
98
int32_t xDecodeCowStr(SDecoder *decoder, CowStr *cow, bool shouldClone) {
200,291✔
99
  if (decoder == NULL || cow == NULL) {
200,291✔
100
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
101
  }
102
  int32_t code = 0;
200,291✔
103
  int32_t  lino = 0;
200,291✔
104

105
  if (shouldClone) {
200,291✔
106
    uint64_t len = 0;
200,291✔
107
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(decoder, (void**)&cow->ptr, &len));
400,582✔
108
    cow->len = (int32_t)len - 1;
200,291✔
109
    cow->shouldFree = true;
200,291✔
110
  } else {
111
    TAOS_CHECK_EXIT(tDecodeBinary(decoder, (uint8_t**)&cow->ptr, (uint32_t *)&cow->len));
×
112
    cow->len -= 1;
×
113
    cow->shouldFree = false;
×
114
  }
115
_exit:
200,291✔
116
  return code;
200,291✔
117
}
118
// #define DECODESQL()                                                               \
119
//   do {                                                                            \
120
//     if (!tDecodeIsEnd(&decoder)) {                                                \
121
//       TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));                       \
122
//       if (pReq->sqlLen > 0) {                                                     \
123
//         TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->sql, NULL)); \
124
//       }                                                                           \
125
//     }                                                                             \
126
//   } while (0)
127

128
// #define ENCODESQL()                                                                       \
129
//   do {                                                                                    \
130
//     TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));                                  \
131
//     if (pReq->sqlLen > 0) {                                                               \
132
//       TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->sql, pReq->sqlLen)); \
133
//     }                                                                                     \
134
//   } while (0)
135

136
// #define FREESQL()                \
137
//   do {                           \
138
//     if (pReq->sql != NULL) {     \
139
//       taosMemoryFree(pReq->sql); \
140
//     }                            \
141
//     pReq->sql = NULL;            \
142
//   } while (0)
143

144
int32_t tSerializeSMCreateXnodeReq(void *buf, int32_t bufLen, SMCreateXnodeReq *pReq) {
7,644✔
145
  SEncoder encoder = {0};
7,644✔
146
  int32_t  code = 0;
7,644✔
147
  int32_t  lino = 0;
7,644✔
148
  int32_t  tlen = 0;
7,644✔
149
  tEncoderInit(&encoder, buf, bufLen);
7,644✔
150

151
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,644✔
152
  ENCODESQL();
22,932✔
153

154
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
15,288✔
155
  if (pReq->urlLen > 0) {
7,644✔
156
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
15,288✔
157
  }
158
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->userLen));
15,288✔
159
  if (pReq->userLen > 0) {
7,644✔
160
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->user, pReq->userLen));
15,288✔
161
  }
162
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->passLen));
15,288✔
163
  if (pReq->passLen > 0) {
7,644✔
164
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pass, pReq->passLen));
15,288✔
165
  }
166
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->passIsMd5));
15,288✔
167

168
  tEndEncode(&encoder);
7,644✔
169

170
_exit:
7,644✔
171
  if (code) {
7,644✔
172
    tlen = code;
×
173
  } else {
174
    tlen = encoder.pos;
7,644✔
175
  }
176
  tEncoderClear(&encoder);
7,644✔
177
  return tlen;
7,644✔
178
}
179

180
int32_t tDeserializeSMCreateXnodeReq(void *buf, int32_t bufLen, SMCreateXnodeReq *pReq) {
3,822✔
181
  SDecoder decoder = {0};
3,822✔
182
  int32_t  code = 0;
3,822✔
183
  int32_t  lino = 0;
3,822✔
184

185
  tDecoderInit(&decoder, buf, bufLen);
3,822✔
186

187
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,822✔
188
  DECODESQL();
11,466✔
189

190
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
7,644✔
191
  if (pReq->urlLen > 0) {
3,822✔
192
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
7,644✔
193
  }
194
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->userLen));
7,644✔
195
  if (pReq->userLen > 0) {
3,822✔
196
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->user, NULL));
7,644✔
197
  }
198
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->passLen));
7,644✔
199
  if (pReq->passLen > 0) {
3,822✔
200
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->pass, NULL));
7,644✔
201
  }
202
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->passIsMd5));
7,644✔
203

204
  tEndDecode(&decoder);
3,822✔
205

206
_exit:
3,822✔
207
  tDecoderClear(&decoder);
3,822✔
208
  return code;
3,822✔
209
}
210

211
void tFreeSMCreateXnodeReq(SMCreateXnodeReq *pReq) {
7,644✔
212
  taosMemoryFreeClear(pReq->url);
7,644✔
213
  taosMemoryFreeClear(pReq->user);
7,644✔
214
  taosMemoryFreeClear(pReq->pass);
7,644✔
215
  FREESQL();
7,644✔
216
}
7,644✔
217
void xFreeTaskSource(xTaskSource *source) {
54,600✔
218
  if (source == NULL) {
54,600✔
219
    return;
×
220
  }
221
  xFreeCowStr(&source->cstr);
54,600✔
222
}
223
xTaskSource xCreateClonedTaskSource(ENodeXTaskSourceType sourceType, int32_t len, char *source) {
×
224
  // printf("clone task source from %p\n", source);
225
  xTaskSource taskSource = {0};
×
226
  taskSource.type = sourceType;
×
227
  taskSource.cstr = xCreateCowStr(len, source, true);
×
228
  return taskSource;
×
229
}
230
xTaskSource xCreateTaskSource(ENodeXTaskSourceType sourceType, int32_t len, char *ptr) {
×
231
   xTaskSource taskSource = {0};
×
232
  taskSource.type = sourceType;
×
233
  taskSource.cstr = xCreateCowStr(len, ptr, false);
×
234
   return taskSource;
×
235
}
236
xTaskSource xCloneTaskSourceRef(xTaskSource *source) {
16,380✔
237
  xTaskSource taskSource = {0};
16,380✔
238
  if (source == NULL) {
16,380✔
239
    return taskSource;
×
240
  }
241
  taskSource.type = source->type;
16,380✔
242
  taskSource.cstr = xCloneRefCowStr(&source->cstr);
16,380✔
243
  return taskSource;
16,380✔
244
}
245

246
const char *xGetTaskSourceTypeAsStr(xTaskSource *source) {
×
247
  switch (source->type) {
×
248
    case XNODE_TASK_SOURCE_DATABASE:
×
249
      return "database";
×
250
    case XNODE_TASK_SOURCE_TOPIC:
×
251
      return "topic";
×
252
    case XNODE_TASK_SOURCE_DSN:
×
253
      return "dsn";
×
254
    default:
×
255
      return "unknown";
×
256
  }
257
}
258
const char *xGetTaskSourceStr(xTaskSource *source) { return source->cstr.ptr; }
×
259
int32_t     xSerializeTaskSource(SEncoder *encoder, xTaskSource *source) {
38,220✔
260
  int32_t code = 0;
38,220✔
261
  int32_t  lino = 0;
38,220✔
262
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
76,440✔
263
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
38,220✔
264
_exit:
38,220✔
265
  return code;
38,220✔
266
}
267
int32_t xDeserializeTaskSource(SDecoder *decoder, xTaskSource *source) {
19,110✔
268
  if (decoder == NULL || source == NULL) {
19,110✔
269
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
270
  }
271
  int32_t code = 0;
19,110✔
272
  int32_t lino = 0;
19,110✔
273
  int32_t type = 0;
19,110✔
274
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
19,110✔
275
  source->type = type;
19,110✔
276
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &source->cstr, true));
19,110✔
277
_exit:
19,110✔
278
  return code;
19,110✔
279
}
280

281
void xFreeTaskSink(xTaskSink *sink) {
55,510✔
282
  if (sink == NULL) {
55,510✔
283
    return;
×
284
  }
285
  xFreeCowStr(&sink->cstr);
55,510✔
286
}
287
xTaskSink xCreateClonedTaskSink(ENodeXTaskSinkType sinkType, int32_t len, char *sink) {
×
288
  xTaskSink taskSink = {0};
×
289
  taskSink.type = sinkType;
×
290
  taskSink.cstr = xCreateCowStr(len, sink, false);
×
291
  return taskSink;
×
292
}
293
xTaskSink xCreateTaskSink(ENodeXTaskSinkType sinkType, int32_t len, char *ptr) {
×
294
  xTaskSink taskSink = {0};
×
295
  taskSink.type = sinkType;
×
296
  taskSink.cstr = xCreateCowStr(len, ptr, false);
×
297
  return taskSink;
×
298
}
299
xTaskSink   xCloneTaskSinkRef(xTaskSink* sink) {
17,290✔
300
  xTaskSink taskSink = {0};
17,290✔
301
  if (sink == NULL) {
17,290✔
302
    return taskSink;
×
303
  }
304
  taskSink.type = sink->type;
17,290✔
305
  taskSink.cstr = xCloneRefCowStr(&sink->cstr);
17,290✔
306
  return taskSink;
17,290✔
307
}
308
const char *xGetTaskSinkTypeAsStr(xTaskSink *sink) {
×
309
  switch (sink->type) {
×
310
    case XNODE_TASK_SINK_DATABASE:
×
311
      return "database";
×
312
    case XNODE_TASK_SINK_DSN:
×
313
      return "dsn";
×
314
    default:
×
315
      return "unknown";
×
316
  }
317
}
318
const char *xGetTaskSinkStr(xTaskSink *sink) { return sink->cstr.ptr; }
×
319

320
int32_t xSerializeTaskSink(SEncoder *encoder, xTaskSink *sink) {
38,220✔
321
  int32_t code = 0;
38,220✔
322
  int32_t lino = 0;
38,220✔
323
  TAOS_CHECK_EXIT(tEncodeI32(encoder, sink->type));
76,440✔
324
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &sink->cstr));
38,220✔
325
_exit:
38,220✔
326
  return code;
38,220✔
327
}
328
int32_t xDeserializeTaskSink(SDecoder *decoder, xTaskSink *sink) {
19,110✔
329
  if (decoder == NULL || sink == NULL) {
19,110✔
330
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
331
  }
332
  int32_t code = 0;
19,110✔
333
  int32_t lino = 0;
19,110✔
334
  int32_t type = 0;
19,110✔
335
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
19,110✔
336
  sink->type = type;
19,110✔
337
  // switch (type) {
338
  //   case XNODE_TASK_SINK_DSN:
339
  //   case XNODE_TASK_SINK_DATABASE:
340
  //     sink->type = type;
341
  //     break;
342
  //   default:
343
  //     TAOS_RETURN(TSDB_CODE_MND_XNODE_INVALID_MSG);
344
  // }
345
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &sink->cstr, true));
19,110✔
346
_exit:
19,110✔
347
  return code;
19,110✔
348
}
349

350
void xFreeTaskOptions(xTaskOptions *options) {
32,760✔
351
  if (options == NULL) {
32,760✔
352
    return;
×
353
  }
354
  xFreeCowStr(&options->trigger);
32,760✔
355
  xFreeCowStr(&options->parser);
32,760✔
356
  xFreeCowStr(&options->health);
32,760✔
357
  // xFreeCowStr(&options->reason);
358
  for (int i = 0; i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
2,129,400✔
359
    xFreeCowStr(&options->options[i]);
2,096,640✔
360
  }
361
}
362
void printXnodeTaskOptions(xTaskOptions *options) {
×
363
  printf("Xnode Task Options:\n");
×
364
  printf("  trigger: %s\n", options->trigger.ptr);
×
365
  printf("  parser: %s\n", options->parser.ptr);
×
366
  printf("  health: %s\n", options->health.ptr);
×
367
  // printf("  reason: %s\n", options->reason.ptr);
368
  if (options->via > 0) {
×
369
    printf("  via: %d\n", options->via);
×
370
  } else {
371
    printf("  via: nil\n");
×
372
  }
373
  for (int i = 0; i < options->optionsNum; ++i) {
×
374
    printf("  option[%d]: %s\n", i, options->options[i].ptr);
×
375
  }
376
}
×
377
int32_t xSerializeTaskOptions(SEncoder *encoder, xTaskOptions *options) {
32,760✔
378
  int32_t code = 0;
32,760✔
379
  int32_t lino = 0;
32,760✔
380
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->via));
65,520✔
381
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->parser));
32,760✔
382
  // TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->reason));
383
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->trigger));
32,760✔
384
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->health));
32,760✔
385
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->optionsNum));
65,520✔
386
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
93,548✔
387
    TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->options[i]));
60,788✔
388
  }
389
_exit:
32,760✔
390
  return code;
32,760✔
391
}
392
int32_t xDeserializeTaskOptions(SDecoder *decoder, xTaskOptions *options) {
16,380✔
393
  if (decoder == NULL || options == NULL) {
16,380✔
394
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
395
  }
396
  int32_t code = 0;
16,380✔
397
  int32_t  lino = 0;
16,380✔
398

399
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->via));
32,760✔
400
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->parser, true));
16,380✔
401
  // TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->reason, true));
402
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->trigger, true));
16,380✔
403
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->health, true));
16,380✔
404
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->optionsNum));
32,760✔
405
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
46,774✔
406
    TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->options[i], true));
30,394✔
407
  }
408
_exit:
16,380✔
409
  return code;
16,380✔
410
}
411
int32_t tSerializeXnodeTaskSource(SEncoder *encoder, xTaskSource *source) {
×
412
  int32_t code = 0;
×
413
  int32_t lino = 0;
×
414
  int32_t tlen = 0;
×
415
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
×
416
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
×
417
_exit:
×
418
  return code;
×
419
}
420

421
int32_t tDeserializeXnodeTaskSource(SDecoder *decoder, xTaskSource *source) {
×
422
  int32_t code = 0;
×
423
  int32_t lino = 0;
×
424

425
  TAOS_CHECK_EXIT(tDecodeI32(decoder, (int32_t *)&source->type));
×
426
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &source->cstr, true));
×
427
_exit:
×
428
  return code;
×
429
}
430
int32_t tSerializeSMCreateXnodeTaskReq(void *buf, int32_t bufLen, SMCreateXnodeTaskReq *pReq) {
30,940✔
431
  SEncoder encoder = {0};
30,940✔
432
  int32_t  code = 0;
30,940✔
433
  int32_t  lino = 0;
30,940✔
434
  int32_t  tlen = 0;
30,940✔
435
  tEncoderInit(&encoder, buf, bufLen);
30,940✔
436

437
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30,940✔
438
  ENCODESQL();
92,820✔
439
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
61,880✔
440
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
30,940✔
441
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
30,940✔
442
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
30,940✔
443
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
30,940✔
444
  tEndEncode(&encoder);
30,940✔
445

446
_exit:
30,940✔
447
  if (code) {
30,940✔
448
    tlen = code;
×
449
  } else {
450
    tlen = encoder.pos;
30,940✔
451
  }
452
  tEncoderClear(&encoder);
30,940✔
453
  return tlen;
30,940✔
454
}
455
int32_t tDeserializeSMCreateXnodeTaskReq(void *buf, int32_t bufLen, SMCreateXnodeTaskReq *pReq) {
15,470✔
456
  SDecoder decoder = {0};
15,470✔
457
  int32_t  code = 0;
15,470✔
458
  int32_t  lino = 0;
15,470✔
459

460
  tDecoderInit(&decoder, buf, bufLen);
15,470✔
461

462
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
15,470✔
463
  DECODESQL();
46,410✔
464
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
30,940✔
465
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
15,470✔
466
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
15,470✔
467
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
15,470✔
468
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
15,470✔
469
  tEndDecode(&decoder);
15,470✔
470

471
_exit:
15,470✔
472
  tDecoderClear(&decoder);
15,470✔
473
  return code;
15,470✔
474
}
475
void tFreeSMCreateXnodeTaskReq(SMCreateXnodeTaskReq *pReq) {
30,940✔
476
  // printf("freeCreateXnodeTask: %s\n", pReq->name.ptr);
477
  FREESQL();
30,940✔
478
  xFreeCowStr(&pReq->name);
30,940✔
479
  xFreeTaskSource(&pReq->source);
30,940✔
480
  xFreeTaskSink(&pReq->sink);
30,940✔
481
  xFreeTaskOptions(&pReq->options);
30,940✔
482
}
30,940✔
483
int32_t tSerializeSMDropXnodeTaskReq(void *buf, int32_t bufLen, SMDropXnodeTaskReq *pReq) {
32,214✔
484
  // printf("serializeDropXnodeTask: %d\n", pReq->tid);
485
  SEncoder encoder = {0};
32,214✔
486
  int32_t  code = 0;
32,214✔
487
  int32_t  lino = 0;
32,214✔
488
  int32_t  tlen = 0;
32,214✔
489

490
  tEncoderInit(&encoder, buf, bufLen);
32,214✔
491

492
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32,214✔
493
  ENCODESQL();
96,642✔
494
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
64,428✔
495
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->force));
32,214✔
496
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
32,214✔
497
  tEndEncode(&encoder);
32,214✔
498

499
_exit:
32,214✔
500
  if (code) {
32,214✔
501
    tlen = code;
×
502
  } else {
503
    tlen = encoder.pos;
32,214✔
504
  }
505
  tEncoderClear(&encoder);
32,214✔
506
  return tlen;
32,214✔
507
}
508
int32_t tDeserializeSMDropXnodeTaskReq(void *buf, int32_t bufLen, SMDropXnodeTaskReq *pReq) {
16,107✔
509
  // printf("deserializeDropXnodeTask: %d\n", pReq->tid);
510
  SDecoder decoder = {0};
16,107✔
511
  int32_t  code = 0;
16,107✔
512
  int32_t  lino = 0;
16,107✔
513
  tDecoderInit(&decoder, buf, bufLen);
16,107✔
514

515
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16,107✔
516
  DECODESQL();
48,321✔
517
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
32,214✔
518
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->force));
16,107✔
519
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
16,107✔
520
  tEndDecode(&decoder);
16,107✔
521

522
_exit:
16,107✔
523
  tDecoderClear(&decoder);
16,107✔
524
  return code;
16,107✔
525
}
526
void tFreeSMDropXnodeTaskReq(SMDropXnodeTaskReq *pReq) {
32,214✔
527
  FREESQL();
32,214✔
528
  xFreeCowStr(&pReq->name);
32,214✔
529
}
32,214✔
530

531
int32_t tSerializeSMStartXnodeTaskReq(void *buf, int32_t bufLen, SMStartXnodeTaskReq *pReq) {
3,640✔
532
  SEncoder encoder = {0};
3,640✔
533
  int32_t  code = 0;
3,640✔
534
  int32_t  lino = 0;
3,640✔
535
  int32_t  tlen = 0;
3,640✔
536

537
  tEncoderInit(&encoder, buf, bufLen);
3,640✔
538

539
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,640✔
540
  ENCODESQL();
10,920✔
541
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
7,280✔
542
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
3,640✔
543
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
7,280✔
544
  tEndEncode(&encoder);
3,640✔
545

546
_exit:
3,640✔
547
  if (code) {
3,640✔
548
    tlen = code;
×
549
  } else {
550
    tlen = encoder.pos;
3,640✔
551
  }
552
  tEncoderClear(&encoder);
3,640✔
553
  return tlen;
3,640✔
554
}
555
int32_t tDeserializeSMStartXnodeTaskReq(void *buf, int32_t bufLen, SMStartXnodeTaskReq *pReq) {
1,820✔
556
  SDecoder decoder = {0};
1,820✔
557
  int32_t  code = 0;
1,820✔
558
  int32_t  lino = 0;
1,820✔
559
  tDecoderInit(&decoder, buf, bufLen);
1,820✔
560

561
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,820✔
562
  DECODESQL();
5,460✔
563
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
3,640✔
564
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
1,820✔
565
  tEndDecode(&decoder);
1,820✔
566

567
_exit:
1,820✔
568
  tDecoderClear(&decoder);
1,820✔
569
  return code;
1,820✔
570
}
571
void tFreeSMStartXnodeTaskReq(SMStartXnodeTaskReq *pReq) {
3,640✔
572
  FREESQL();
3,640✔
573
  xFreeCowStr(&pReq->name);
3,640✔
574
}
3,640✔
575

576
int32_t tSerializeSMStopXnodeTaskReq(void *buf, int32_t bufLen, SMStopXnodeTaskReq *pReq) {
1,820✔
577
  return tSerializeSMStartXnodeTaskReq(buf, bufLen, pReq);
1,820✔
578
}
579
int32_t tDeserializeSMStopXnodeTaskReq(void *buf, int32_t bufLen, SMStopXnodeTaskReq *pReq) {
910✔
580
  return tDeserializeSMStartXnodeTaskReq(buf, bufLen, pReq);
910✔
581
}
582
void tFreeSMStopXnodeTaskReq(SMStopXnodeTaskReq *pReq) { tFreeSMStartXnodeTaskReq(pReq); }
1,820✔
583

584
int32_t tSerializeSMUpdateXnodeTaskReq(void *buf, int32_t bufLen, SMUpdateXnodeTaskReq *pReq) {
7,280✔
585
  SEncoder encoder = {0};
7,280✔
586
  int32_t  code = 0;
7,280✔
587
  int32_t  lino = 0;
7,280✔
588
  int32_t  tlen = 0;
7,280✔
589
  tEncoderInit(&encoder, buf, bufLen);
7,280✔
590

591
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,280✔
592
  ENCODESQL();
21,840✔
593
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
14,560✔
594
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
7,280✔
595
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
14,560✔
596
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
14,560✔
597
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
7,280✔
598
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
7,280✔
599
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
7,280✔
600
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->parser));
7,280✔
601
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->reason));
7,280✔
602
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->labels));
7,280✔
603
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->updateName));
7,280✔
604
  tEndEncode(&encoder);
7,280✔
605

606
_exit:
7,280✔
607
  if (code) {
7,280✔
608
    tlen = code;
×
609
  } else {
610
    tlen = encoder.pos;
7,280✔
611
  }
612
  tEncoderClear(&encoder);
7,280✔
613
  return tlen;
7,280✔
614
}
615

616
int32_t tDeserializeSMUpdateXnodeTaskReq(void *buf, int32_t bufLen, SMUpdateXnodeTaskReq *pReq) {
3,640✔
617
  SDecoder decoder = {0};
3,640✔
618
  int32_t  code = 0;
3,640✔
619
  int32_t  lino = 0;
3,640✔
620

621
  tDecoderInit(&decoder, buf, bufLen);
3,640✔
622

623
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,640✔
624
  DECODESQL();
10,920✔
625
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
7,280✔
626
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
3,640✔
627
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
7,280✔
628
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
7,280✔
629
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
3,640✔
630
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
3,640✔
631
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
3,640✔
632
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->parser, true));
3,640✔
633
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
3,640✔
634
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->labels, true));
3,640✔
635
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->updateName, true));
3,640✔
636
  tEndDecode(&decoder);
3,640✔
637

638
_exit:
3,640✔
639
  tDecoderClear(&decoder);
3,640✔
640
  return code;
3,640✔
641
}
642

643
void tFreeSMUpdateXnodeTaskReq(SMUpdateXnodeTaskReq *pReq) {
7,280✔
644
  // printf("freeUpdateXnodeTask: %d\n", pReq->tid);
645
  xFreeCowStr(&pReq->name);
7,280✔
646
  xFreeTaskSource(&pReq->source);
7,280✔
647
  xFreeTaskSink(&pReq->sink);
7,280✔
648
  xFreeCowStr(&pReq->parser);
7,280✔
649
  xFreeCowStr(&pReq->reason);
7,280✔
650
  xFreeCowStr(&pReq->status);
7,280✔
651
  xFreeCowStr(&pReq->labels);
7,280✔
652
  xFreeCowStr(&pReq->updateName);
7,280✔
653
  FREESQL();
7,280✔
654
}
7,280✔
655

656
int32_t tSerializeSMDropXnodeReq(void *buf, int32_t bufLen, SMDropXnodeReq *pReq) {
14,482✔
657
  SEncoder encoder = {0};
14,482✔
658
  int32_t  code = 0;
14,482✔
659
  int32_t  lino = 0;
14,482✔
660
  int32_t  tlen = 0;
14,482✔
661
  tEncoderInit(&encoder, buf, bufLen);
14,482✔
662

663
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14,482✔
664
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
28,964✔
665
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->force));
28,964✔
666
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
28,964✔
667
  if (pReq->urlLen > 0) {
14,482✔
668
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
16,484✔
669
  }
670
  ENCODESQL();
43,446✔
671
  tEndEncode(&encoder);
14,482✔
672

673
_exit:
14,482✔
674
  if (code) {
14,482✔
675
    tlen = code;
×
676
  } else {
677
    tlen = encoder.pos;
14,482✔
678
  }
679
  tEncoderClear(&encoder);
14,482✔
680
  return tlen;
14,482✔
681
}
682

683
int32_t tDeserializeSMDropXnodeReq(void *buf, int32_t bufLen, SMDropXnodeReq *pReq) {
7,241✔
684
  SDecoder decoder = {0};
7,241✔
685
  int32_t  code = 0;
7,241✔
686
  int32_t  lino = 0;
7,241✔
687

688
  tDecoderInit(&decoder, buf, bufLen);
7,241✔
689

690
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,241✔
691
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
14,482✔
692
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->force));
14,482✔
693
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
14,482✔
694
  if (pReq->urlLen > 0) {
7,241✔
695
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
8,242✔
696
  }
697
  DECODESQL();
21,723✔
698
  tEndDecode(&decoder);
7,241✔
699

700
_exit:
7,241✔
701
  tDecoderClear(&decoder);
7,241✔
702
  return code;
7,241✔
703
}
704

705
void tFreeSMDropXnodeReq(SMDropXnodeReq *pReq) {
14,482✔
706
  FREESQL();
14,482✔
707
  if (pReq->urlLen > 0 && pReq->url != NULL) {
14,482✔
708
    taosMemoryFree(pReq->url);
8,242✔
709
  }
710
}
14,482✔
711

712
int32_t tSerializeSMDrainXnodeReq(void *buf, int32_t bufLen, SMDrainXnodeReq *pReq) {
4,420✔
713
  SEncoder encoder = {0};
4,420✔
714
  int32_t  code = 0;
4,420✔
715
  int32_t  lino = 0;
4,420✔
716
  int32_t  tlen = 0;
4,420✔
717
  tEncoderInit(&encoder, buf, bufLen);
4,420✔
718

719
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,420✔
720
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
8,840✔
721
  ENCODESQL();
13,260✔
722
  tEndEncode(&encoder);
4,420✔
723

724
_exit:
4,420✔
725
  if (code) {
4,420✔
726
    tlen = code;
×
727
  } else {
728
    tlen = encoder.pos;
4,420✔
729
  }
730
  tEncoderClear(&encoder);
4,420✔
731
  return tlen;
4,420✔
732
}
733

734
int32_t tDeserializeSMDrainXnodeReq(void *buf, int32_t bufLen, SMDrainXnodeReq *pReq) {
2,210✔
735
  SDecoder decoder = {0};
2,210✔
736
  int32_t  code = 0;
2,210✔
737
  int32_t  lino = 0;
2,210✔
738

739
  tDecoderInit(&decoder, buf, bufLen);
2,210✔
740

741
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,210✔
742
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
4,420✔
743
  DECODESQL();
6,630✔
744
  tEndDecode(&decoder);
2,210✔
745

746
_exit:
2,210✔
747
  tDecoderClear(&decoder);
2,210✔
748
  return code;
2,210✔
749
}
750

751
void tFreeSMDrainXnodeReq(SMDrainXnodeReq *pReq) { FREESQL(); }
4,420✔
752

753
int32_t tSerializeSMUpdateXnodeReq(void *buf, int32_t bufLen, SMUpdateXnodeReq *pReq) {
×
754
  return tSerializeSMDropXnodeReq(buf, bufLen, pReq);
×
755
}
756

757
int32_t tDeserializeSMUpdateXnodeReq(void *buf, int32_t bufLen, SMUpdateXnodeReq *pReq) {
×
758
  return tDeserializeSMDropXnodeReq(buf, bufLen, pReq);
×
759
}
760

761
void tFreeSMUpdateXnodeReq(SMUpdateXnodeReq *pReq) { tFreeSMDropXnodeReq(pReq); }
×
762

763
int32_t tSerializeSMCreateXnodeJobReq(void *buf, int32_t bufLen, SMCreateXnodeJobReq *pReq) {
5,278✔
764
  // printf("serializeCreateXnodeTaskJob: %d\n", pReq->tid);
765
  SEncoder encoder = {0};
5,278✔
766
  int32_t  code = 0;
5,278✔
767
  int32_t  lino = 0;
5,278✔
768
  int32_t  tlen = 0;
5,278✔
769

770
  tEncoderInit(&encoder, buf, bufLen);
5,278✔
771

772
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,278✔
773
  // 0. sql
774
  ENCODESQL();
15,834✔
775

776
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
10,556✔
777
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
10,556✔
778
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
10,556✔
779
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
5,278✔
780
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->config));
5,278✔
781
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->reason));
5,278✔
782
  tEndEncode(&encoder);
5,278✔
783

784
_exit:
5,278✔
785
  if (code) {
5,278✔
786
    tlen = code;
×
787
  } else {
788
    tlen = encoder.pos;
5,278✔
789
  }
790
  tEncoderClear(&encoder);
5,278✔
791
  return tlen;
5,278✔
792
}
793

794
int32_t tDeserializeSMCreateXnodeJobReq(void *buf, int32_t bufLen, SMCreateXnodeJobReq *pReq) {
2,639✔
795
  // printf("deserializeCreateXnodeTaskJob: %d\n", pReq->tid);
796
  SDecoder decoder = {0};
2,639✔
797
  int32_t  code = 0;
2,639✔
798
  int32_t  lino = 0;
2,639✔
799

800
  tDecoderInit(&decoder, buf, bufLen);
2,639✔
801

802
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,639✔
803
  DECODESQL();
7,917✔
804
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
5,278✔
805
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
5,278✔
806
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
5,278✔
807
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
2,639✔
808
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->config, true));
2,639✔
809
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
2,639✔
810
  tEndDecode(&decoder);
2,639✔
811

812
_exit:
2,639✔
813
  tDecoderClear(&decoder);
2,639✔
814
  return code;
2,639✔
815
}
816
void tFreeSMCreateXnodeJobReq(SMCreateXnodeJobReq *pReq) {
5,278✔
817
  FREESQL();
5,278✔
818
  xFreeCowStr(&pReq->config);
5,278✔
819
  xFreeCowStr(&pReq->reason);
5,278✔
820
  xFreeCowStr(&pReq->status);
5,278✔
821
}
5,278✔
822

823
int32_t tSerializeSMUpdateXnodeJobReq(void *buf, int32_t bufLen, SMUpdateXnodeJobReq *pReq) {
×
824
  SEncoder encoder = {0};
×
825
  int32_t  code = 0;
×
826
  int32_t  lino = 0;
×
827
  int32_t  tlen = 0;
×
828

829
  tEncoderInit(&encoder, buf, bufLen);
×
830

831
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
832
  // 0. sql
833
  ENCODESQL();
×
834

835
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
×
836
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
×
837
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
×
838
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
×
839
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->configLen));
×
840
  if (pReq->config != NULL) {
×
841
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->config, pReq->configLen + 1));
×
842
  } else {
843
    TAOS_CHECK_EXIT(tEncodeU32v(&encoder, 0));
×
844
  }
845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reasonLen));
×
846
  if (pReq->reason != NULL) {
×
847
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->reason, pReq->reasonLen + 1));
×
848
  } else {
849
    TAOS_CHECK_EXIT(tEncodeU32v(&encoder, 0));
×
850
  }
851
  tEndEncode(&encoder);
×
852

853
_exit:
×
854
  if (code) {
×
855
    tlen = code;
×
856
  } else {
857
    tlen = encoder.pos;
×
858
  }
859
  tEncoderClear(&encoder);
×
860
  return tlen;
×
861
}
862

863
int32_t tDeserializeSMUpdateXnodeJobReq(void *buf, int32_t bufLen, SMUpdateXnodeJobReq *pReq) {
×
864
  SDecoder decoder = {0};
×
865
  int32_t  code = 0;
×
866
  int32_t  lino = 0;
×
867

868
  tDecoderInit(&decoder, buf, bufLen);
×
869

870
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
871
  DECODESQL();
×
872
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
×
873
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
×
874
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
875
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
×
876
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->configLen));
×
877
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->config, NULL));
×
878
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reasonLen));
×
879
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->reason, NULL));
×
880
  tEndDecode(&decoder);
×
881

882
_exit:
×
883
  tDecoderClear(&decoder);
×
884
  return code;
×
885
}
886

887
void tFreeSMUpdateXnodeJobReq(SMUpdateXnodeJobReq *pReq) {
×
888
  FREESQL();
×
889
  if (pReq->config != NULL) {
×
890
    pReq->configLen = 0;
×
891
    taosMemoryFreeClear(pReq->config);
×
892
  }
893
  if (pReq->reason != NULL) {
×
894
    pReq->reasonLen = 0;
×
895
    taosMemoryFreeClear(pReq->reason);
×
896
  }
897
  xFreeCowStr(&pReq->status);
×
898
}
×
899

900
int32_t tSerializeSMRebalanceXnodeJobReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobReq *pReq) {
3,640✔
901
  SEncoder encoder = {0};
3,640✔
902
  int32_t  code = 0;
3,640✔
903
  int32_t  lino = 0;
3,640✔
904
  int32_t  tlen = 0;
3,640✔
905

906
  tEncoderInit(&encoder, buf, bufLen);
3,640✔
907

908
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,640✔
909
  ENCODESQL();
10,920✔
910
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
7,280✔
911
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
7,280✔
912

913
  tEndEncode(&encoder);
3,640✔
914
_exit:
3,640✔
915
  if (code) {
3,640✔
916
    tlen = code;
×
917
  } else {
918
    tlen = encoder.pos;
3,640✔
919
  }
920
  tEncoderClear(&encoder);
3,640✔
921
  return tlen;
3,640✔
922
}
923
int32_t tDeserializeSMRebalanceXnodeJobReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobReq *pReq) {
1,820✔
924
  SDecoder decoder = {0};
1,820✔
925
  int32_t  code = 0;
1,820✔
926
  int32_t  lino = 0;
1,820✔
927

928
  tDecoderInit(&decoder, buf, bufLen);
1,820✔
929

930
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,820✔
931
  DECODESQL();
5,460✔
932
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
3,640✔
933
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
3,640✔
934

935
  tEndDecode(&decoder);
1,820✔
936
_exit:
1,820✔
937
  tDecoderClear(&decoder);
1,820✔
938
  return code;
1,820✔
939
}
940

941
void tFreeSMRebalanceXnodeJobReq(SMRebalanceXnodeJobReq *pReq) { FREESQL(); }
3,640✔
942

943
int32_t tSerializeSMRebalanceXnodeJobsWhereReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobsWhereReq *pReq) {
2,366✔
944
  SEncoder encoder = {0};
2,366✔
945
  int32_t  code = 0;
2,366✔
946
  int32_t  lino = 0;
2,366✔
947
  int32_t  tlen = 0;
2,366✔
948

949
  tEncoderInit(&encoder, buf, bufLen);
2,366✔
950

951
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,366✔
952
  ENCODESQL();
7,098✔
953
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->ast));
2,366✔
954
  tEndEncode(&encoder);
2,366✔
955
_exit:
2,366✔
956
  if (code) {
2,366✔
957
    tlen = code;
×
958
  } else {
959
    tlen = encoder.pos;
2,366✔
960
  }
961
  tEncoderClear(&encoder);
2,366✔
962
  return tlen;
2,366✔
963
}
964
int32_t tDeserializeSMRebalanceXnodeJobsWhereReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobsWhereReq *pReq) {
1,183✔
965
  SDecoder decoder = {0};
1,183✔
966
  int32_t  code = 0;
1,183✔
967
  int32_t  lino = 0;
1,183✔
968

969
  tDecoderInit(&decoder, buf, bufLen);
1,183✔
970

971
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,183✔
972
  DECODESQL();
3,549✔
973
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
1,183✔
974

975
  tEndDecode(&decoder);
1,183✔
976
_exit:
1,183✔
977
  tDecoderClear(&decoder);
1,183✔
978
  return code;
1,183✔
979
}
980

981
void tFreeSMRebalanceXnodeJobsWhereReq(SMRebalanceXnodeJobsWhereReq *pReq) {
2,366✔
982
  FREESQL();
2,366✔
983
  xFreeCowStr(&pReq->ast);
2,366✔
984
}
2,366✔
985

986
int32_t tSerializeSMDropXnodeJobReq(void *buf, int32_t bufLen, SMDropXnodeJobReq *pReq) {
33,124✔
987
  SEncoder encoder = {0};
33,124✔
988
  int32_t  code = 0;
33,124✔
989
  int32_t  lino = 0;
33,124✔
990
  int32_t  tlen = 0;
33,124✔
991

992
  tEncoderInit(&encoder, buf, bufLen);
33,124✔
993

994
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
33,124✔
995
  ENCODESQL();
99,372✔
996
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
66,248✔
997
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->ast));
33,124✔
998

999
  tEndEncode(&encoder);
33,124✔
1000
_exit:
33,124✔
1001
  if (code) {
33,124✔
1002
    tlen = code;
×
1003
  } else {
1004
    tlen = encoder.pos;
33,124✔
1005
  }
1006
  tEncoderClear(&encoder);
33,124✔
1007
  return tlen;
33,124✔
1008
}
1009
int32_t tDeserializeSMDropXnodeJobReq(void *buf, int32_t bufLen, SMDropXnodeJobReq *pReq) {
16,562✔
1010
  SDecoder decoder = {0};
16,562✔
1011
  int32_t  code = 0;
16,562✔
1012
  int32_t  lino = 0;
16,562✔
1013

1014
  tDecoderInit(&decoder, buf, bufLen);
16,562✔
1015

1016
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16,562✔
1017
  DECODESQL();
49,686✔
1018
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
33,124✔
1019
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
16,562✔
1020

1021
  tEndDecode(&decoder);
16,562✔
1022
_exit:
16,562✔
1023
  tDecoderClear(&decoder);
16,562✔
1024
  return code;
16,562✔
1025
}
1026
void tFreeSMDropXnodeJobReq(SMDropXnodeJobReq *pReq) {
33,124✔
1027
  FREESQL();
33,124✔
1028
  xFreeCowStr(&pReq->ast);
33,124✔
1029
}
33,124✔
1030

1031
int32_t tSerializeSMCreateXnodeAgentReq(void *buf, int32_t bufLen, SMCreateXnodeAgentReq *pReq) {
1,456✔
1032
  SEncoder encoder = {0};
1,456✔
1033
  int32_t  code = 0;
1,456✔
1034
  int32_t  lino = 0;
1,456✔
1035
  int32_t  tlen = 0;
1,456✔
1036
  tEncoderInit(&encoder, buf, bufLen);
1,456✔
1037

1038
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,456✔
1039
  ENCODESQL();
4,368✔
1040
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
1,456✔
1041
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
1,456✔
1042
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
1,456✔
1043
  tEndEncode(&encoder);
1,456✔
1044

1045
_exit:
1,456✔
1046
  if (code) {
1,456✔
UNCOV
1047
    tlen = code;
×
1048
  } else {
1049
    tlen = encoder.pos;
1,456✔
1050
  }
1051
  tEncoderClear(&encoder);
1,456✔
1052
  return tlen;
1,456✔
1053
}
1054

1055
int32_t tDeserializeSMCreateXnodeAgentReq(void *buf, int32_t bufLen, SMCreateXnodeAgentReq *pReq) {
728✔
1056
  SDecoder decoder = {0};
728✔
1057
  int32_t  code = 0;
728✔
1058
  int32_t  lino = 0;
728✔
1059

1060
  tDecoderInit(&decoder, buf, bufLen);
728✔
1061

1062
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
728✔
1063
  DECODESQL();
2,184✔
1064
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
728✔
1065
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
728✔
1066
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
728✔
1067

1068
  tEndDecode(&decoder);
728✔
1069
_exit:
728✔
1070
  tDecoderClear(&decoder);
728✔
1071
  return code;
728✔
1072
}
1073

1074
void tFreeSMCreateXnodeAgentReq(SMCreateXnodeAgentReq *pReq) {
1,456✔
1075
  FREESQL();
1,456✔
1076
  xFreeCowStr(&pReq->name);
1,456✔
1077
  xFreeCowStr(&pReq->status);
1,456✔
1078
  xFreeTaskOptions(&pReq->options);
1,456✔
1079
}
1,456✔
1080

1081
int32_t tSerializeSMUpdateXnodeAgentReq(void *buf, int32_t bufLen, SMUpdateXnodeAgentReq *pReq) {
364✔
1082
  SEncoder encoder = {0};
364✔
1083
  int32_t  code = 0;
364✔
1084
  int32_t  lino = 0;
364✔
1085
  int32_t  tlen = 0;
364✔
1086
  tEncoderInit(&encoder, buf, bufLen);
364✔
1087

1088
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
364✔
1089
  ENCODESQL();
1,092✔
1090
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
728✔
1091
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
364✔
1092
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
364✔
1093
  tEndEncode(&encoder);
364✔
1094

1095
_exit:
364✔
1096
  if (code) {
364✔
UNCOV
1097
    tlen = code;
×
1098
  } else {
1099
    tlen = encoder.pos;
364✔
1100
  }
1101
  tEncoderClear(&encoder);
364✔
1102
  return tlen;
364✔
1103
}
1104
int32_t tDeserializeSMUpdateXnodeAgentReq(void *buf, int32_t bufLen, SMUpdateXnodeAgentReq *pReq) {
182✔
1105
  SDecoder decoder = {0};
182✔
1106
  int32_t  code = 0;
182✔
1107
  int32_t  lino = 0;
182✔
1108

1109
  tDecoderInit(&decoder, buf, bufLen);
182✔
1110

1111
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
182✔
1112
  DECODESQL();
546✔
1113
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
364✔
1114
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
182✔
1115
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
182✔
1116

1117
  tEndDecode(&decoder);
182✔
1118
_exit:
182✔
1119
  tDecoderClear(&decoder);
182✔
1120
  return code;
182✔
1121
}
1122
void tFreeSMUpdateXnodeAgentReq(SMUpdateXnodeAgentReq *pReq) {
364✔
1123
  FREESQL();
364✔
1124
  xFreeCowStr(&pReq->name);
364✔
1125
  xFreeTaskOptions(&pReq->options);
364✔
1126
}
364✔
1127

1128
int32_t tSerializeSMDropXnodeAgentReq(void *buf, int32_t bufLen, SMDropXnodeAgentReq *pReq) {
3,094✔
1129
  return tSerializeSMDropXnodeTaskReq(buf, bufLen, (SMDropXnodeTaskReq *)pReq);
3,094✔
1130
}
1131
int32_t tDeserializeSMDropXnodeAgentReq(void *buf, int32_t bufLen, SMDropXnodeAgentReq *pReq) {
1,547✔
1132
  return tDeserializeSMDropXnodeTaskReq(buf, bufLen, (SMDropXnodeTaskReq *)pReq);
1,547✔
1133
}
1134
void tFreeSMDropXnodeAgentReq(SMDropXnodeAgentReq *pReq) { tFreeSMDropXnodeTaskReq((SMDropXnodeTaskReq *)pReq); }
3,094✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc