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

taosdata / TDengine / #4928

15 Jan 2026 04:09PM UTC coverage: 66.708% (+0.6%) from 66.12%
#4928

push

travis-ci

web-flow
merge: from main to 3.0 branch #34317

840 of 1255 new or added lines in 23 files covered. (66.93%)

826 existing lines in 119 files now uncovered.

203035 of 304362 relevant lines covered (66.71%)

130886757.17 hits per line

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

79.75
/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) {
33,480✔
28
  CowStr cow = {0};
33,480✔
29
  if (NULL == ptr) {
33,480✔
NEW
30
    return cow;
×
31
  }
32
  if (shouldClone) {
33,480✔
33
    cow.len = len;
19,995✔
34
    cow.ptr = taosMemoryCalloc(1, len + 1);
19,995✔
35
    if (cow.ptr == NULL) {
19,995✔
NEW
36
      cow.len = 0;
×
NEW
37
      return cow;
×
38
    }
39
    (void)memcpy((void*)cow.ptr, ptr, len);
19,995✔
40
    ((char*)cow.ptr)[len] = '\0';
19,995✔
41
    cow.shouldFree = true;
19,995✔
42
  } else {
43
    cow.len = len;
13,485✔
44
    cow.ptr = ptr;
13,485✔
45
    cow.shouldFree = false;
13,485✔
46
  }
47
  return cow;
33,480✔
48
}
49
void xSetCowStr(CowStr *cow, int32_t len, const char *ptr, bool shouldFree) {
9,951✔
50
  if (cow == NULL) {
9,951✔
NEW
51
    return;
×
52
  }
53
  if (NULL == ptr) {
9,951✔
NEW
54
    xFreeCowStr(cow);
×
UNCOV
55
    return;
×
56
  }
57
  cow->len = len;
9,951✔
58
  cow->ptr = taosMemoryCalloc(1, len + 1);
9,951✔
59
  if (cow->ptr == NULL) {
9,951✔
NEW
60
    cow->len = 0;
×
NEW
61
    return;
×
62
  }
63
  (void)memcpy((void*)cow->ptr, ptr, len);
9,951✔
64
  ((char*)cow->ptr)[len] = '\0';
9,951✔
65
  cow->shouldFree = shouldFree;
9,951✔
66
}
67
CowStr xCloneRefCowStr(CowStr *cow) {
15,996✔
68
  CowStr ref = {0};
15,996✔
69
  if (cow == NULL) {
15,996✔
70
    return ref;
×
71
  }
72
  ref.len = cow->len;
15,996✔
73
  ref.ptr = cow->ptr;
15,996✔
74
  ref.shouldFree = false;
15,996✔
75
  return ref;
15,996✔
76
}
77

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

105
  if (shouldClone) {
83,700✔
106
    uint64_t len = 0;
83,700✔
107
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(decoder, (void**)&cow->ptr, &len));
167,400✔
108
    cow->len = (int32_t)len - 1;
83,700✔
109
    cow->shouldFree = true;
83,700✔
110
  } else {
NEW
111
    TAOS_CHECK_EXIT(tDecodeBinary(decoder, (uint8_t**)&cow->ptr, (uint32_t *)&cow->len));
×
NEW
112
    cow->len -= 1;
×
UNCOV
113
    cow->shouldFree = false;
×
114
  }
115
_exit:
83,700✔
116
  return code;
83,700✔
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) {
6,924✔
145
  SEncoder encoder = {0};
6,924✔
146
  int32_t  code = 0;
6,924✔
147
  int32_t  lino = 0;
6,924✔
148
  int32_t  tlen = 0;
6,924✔
149
  tEncoderInit(&encoder, buf, bufLen);
6,924✔
150

151
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,924✔
152
  ENCODESQL();
20,772✔
153

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

168
  tEndEncode(&encoder);
6,924✔
169

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

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

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

187
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,462✔
188
  DECODESQL();
10,386✔
189

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

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

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

211
void tFreeSMCreateXnodeReq(SMCreateXnodeReq *pReq) {
6,924✔
212
  taosMemoryFreeClear(pReq->url);
6,924✔
213
  taosMemoryFreeClear(pReq->user);
6,924✔
214
  taosMemoryFreeClear(pReq->pass);
6,924✔
215
  FREESQL();
6,924✔
216
}
6,924✔
217
void xFreeTaskSource(xTaskSource *source) {
25,110✔
218
  if (source == NULL) {
25,110✔
219
    return;
×
220
  }
221
  xFreeCowStr(&source->cstr);
25,110✔
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) {
6,510✔
237
  xTaskSource taskSource = {0};
6,510✔
238
  if (source == NULL) {
6,510✔
239
    return taskSource;
×
240
  }
241
  taskSource.type = source->type;
6,510✔
242
  taskSource.cstr = xCloneRefCowStr(&source->cstr);
6,510✔
243
  return taskSource;
6,510✔
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) {
18,600✔
260
  int32_t code = 0;
18,600✔
261
  int32_t  lino = 0;
18,600✔
262
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
37,200✔
263
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
18,600✔
264
_exit:
18,600✔
265
  return code;
18,600✔
266
}
267
int32_t xDeserializeTaskSource(SDecoder *decoder, xTaskSource *source) {
9,300✔
268
  if (decoder == NULL || source == NULL) {
9,300✔
269
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
270
  }
271
  int32_t code = 0;
9,300✔
272
  int32_t lino = 0;
9,300✔
273
  int32_t type = 0;
9,300✔
274
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
9,300✔
275
  source->type = type;
9,300✔
276
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &source->cstr, true));
9,300✔
277
_exit:
9,300✔
278
  return code;
9,300✔
279
}
280

281
void xFreeTaskSink(xTaskSink *sink) {
26,040✔
282
  if (sink == NULL) {
26,040✔
283
    return;
×
284
  }
285
  xFreeCowStr(&sink->cstr);
26,040✔
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) {
7,440✔
300
  xTaskSink taskSink = {0};
7,440✔
301
  if (sink == NULL) {
7,440✔
302
    return taskSink;
×
303
  }
304
  taskSink.type = sink->type;
7,440✔
305
  taskSink.cstr = xCloneRefCowStr(&sink->cstr);
7,440✔
306
  return taskSink;
7,440✔
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) {
18,600✔
321
  int32_t code = 0;
18,600✔
322
  int32_t lino = 0;
18,600✔
323
  TAOS_CHECK_EXIT(tEncodeI32(encoder, sink->type));
37,200✔
324
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &sink->cstr));
18,600✔
325
_exit:
18,600✔
326
  return code;
18,600✔
327
}
328
int32_t xDeserializeTaskSink(SDecoder *decoder, xTaskSink *sink) {
9,300✔
329
  if (decoder == NULL || sink == NULL) {
9,300✔
330
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
331
  }
332
  int32_t code = 0;
9,300✔
333
  int32_t lino = 0;
9,300✔
334
  int32_t type = 0;
9,300✔
335
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
9,300✔
336
  sink->type = type;
9,300✔
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));
9,300✔
346
_exit:
9,300✔
347
  return code;
9,300✔
348
}
349

350
void xFreeTaskOptions(xTaskOptions *options) {
11,904✔
351
  if (options == NULL) {
11,904✔
352
    return;
×
353
  }
354
  xFreeCowStr(&options->trigger);
11,904✔
355
  xFreeCowStr(&options->parser);
11,904✔
356
  xFreeCowStr(&options->health);
11,904✔
357
  // xFreeCowStr(&options->reason);
358
  for (int i = 0; i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
773,760✔
359
    xFreeCowStr(&options->options[i]);
761,856✔
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) {
11,904✔
378
  int32_t code = 0;
11,904✔
379
  int32_t lino = 0;
11,904✔
380
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->via));
23,808✔
381
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->parser));
11,904✔
382
  // TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->reason));
383
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->trigger));
11,904✔
384
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->health));
11,904✔
385
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->optionsNum));
23,808✔
386
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
31,806✔
387
    TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->options[i]));
19,902✔
388
  }
389
_exit:
11,904✔
390
  return code;
11,904✔
391
}
392
int32_t xDeserializeTaskOptions(SDecoder *decoder, xTaskOptions *options) {
5,952✔
393
  if (decoder == NULL || options == NULL) {
5,952✔
394
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
395
  }
396
  int32_t code = 0;
5,952✔
397
  int32_t  lino = 0;
5,952✔
398

399
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->via));
11,904✔
400
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->parser, true));
5,952✔
401
  // TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->reason, true));
402
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->trigger, true));
5,952✔
403
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->health, true));
5,952✔
404
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->optionsNum));
11,904✔
405
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
15,903✔
406
    TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->options[i], true));
9,951✔
407
  }
408
_exit:
5,952✔
409
  return code;
5,952✔
410
}
411
int32_t tSerializeXnodeTaskSource(SEncoder *encoder, xTaskSource *source) {
×
412
  int32_t code = 0;
×
NEW
413
  int32_t lino = 0;
×
NEW
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;
×
NEW
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) {
11,160✔
431
  SEncoder encoder = {0};
11,160✔
432
  int32_t  code = 0;
11,160✔
433
  int32_t  lino = 0;
11,160✔
434
  int32_t  tlen = 0;
11,160✔
435
  tEncoderInit(&encoder, buf, bufLen);
11,160✔
436

437
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,160✔
438
  ENCODESQL();
33,480✔
439
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
22,320✔
440
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
11,160✔
441
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
11,160✔
442
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
11,160✔
443
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
11,160✔
444
  tEndEncode(&encoder);
11,160✔
445

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

460
  tDecoderInit(&decoder, buf, bufLen);
5,580✔
461

462
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,580✔
463
  DECODESQL();
16,740✔
464
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
11,160✔
465
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
5,580✔
466
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
5,580✔
467
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
5,580✔
468
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
5,580✔
469
  tEndDecode(&decoder);
5,580✔
470

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

490
  tEncoderInit(&encoder, buf, bufLen);
11,346✔
491

492
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,346✔
493
  ENCODESQL();
34,038✔
494
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
22,692✔
495
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->force));
11,346✔
496
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
11,346✔
497
  tEndEncode(&encoder);
11,346✔
498

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

515
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,673✔
516
  DECODESQL();
17,019✔
517
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
11,346✔
518
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->force));
5,673✔
519
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
5,673✔
520
  tEndDecode(&decoder);
5,673✔
521

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

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

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

539
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,720✔
540
  ENCODESQL();
11,160✔
541
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
7,440✔
542
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
3,720✔
543
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
7,440✔
544
  tEndEncode(&encoder);
3,720✔
545

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

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

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

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

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

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

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

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

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

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

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

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

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

663
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
13,722✔
664
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
27,444✔
665
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->force));
27,444✔
666
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
27,444✔
667
  if (pReq->urlLen > 0) {
13,722✔
668
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
15,324✔
669
  }
670
  ENCODESQL();
41,166✔
671
  tEndEncode(&encoder);
13,722✔
672

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

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

688
  tDecoderInit(&decoder, buf, bufLen);
6,861✔
689

690
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6,861✔
691
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
13,722✔
692
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->force));
13,722✔
693
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
13,722✔
694
  if (pReq->urlLen > 0) {
6,861✔
695
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
7,662✔
696
  }
697
  DECODESQL();
20,583✔
698
  tEndDecode(&decoder);
6,861✔
699

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

705
void tFreeSMDropXnodeReq(SMDropXnodeReq *pReq) {
13,722✔
706
  FREESQL();
13,722✔
707
  if (pReq->urlLen > 0 && pReq->url != NULL) {
13,722✔
708
    taosMemoryFree(pReq->url);
7,662✔
709
  }
710
}
13,722✔
711

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

719
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,200✔
720
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
8,400✔
721
  ENCODESQL();
12,600✔
722
  tEndEncode(&encoder);
4,200✔
723

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

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

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

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

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

751
void tFreeSMDrainXnodeReq(SMDrainXnodeReq *pReq) { FREESQL(); }
4,200✔
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) {
186✔
764
  // printf("serializeCreateXnodeTaskJob: %d\n", pReq->tid);
765
  SEncoder encoder = {0};
186✔
766
  int32_t  code = 0;
186✔
767
  int32_t  lino = 0;
186✔
768
  int32_t  tlen = 0;
186✔
769

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

772
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
186✔
773
  // 0. sql
774
  ENCODESQL();
558✔
775

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

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

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

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

802
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
93✔
803
  DECODESQL();
279✔
804
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
186✔
805
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
186✔
806
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
186✔
807
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
93✔
808
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->config, true));
93✔
809
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
93✔
810
  tEndDecode(&decoder);
93✔
811

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

823
int32_t tSerializeSMUpdateXnodeJobReq(void *buf, int32_t bufLen, SMUpdateXnodeJobReq *pReq) {
×
UNCOV
824
  SEncoder encoder = {0};
×
825
  int32_t  code = 0;
×
NEW
826
  int32_t  lino = 0;
×
NEW
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));
×
NEW
840
  if (pReq->config != NULL) {
×
NEW
841
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->config, pReq->configLen + 1));
×
842
  } else {
NEW
843
    TAOS_CHECK_EXIT(tEncodeU32v(&encoder, 0));
×
844
  }
845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reasonLen));
×
NEW
846
  if (pReq->reason != NULL) {
×
NEW
847
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->reason, pReq->reasonLen + 1));
×
848
  } else {
NEW
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;
×
NEW
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));
×
NEW
877
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->config, NULL));
×
878
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reasonLen));
×
NEW
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,720✔
901
  SEncoder encoder = {0};
3,720✔
902
  int32_t  code = 0;
3,720✔
903
  int32_t  lino = 0;
3,720✔
904
  int32_t  tlen = 0;
3,720✔
905

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

908
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,720✔
909
  ENCODESQL();
11,160✔
910
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
7,440✔
911
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
7,440✔
912

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

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

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

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

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

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

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

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

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

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

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

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

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

992
  tEncoderInit(&encoder, buf, bufLen);
1,860✔
993

994
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,860✔
995
  ENCODESQL();
5,580✔
996
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
3,720✔
997
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
3,720✔
998

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

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

1016
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
930✔
1017
  DECODESQL();
2,790✔
1018
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
1,860✔
1019
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
1,860✔
1020

1021
  tEndDecode(&decoder);
930✔
1022
_exit:
930✔
1023
  tDecoderClear(&decoder);
930✔
1024
  return code;
930✔
1025
}
1026
void tFreeSMDropXnodeJobReq(SMDropXnodeJobReq *pReq) { FREESQL(); }
1,860✔
1027

1028
int32_t tSerializeSMCreateXnodeAgentReq(void *buf, int32_t bufLen, SMCreateXnodeAgentReq *pReq) {
372✔
1029
  SEncoder encoder = {0};
372✔
1030
  int32_t  code = 0;
372✔
1031
  int32_t  lino = 0;
372✔
1032
  int32_t  tlen = 0;
372✔
1033
  tEncoderInit(&encoder, buf, bufLen);
372✔
1034

1035
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
372✔
1036
  ENCODESQL();
1,116✔
1037
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
372✔
1038
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
372✔
1039
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
372✔
1040
  tEndEncode(&encoder);
372✔
1041

1042
_exit:
372✔
1043
  if (code) {
372✔
NEW
1044
    tlen = code;
×
1045
  } else {
1046
    tlen = encoder.pos;
372✔
1047
  }
1048
  tEncoderClear(&encoder);
372✔
1049
  return tlen;
372✔
1050
}
1051

1052
int32_t tDeserializeSMCreateXnodeAgentReq(void *buf, int32_t bufLen, SMCreateXnodeAgentReq *pReq) {
186✔
1053
  SDecoder decoder = {0};
186✔
1054
  int32_t  code = 0;
186✔
1055
  int32_t  lino = 0;
186✔
1056

1057
  tDecoderInit(&decoder, buf, bufLen);
186✔
1058

1059
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
186✔
1060
  DECODESQL();
558✔
1061
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
186✔
1062
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
186✔
1063
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
186✔
1064

1065
  tEndDecode(&decoder);
186✔
1066
_exit:
186✔
1067
  tDecoderClear(&decoder);
186✔
1068
  return code;
186✔
1069
}
1070

1071
void tFreeSMCreateXnodeAgentReq(SMCreateXnodeAgentReq *pReq) {
372✔
1072
  FREESQL();
372✔
1073
  xFreeCowStr(&pReq->name);
372✔
1074
  xFreeCowStr(&pReq->status);
372✔
1075
  xFreeTaskOptions(&pReq->options);
372✔
1076
}
372✔
1077

1078
int32_t tSerializeSMUpdateXnodeAgentReq(void *buf, int32_t bufLen, SMUpdateXnodeAgentReq *pReq) {
372✔
1079
  SEncoder encoder = {0};
372✔
1080
  int32_t  code = 0;
372✔
1081
  int32_t  lino = 0;
372✔
1082
  int32_t  tlen = 0;
372✔
1083
  tEncoderInit(&encoder, buf, bufLen);
372✔
1084

1085
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
372✔
1086
  ENCODESQL();
1,116✔
1087
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
744✔
1088
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
372✔
1089
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
372✔
1090
  tEndEncode(&encoder);
372✔
1091

1092
_exit:
372✔
1093
  if (code) {
372✔
NEW
1094
    tlen = code;
×
1095
  } else {
1096
    tlen = encoder.pos;
372✔
1097
  }
1098
  tEncoderClear(&encoder);
372✔
1099
  return tlen;
372✔
1100
}
1101
int32_t tDeserializeSMUpdateXnodeAgentReq(void *buf, int32_t bufLen, SMUpdateXnodeAgentReq *pReq) {
186✔
1102
  SDecoder decoder = {0};
186✔
1103
  int32_t  code = 0;
186✔
1104
  int32_t  lino = 0;
186✔
1105

1106
  tDecoderInit(&decoder, buf, bufLen);
186✔
1107

1108
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
186✔
1109
  DECODESQL();
558✔
1110
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
372✔
1111
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
186✔
1112
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
186✔
1113

1114
  tEndDecode(&decoder);
186✔
1115
_exit:
186✔
1116
  tDecoderClear(&decoder);
186✔
1117
  return code;
186✔
1118
}
1119
void tFreeSMUpdateXnodeAgentReq(SMUpdateXnodeAgentReq *pReq) {
372✔
1120
  FREESQL();
372✔
1121
  xFreeCowStr(&pReq->name);
372✔
1122
  xFreeTaskOptions(&pReq->options);
372✔
1123
}
372✔
1124

1125
int32_t tSerializeSMDropXnodeAgentReq(void *buf, int32_t bufLen, SMDropXnodeAgentReq *pReq) {
2,046✔
1126
  return tSerializeSMDropXnodeTaskReq(buf, bufLen, (SMDropXnodeTaskReq *)pReq);
2,046✔
1127
}
1128
int32_t tDeserializeSMDropXnodeAgentReq(void *buf, int32_t bufLen, SMDropXnodeAgentReq *pReq) {
1,023✔
1129
  return tDeserializeSMDropXnodeTaskReq(buf, bufLen, (SMDropXnodeTaskReq *)pReq);
1,023✔
1130
}
1131
void tFreeSMDropXnodeAgentReq(SMDropXnodeAgentReq *pReq) { tFreeSMDropXnodeTaskReq((SMDropXnodeTaskReq *)pReq); }
2,046✔
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