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

taosdata / TDengine / #4952

06 Feb 2026 07:29AM UTC coverage: 66.869% (-0.02%) from 66.887%
#4952

push

travis-ci

web-flow
merge: from main to 3.0 #34521

758 of 1081 new or added lines in 28 files covered. (70.12%)

6496 existing lines in 142 files now uncovered.

205752 of 307696 relevant lines covered (66.87%)

126028909.65 hits per line

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

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

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

105
  if (shouldClone) {
158,345✔
106
    uint64_t len = 0;
158,345✔
107
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(decoder, (void**)&cow->ptr, &len));
316,690✔
108
    cow->len = (int32_t)len - 1;
158,345✔
109
    cow->shouldFree = true;
158,345✔
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:
158,345✔
116
  return code;
158,345✔
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,294✔
145
  SEncoder encoder = {0};
7,294✔
146
  int32_t  code = 0;
7,294✔
147
  int32_t  lino = 0;
7,294✔
148
  int32_t  tlen = 0;
7,294✔
149
  tEncoderInit(&encoder, buf, bufLen);
7,294✔
150

151
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,294✔
152
  ENCODESQL();
21,882✔
153

154
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
14,588✔
155
  if (pReq->urlLen > 0) {
7,294✔
156
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
14,588✔
157
  }
158
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->userLen));
14,588✔
159
  if (pReq->userLen > 0) {
7,294✔
160
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->user, pReq->userLen));
6,252✔
161
  }
162
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->passLen));
14,588✔
163
  if (pReq->passLen > 0) {
7,294✔
164
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pass, pReq->passLen));
6,252✔
165
  }
166
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->passIsMd5));
14,588✔
167
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->token));
7,294✔
168

169
  tEndEncode(&encoder);
7,294✔
170

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

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

186
  tDecoderInit(&decoder, buf, bufLen);
3,647✔
187

188
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,647✔
189
  DECODESQL();
10,941✔
190

191
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
7,294✔
192
  if (pReq->urlLen > 0) {
3,647✔
193
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
7,294✔
194
  }
195
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->userLen));
7,294✔
196
  if (pReq->userLen > 0) {
3,647✔
197
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->user, NULL));
3,126✔
198
  }
199
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->passLen));
7,294✔
200
  if (pReq->passLen > 0) {
3,647✔
201
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->pass, NULL));
3,126✔
202
  }
203
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->passIsMd5));
7,294✔
204
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->token, true));
3,647✔
205

206
  tEndDecode(&decoder);
3,647✔
207

208
_exit:
3,647✔
209
  tDecoderClear(&decoder);
3,647✔
210
  return code;
3,647✔
211
}
212

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

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

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

323
int32_t xSerializeTaskSink(SEncoder *encoder, xTaskSink *sink) {
28,980✔
324
  int32_t code = 0;
28,980✔
325
  int32_t lino = 0;
28,980✔
326
  TAOS_CHECK_EXIT(tEncodeI32(encoder, sink->type));
57,960✔
327
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &sink->cstr));
28,980✔
328
_exit:
28,980✔
329
  return code;
28,980✔
330
}
331
int32_t xDeserializeTaskSink(SDecoder *decoder, xTaskSink *sink) {
14,490✔
332
  if (decoder == NULL || sink == NULL) {
14,490✔
UNCOV
333
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
334
  }
335
  int32_t code = 0;
14,490✔
336
  int32_t lino = 0;
14,490✔
337
  int32_t type = 0;
14,490✔
338
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
14,490✔
339
  sink->type = type;
14,490✔
340
  // switch (type) {
341
  //   case XNODE_TASK_SINK_DSN:
342
  //   case XNODE_TASK_SINK_DATABASE:
343
  //     sink->type = type;
344
  //     break;
345
  //   default:
346
  //     TAOS_RETURN(TSDB_CODE_MND_XNODE_INVALID_MSG);
347
  // }
348
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &sink->cstr, true));
14,490✔
349
_exit:
14,490✔
350
  return code;
14,490✔
351
}
352

353
void xFreeTaskOptions(xTaskOptions *options) {
24,840✔
354
  if (options == NULL) {
24,840✔
UNCOV
355
    return;
×
356
  }
357
  xFreeCowStr(&options->trigger);
24,840✔
358
  xFreeCowStr(&options->parser);
24,840✔
359
  xFreeCowStr(&options->health);
24,840✔
360
  // xFreeCowStr(&options->reason);
361
  for (int i = 0; i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
1,614,600✔
362
    xFreeCowStr(&options->options[i]);
1,589,760✔
363
  }
364
}
UNCOV
365
void printXnodeTaskOptions(xTaskOptions *options) {
×
UNCOV
366
  printf("Xnode Task Options:\n");
×
UNCOV
367
  printf("  trigger: %s\n", options->trigger.ptr);
×
368
  printf("  parser: %s\n", options->parser.ptr);
×
369
  printf("  health: %s\n", options->health.ptr);
×
370
  // printf("  reason: %s\n", options->reason.ptr);
371
  if (options->via > 0) {
×
372
    printf("  via: %d\n", options->via);
×
373
  } else {
374
    printf("  via: nil\n");
×
375
  }
UNCOV
376
  for (int i = 0; i < options->optionsNum; ++i) {
×
377
    printf("  option[%d]: %s\n", i, options->options[i].ptr);
×
378
  }
379
}
×
380
int32_t xSerializeTaskOptions(SEncoder *encoder, xTaskOptions *options) {
24,840✔
381
  int32_t code = 0;
24,840✔
382
  int32_t lino = 0;
24,840✔
383
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->via));
49,680✔
384
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->parser));
24,840✔
385
  // TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->reason));
386
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->trigger));
24,840✔
387
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->health));
24,840✔
388
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->optionsNum));
49,680✔
389
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
70,932✔
390
    TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->options[i]));
46,092✔
391
  }
392
_exit:
24,840✔
393
  return code;
24,840✔
394
}
395
int32_t xDeserializeTaskOptions(SDecoder *decoder, xTaskOptions *options) {
12,420✔
396
  if (decoder == NULL || options == NULL) {
12,420✔
UNCOV
397
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
398
  }
399
  int32_t code = 0;
12,420✔
400
  int32_t  lino = 0;
12,420✔
401

402
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->via));
24,840✔
403
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->parser, true));
12,420✔
404
  // TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->reason, true));
405
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->trigger, true));
12,420✔
406
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->health, true));
12,420✔
407
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->optionsNum));
24,840✔
408
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
35,466✔
409
    TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->options[i], true));
23,046✔
410
  }
411
_exit:
12,420✔
412
  return code;
12,420✔
413
}
UNCOV
414
int32_t tSerializeXnodeTaskSource(SEncoder *encoder, xTaskSource *source) {
×
UNCOV
415
  int32_t code = 0;
×
UNCOV
416
  int32_t lino = 0;
×
417
  int32_t tlen = 0;
×
418
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
×
419
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
×
420
_exit:
×
421
  return code;
×
422
}
423

424
int32_t tDeserializeXnodeTaskSource(SDecoder *decoder, xTaskSource *source) {
×
UNCOV
425
  int32_t code = 0;
×
UNCOV
426
  int32_t lino = 0;
×
427

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

440
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
23,460✔
441
  ENCODESQL();
70,380✔
442
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
46,920✔
443
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
23,460✔
444
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
23,460✔
445
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
23,460✔
446
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
23,460✔
447
  tEndEncode(&encoder);
23,460✔
448

449
_exit:
23,460✔
450
  if (code) {
23,460✔
UNCOV
451
    tlen = code;
×
452
  } else {
453
    tlen = encoder.pos;
23,460✔
454
  }
455
  tEncoderClear(&encoder);
23,460✔
456
  return tlen;
23,460✔
457
}
458
int32_t tDeserializeSMCreateXnodeTaskReq(void *buf, int32_t bufLen, SMCreateXnodeTaskReq *pReq) {
11,730✔
459
  SDecoder decoder = {0};
11,730✔
460
  int32_t  code = 0;
11,730✔
461
  int32_t  lino = 0;
11,730✔
462

463
  tDecoderInit(&decoder, buf, bufLen);
11,730✔
464

465
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,730✔
466
  DECODESQL();
35,190✔
467
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
23,460✔
468
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
11,730✔
469
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
11,730✔
470
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
11,730✔
471
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
11,730✔
472
  tEndDecode(&decoder);
11,730✔
473

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

493
  tEncoderInit(&encoder, buf, bufLen);
24,426✔
494

495
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
24,426✔
496
  ENCODESQL();
73,278✔
497
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
48,852✔
498
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->force));
24,426✔
499
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
24,426✔
500
  tEndEncode(&encoder);
24,426✔
501

502
_exit:
24,426✔
503
  if (code) {
24,426✔
UNCOV
504
    tlen = code;
×
505
  } else {
506
    tlen = encoder.pos;
24,426✔
507
  }
508
  tEncoderClear(&encoder);
24,426✔
509
  return tlen;
24,426✔
510
}
511
int32_t tDeserializeSMDropXnodeTaskReq(void *buf, int32_t bufLen, SMDropXnodeTaskReq *pReq) {
12,213✔
512
  // printf("deserializeDropXnodeTask: %d\n", pReq->tid);
513
  SDecoder decoder = {0};
12,213✔
514
  int32_t  code = 0;
12,213✔
515
  int32_t  lino = 0;
12,213✔
516
  tDecoderInit(&decoder, buf, bufLen);
12,213✔
517

518
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12,213✔
519
  DECODESQL();
36,639✔
520
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
24,426✔
521
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->force));
12,213✔
522
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
12,213✔
523
  tEndDecode(&decoder);
12,213✔
524

525
_exit:
12,213✔
526
  tDecoderClear(&decoder);
12,213✔
527
  return code;
12,213✔
528
}
529
void tFreeSMDropXnodeTaskReq(SMDropXnodeTaskReq *pReq) {
24,426✔
530
  FREESQL();
24,426✔
531
  xFreeCowStr(&pReq->name);
24,426✔
532
}
24,426✔
533

534
int32_t tSerializeSMStartXnodeTaskReq(void *buf, int32_t bufLen, SMStartXnodeTaskReq *pReq) {
2,760✔
535
  SEncoder encoder = {0};
2,760✔
536
  int32_t  code = 0;
2,760✔
537
  int32_t  lino = 0;
2,760✔
538
  int32_t  tlen = 0;
2,760✔
539

540
  tEncoderInit(&encoder, buf, bufLen);
2,760✔
541

542
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,760✔
543
  ENCODESQL();
8,280✔
544
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
5,520✔
545
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
2,760✔
546
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
5,520✔
547
  tEndEncode(&encoder);
2,760✔
548

549
_exit:
2,760✔
550
  if (code) {
2,760✔
UNCOV
551
    tlen = code;
×
552
  } else {
553
    tlen = encoder.pos;
2,760✔
554
  }
555
  tEncoderClear(&encoder);
2,760✔
556
  return tlen;
2,760✔
557
}
558
int32_t tDeserializeSMStartXnodeTaskReq(void *buf, int32_t bufLen, SMStartXnodeTaskReq *pReq) {
1,380✔
559
  SDecoder decoder = {0};
1,380✔
560
  int32_t  code = 0;
1,380✔
561
  int32_t  lino = 0;
1,380✔
562
  tDecoderInit(&decoder, buf, bufLen);
1,380✔
563

564
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,380✔
565
  DECODESQL();
4,140✔
566
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
2,760✔
567
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
1,380✔
568
  tEndDecode(&decoder);
1,380✔
569

570
_exit:
1,380✔
571
  tDecoderClear(&decoder);
1,380✔
572
  return code;
1,380✔
573
}
574
void tFreeSMStartXnodeTaskReq(SMStartXnodeTaskReq *pReq) {
2,760✔
575
  FREESQL();
2,760✔
576
  xFreeCowStr(&pReq->name);
2,760✔
577
}
2,760✔
578

579
int32_t tSerializeSMStopXnodeTaskReq(void *buf, int32_t bufLen, SMStopXnodeTaskReq *pReq) {
1,380✔
580
  return tSerializeSMStartXnodeTaskReq(buf, bufLen, pReq);
1,380✔
581
}
582
int32_t tDeserializeSMStopXnodeTaskReq(void *buf, int32_t bufLen, SMStopXnodeTaskReq *pReq) {
690✔
583
  return tDeserializeSMStartXnodeTaskReq(buf, bufLen, pReq);
690✔
584
}
585
void tFreeSMStopXnodeTaskReq(SMStopXnodeTaskReq *pReq) { tFreeSMStartXnodeTaskReq(pReq); }
1,380✔
586

587
int32_t tSerializeSMUpdateXnodeTaskReq(void *buf, int32_t bufLen, SMUpdateXnodeTaskReq *pReq) {
5,520✔
588
  SEncoder encoder = {0};
5,520✔
589
  int32_t  code = 0;
5,520✔
590
  int32_t  lino = 0;
5,520✔
591
  int32_t  tlen = 0;
5,520✔
592
  tEncoderInit(&encoder, buf, bufLen);
5,520✔
593

594
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,520✔
595
  ENCODESQL();
16,560✔
596
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
11,040✔
597
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
5,520✔
598
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
11,040✔
599
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
11,040✔
600
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
5,520✔
601
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
5,520✔
602
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
5,520✔
603
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->parser));
5,520✔
604
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->reason));
5,520✔
605
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->labels));
5,520✔
606
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->updateName));
5,520✔
607
  tEndEncode(&encoder);
5,520✔
608

609
_exit:
5,520✔
610
  if (code) {
5,520✔
UNCOV
611
    tlen = code;
×
612
  } else {
613
    tlen = encoder.pos;
5,520✔
614
  }
615
  tEncoderClear(&encoder);
5,520✔
616
  return tlen;
5,520✔
617
}
618

619
int32_t tDeserializeSMUpdateXnodeTaskReq(void *buf, int32_t bufLen, SMUpdateXnodeTaskReq *pReq) {
2,760✔
620
  SDecoder decoder = {0};
2,760✔
621
  int32_t  code = 0;
2,760✔
622
  int32_t  lino = 0;
2,760✔
623

624
  tDecoderInit(&decoder, buf, bufLen);
2,760✔
625

626
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,760✔
627
  DECODESQL();
8,280✔
628
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
5,520✔
629
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
2,760✔
630
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
5,520✔
631
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
5,520✔
632
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
2,760✔
633
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
2,760✔
634
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
2,760✔
635
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->parser, true));
2,760✔
636
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
2,760✔
637
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->labels, true));
2,760✔
638
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->updateName, true));
2,760✔
639
  tEndDecode(&decoder);
2,760✔
640

641
_exit:
2,760✔
642
  tDecoderClear(&decoder);
2,760✔
643
  return code;
2,760✔
644
}
645

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

659
int32_t tSerializeSMDropXnodeReq(void *buf, int32_t bufLen, SMDropXnodeReq *pReq) {
14,170✔
660
  SEncoder encoder = {0};
14,170✔
661
  int32_t  code = 0;
14,170✔
662
  int32_t  lino = 0;
14,170✔
663
  int32_t  tlen = 0;
14,170✔
664
  tEncoderInit(&encoder, buf, bufLen);
14,170✔
665

666
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14,170✔
667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
28,340✔
668
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->force));
28,340✔
669
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
28,340✔
670
  if (pReq->urlLen > 0) {
14,170✔
671
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
15,540✔
672
  }
673
  ENCODESQL();
42,510✔
674
  tEndEncode(&encoder);
14,170✔
675

676
_exit:
14,170✔
677
  if (code) {
14,170✔
UNCOV
678
    tlen = code;
×
679
  } else {
680
    tlen = encoder.pos;
14,170✔
681
  }
682
  tEncoderClear(&encoder);
14,170✔
683
  return tlen;
14,170✔
684
}
685

686
int32_t tDeserializeSMDropXnodeReq(void *buf, int32_t bufLen, SMDropXnodeReq *pReq) {
7,085✔
687
  SDecoder decoder = {0};
7,085✔
688
  int32_t  code = 0;
7,085✔
689
  int32_t  lino = 0;
7,085✔
690

691
  tDecoderInit(&decoder, buf, bufLen);
7,085✔
692

693
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,085✔
694
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
14,170✔
695
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->force));
14,170✔
696
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
14,170✔
697
  if (pReq->urlLen > 0) {
7,085✔
698
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
7,770✔
699
  }
700
  DECODESQL();
21,255✔
701
  tEndDecode(&decoder);
7,085✔
702

703
_exit:
7,085✔
704
  tDecoderClear(&decoder);
7,085✔
705
  return code;
7,085✔
706
}
707

708
void tFreeSMDropXnodeReq(SMDropXnodeReq *pReq) {
14,170✔
709
  FREESQL();
14,170✔
710
  if (pReq->urlLen > 0 && pReq->url != NULL) {
14,170✔
711
    taosMemoryFree(pReq->url);
7,770✔
712
  }
713
}
14,170✔
714

715
int32_t tSerializeSMDrainXnodeReq(void *buf, int32_t bufLen, SMDrainXnodeReq *pReq) {
3,640✔
716
  SEncoder encoder = {0};
3,640✔
717
  int32_t  code = 0;
3,640✔
718
  int32_t  lino = 0;
3,640✔
719
  int32_t  tlen = 0;
3,640✔
720
  tEncoderInit(&encoder, buf, bufLen);
3,640✔
721

722
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,640✔
723
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
7,280✔
724
  ENCODESQL();
10,920✔
725
  tEndEncode(&encoder);
3,640✔
726

727
_exit:
3,640✔
728
  if (code) {
3,640✔
UNCOV
729
    tlen = code;
×
730
  } else {
731
    tlen = encoder.pos;
3,640✔
732
  }
733
  tEncoderClear(&encoder);
3,640✔
734
  return tlen;
3,640✔
735
}
736

737
int32_t tDeserializeSMDrainXnodeReq(void *buf, int32_t bufLen, SMDrainXnodeReq *pReq) {
1,820✔
738
  SDecoder decoder = {0};
1,820✔
739
  int32_t  code = 0;
1,820✔
740
  int32_t  lino = 0;
1,820✔
741

742
  tDecoderInit(&decoder, buf, bufLen);
1,820✔
743

744
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,820✔
745
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
3,640✔
746
  DECODESQL();
5,460✔
747
  tEndDecode(&decoder);
1,820✔
748

749
_exit:
1,820✔
750
  tDecoderClear(&decoder);
1,820✔
751
  return code;
1,820✔
752
}
753

754
void tFreeSMDrainXnodeReq(SMDrainXnodeReq *pReq) { FREESQL(); }
3,640✔
755

756
int32_t tSerializeSMUpdateXnodeReq(void *buf, int32_t bufLen, SMUpdateXnodeReq *pReq) {
828✔
757
  SEncoder encoder = {0};
828✔
758
  int32_t  code = 0;
828✔
759
  int32_t  lino = 0;
828✔
760
  int32_t  tlen = 0;
828✔
761
  tEncoderInit(&encoder, buf, bufLen);
828✔
762

763
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
828✔
764
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
1,656✔
765
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->token));
828✔
766
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->user));
828✔
767
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->pass));
828✔
768
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
1,656✔
769
  if (pReq->urlLen > 0) {
828✔
NEW
770
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
×
771
  }
772
  ENCODESQL();
2,484✔
773
  tEndEncode(&encoder);
828✔
774

775
_exit:
828✔
776
  if (code) {
828✔
NEW
777
    tlen = code;
×
778
  } else {
779
    tlen = encoder.pos;
828✔
780
  }
781
  tEncoderClear(&encoder);
828✔
782
  return tlen;
828✔
783
}
784

785
int32_t tDeserializeSMUpdateXnodeReq(void *buf, int32_t bufLen, SMUpdateXnodeReq *pReq) {
414✔
786
  SDecoder decoder = {0};
414✔
787
  int32_t  code = 0;
414✔
788
  int32_t  lino = 0;
414✔
789

790
  tDecoderInit(&decoder, buf, bufLen);
414✔
791

792
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
414✔
793
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
828✔
794
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->token, true));
414✔
795
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->user, true));
414✔
796
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->pass, true));
414✔
797
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
828✔
798
  if (pReq->urlLen > 0) {
414✔
NEW
799
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
×
800
  }
801
  DECODESQL();
1,242✔
802
  tEndDecode(&decoder);
414✔
803

804
_exit:
414✔
805
  tDecoderClear(&decoder);
414✔
806
  return code;
414✔
807
}
808

809
void tFreeSMUpdateXnodeReq(SMUpdateXnodeReq *pReq) {
828✔
810
  FREESQL();
828✔
811
  if (pReq->urlLen > 0 && pReq->url != NULL) {
828✔
NEW
812
    taosMemoryFree(pReq->url);
×
813
  }
814
  xFreeCowStr(&pReq->token);
828✔
815
  xFreeCowStr(&pReq->user);
828✔
816
  xFreeCowStr(&pReq->pass);
828✔
817
}
828✔
818

819
int32_t tSerializeSMCreateXnodeJobReq(void *buf, int32_t bufLen, SMCreateXnodeJobReq *pReq) {
4,830✔
820
  SEncoder encoder = {0};
4,830✔
821
  int32_t  code = 0;
4,830✔
822
  int32_t  lino = 0;
4,830✔
823
  int32_t  tlen = 0;
4,830✔
824

825
  tEncoderInit(&encoder, buf, bufLen);
4,830✔
826

827
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,830✔
828
  // 0. sql
829
  ENCODESQL();
14,490✔
830

831
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
9,660✔
832
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
9,660✔
833
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
9,660✔
834
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
4,830✔
835
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->config));
4,830✔
836
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->reason));
4,830✔
837
  tEndEncode(&encoder);
4,830✔
838

839
_exit:
4,830✔
840
  if (code) {
4,830✔
UNCOV
841
    tlen = code;
×
842
  } else {
843
    tlen = encoder.pos;
4,830✔
844
  }
845
  tEncoderClear(&encoder);
4,830✔
846
  return tlen;
4,830✔
847
}
848

849
int32_t tDeserializeSMCreateXnodeJobReq(void *buf, int32_t bufLen, SMCreateXnodeJobReq *pReq) {
2,415✔
850
  // printf("deserializeCreateXnodeTaskJob: %d\n", pReq->tid);
851
  SDecoder decoder = {0};
2,415✔
852
  int32_t  code = 0;
2,415✔
853
  int32_t  lino = 0;
2,415✔
854

855
  tDecoderInit(&decoder, buf, bufLen);
2,415✔
856

857
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,415✔
858
  DECODESQL();
7,245✔
859
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
4,830✔
860
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
4,830✔
861
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
4,830✔
862
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
2,415✔
863
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->config, true));
2,415✔
864
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
2,415✔
865
  tEndDecode(&decoder);
2,415✔
866

867
_exit:
2,415✔
868
  tDecoderClear(&decoder);
2,415✔
869
  return code;
2,415✔
870
}
871
void tFreeSMCreateXnodeJobReq(SMCreateXnodeJobReq *pReq) {
4,830✔
872
  FREESQL();
4,830✔
873
  xFreeCowStr(&pReq->config);
4,830✔
874
  xFreeCowStr(&pReq->reason);
4,830✔
875
  xFreeCowStr(&pReq->status);
4,830✔
876
}
4,830✔
877

UNCOV
878
int32_t tSerializeSMUpdateXnodeJobReq(void *buf, int32_t bufLen, SMUpdateXnodeJobReq *pReq) {
×
UNCOV
879
  SEncoder encoder = {0};
×
UNCOV
880
  int32_t  code = 0;
×
UNCOV
881
  int32_t  lino = 0;
×
UNCOV
882
  int32_t  tlen = 0;
×
883

UNCOV
884
  tEncoderInit(&encoder, buf, bufLen);
×
885

UNCOV
886
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
887
  // 0. sql
UNCOV
888
  ENCODESQL();
×
889

UNCOV
890
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
×
UNCOV
891
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
×
UNCOV
892
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
×
UNCOV
893
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
×
UNCOV
894
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->configLen));
×
UNCOV
895
  if (pReq->config != NULL) {
×
896
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->config, pReq->configLen + 1));
×
897
  } else {
UNCOV
898
    TAOS_CHECK_EXIT(tEncodeU32v(&encoder, 0));
×
899
  }
UNCOV
900
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reasonLen));
×
UNCOV
901
  if (pReq->reason != NULL) {
×
UNCOV
902
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->reason, pReq->reasonLen + 1));
×
903
  } else {
UNCOV
904
    TAOS_CHECK_EXIT(tEncodeU32v(&encoder, 0));
×
905
  }
UNCOV
906
  tEndEncode(&encoder);
×
907

UNCOV
908
_exit:
×
UNCOV
909
  if (code) {
×
UNCOV
910
    tlen = code;
×
911
  } else {
UNCOV
912
    tlen = encoder.pos;
×
913
  }
UNCOV
914
  tEncoderClear(&encoder);
×
UNCOV
915
  return tlen;
×
916
}
917

UNCOV
918
int32_t tDeserializeSMUpdateXnodeJobReq(void *buf, int32_t bufLen, SMUpdateXnodeJobReq *pReq) {
×
UNCOV
919
  SDecoder decoder = {0};
×
UNCOV
920
  int32_t  code = 0;
×
UNCOV
921
  int32_t  lino = 0;
×
922

UNCOV
923
  tDecoderInit(&decoder, buf, bufLen);
×
924

UNCOV
925
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
UNCOV
926
  DECODESQL();
×
UNCOV
927
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
×
UNCOV
928
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
×
UNCOV
929
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
UNCOV
930
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
×
UNCOV
931
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->configLen));
×
UNCOV
932
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->config, NULL));
×
933
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reasonLen));
×
934
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->reason, NULL));
×
935
  tEndDecode(&decoder);
×
936

937
_exit:
×
UNCOV
938
  tDecoderClear(&decoder);
×
939
  return code;
×
940
}
941

UNCOV
942
void tFreeSMUpdateXnodeJobReq(SMUpdateXnodeJobReq *pReq) {
×
943
  FREESQL();
×
UNCOV
944
  if (pReq->config != NULL) {
×
945
    pReq->configLen = 0;
×
946
    taosMemoryFreeClear(pReq->config);
×
947
  }
948
  if (pReq->reason != NULL) {
×
949
    pReq->reasonLen = 0;
×
950
    taosMemoryFreeClear(pReq->reason);
×
951
  }
UNCOV
952
  xFreeCowStr(&pReq->status);
×
953
}
×
954

955
int32_t tSerializeSMRebalanceXnodeJobReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobReq *pReq) {
2,760✔
956
  SEncoder encoder = {0};
2,760✔
957
  int32_t  code = 0;
2,760✔
958
  int32_t  lino = 0;
2,760✔
959
  int32_t  tlen = 0;
2,760✔
960

961
  tEncoderInit(&encoder, buf, bufLen);
2,760✔
962

963
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,760✔
964
  ENCODESQL();
8,280✔
965
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
5,520✔
966
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
5,520✔
967

968
  tEndEncode(&encoder);
2,760✔
969
_exit:
2,760✔
970
  if (code) {
2,760✔
UNCOV
971
    tlen = code;
×
972
  } else {
973
    tlen = encoder.pos;
2,760✔
974
  }
975
  tEncoderClear(&encoder);
2,760✔
976
  return tlen;
2,760✔
977
}
978
int32_t tDeserializeSMRebalanceXnodeJobReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobReq *pReq) {
1,380✔
979
  SDecoder decoder = {0};
1,380✔
980
  int32_t  code = 0;
1,380✔
981
  int32_t  lino = 0;
1,380✔
982

983
  tDecoderInit(&decoder, buf, bufLen);
1,380✔
984

985
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,380✔
986
  DECODESQL();
4,140✔
987
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
2,760✔
988
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
2,760✔
989

990
  tEndDecode(&decoder);
1,380✔
991
_exit:
1,380✔
992
  tDecoderClear(&decoder);
1,380✔
993
  return code;
1,380✔
994
}
995

996
void tFreeSMRebalanceXnodeJobReq(SMRebalanceXnodeJobReq *pReq) { FREESQL(); }
2,760✔
997

998
int32_t tSerializeSMRebalanceXnodeJobsWhereReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobsWhereReq *pReq) {
2,070✔
999
  SEncoder encoder = {0};
2,070✔
1000
  int32_t  code = 0;
2,070✔
1001
  int32_t  lino = 0;
2,070✔
1002
  int32_t  tlen = 0;
2,070✔
1003

1004
  tEncoderInit(&encoder, buf, bufLen);
2,070✔
1005

1006
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,070✔
1007
  ENCODESQL();
6,210✔
1008
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->ast));
2,070✔
1009
  tEndEncode(&encoder);
2,070✔
1010
_exit:
2,070✔
1011
  if (code) {
2,070✔
UNCOV
1012
    tlen = code;
×
1013
  } else {
1014
    tlen = encoder.pos;
2,070✔
1015
  }
1016
  tEncoderClear(&encoder);
2,070✔
1017
  return tlen;
2,070✔
1018
}
1019
int32_t tDeserializeSMRebalanceXnodeJobsWhereReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobsWhereReq *pReq) {
1,035✔
1020
  SDecoder decoder = {0};
1,035✔
1021
  int32_t  code = 0;
1,035✔
1022
  int32_t  lino = 0;
1,035✔
1023

1024
  tDecoderInit(&decoder, buf, bufLen);
1,035✔
1025

1026
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,035✔
1027
  DECODESQL();
3,105✔
1028
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
1,035✔
1029

1030
  tEndDecode(&decoder);
1,035✔
1031
_exit:
1,035✔
1032
  tDecoderClear(&decoder);
1,035✔
1033
  return code;
1,035✔
1034
}
1035

1036
void tFreeSMRebalanceXnodeJobsWhereReq(SMRebalanceXnodeJobsWhereReq *pReq) {
2,070✔
1037
  FREESQL();
2,070✔
1038
  xFreeCowStr(&pReq->ast);
2,070✔
1039
}
2,070✔
1040

1041
int32_t tSerializeSMDropXnodeJobReq(void *buf, int32_t bufLen, SMDropXnodeJobReq *pReq) {
25,530✔
1042
  SEncoder encoder = {0};
25,530✔
1043
  int32_t  code = 0;
25,530✔
1044
  int32_t  lino = 0;
25,530✔
1045
  int32_t  tlen = 0;
25,530✔
1046

1047
  tEncoderInit(&encoder, buf, bufLen);
25,530✔
1048

1049
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
25,530✔
1050
  ENCODESQL();
76,590✔
1051
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
51,060✔
1052
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->ast));
25,530✔
1053

1054
  tEndEncode(&encoder);
25,530✔
1055
_exit:
25,530✔
1056
  if (code) {
25,530✔
UNCOV
1057
    tlen = code;
×
1058
  } else {
1059
    tlen = encoder.pos;
25,530✔
1060
  }
1061
  tEncoderClear(&encoder);
25,530✔
1062
  return tlen;
25,530✔
1063
}
1064
int32_t tDeserializeSMDropXnodeJobReq(void *buf, int32_t bufLen, SMDropXnodeJobReq *pReq) {
12,765✔
1065
  SDecoder decoder = {0};
12,765✔
1066
  int32_t  code = 0;
12,765✔
1067
  int32_t  lino = 0;
12,765✔
1068

1069
  tDecoderInit(&decoder, buf, bufLen);
12,765✔
1070

1071
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12,765✔
1072
  DECODESQL();
38,295✔
1073
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
25,530✔
1074
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
12,765✔
1075

1076
  tEndDecode(&decoder);
12,765✔
1077
_exit:
12,765✔
1078
  tDecoderClear(&decoder);
12,765✔
1079
  return code;
12,765✔
1080
}
1081
void tFreeSMDropXnodeJobReq(SMDropXnodeJobReq *pReq) {
25,530✔
1082
  FREESQL();
25,530✔
1083
  xFreeCowStr(&pReq->ast);
25,530✔
1084
}
25,530✔
1085

1086
int32_t tSerializeSMCreateXnodeAgentReq(void *buf, int32_t bufLen, SMCreateXnodeAgentReq *pReq) {
1,104✔
1087
  SEncoder encoder = {0};
1,104✔
1088
  int32_t  code = 0;
1,104✔
1089
  int32_t  lino = 0;
1,104✔
1090
  int32_t  tlen = 0;
1,104✔
1091
  tEncoderInit(&encoder, buf, bufLen);
1,104✔
1092

1093
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,104✔
1094
  ENCODESQL();
3,312✔
1095
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
1,104✔
1096
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
1,104✔
1097
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
1,104✔
1098
  tEndEncode(&encoder);
1,104✔
1099

1100
_exit:
1,104✔
1101
  if (code) {
1,104✔
UNCOV
1102
    tlen = code;
×
1103
  } else {
1104
    tlen = encoder.pos;
1,104✔
1105
  }
1106
  tEncoderClear(&encoder);
1,104✔
1107
  return tlen;
1,104✔
1108
}
1109

1110
int32_t tDeserializeSMCreateXnodeAgentReq(void *buf, int32_t bufLen, SMCreateXnodeAgentReq *pReq) {
552✔
1111
  SDecoder decoder = {0};
552✔
1112
  int32_t  code = 0;
552✔
1113
  int32_t  lino = 0;
552✔
1114

1115
  tDecoderInit(&decoder, buf, bufLen);
552✔
1116

1117
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
552✔
1118
  DECODESQL();
1,656✔
1119
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
552✔
1120
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
552✔
1121
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
552✔
1122

1123
  tEndDecode(&decoder);
552✔
1124
_exit:
552✔
1125
  tDecoderClear(&decoder);
552✔
1126
  return code;
552✔
1127
}
1128

1129
void tFreeSMCreateXnodeAgentReq(SMCreateXnodeAgentReq *pReq) {
1,104✔
1130
  FREESQL();
1,104✔
1131
  xFreeCowStr(&pReq->name);
1,104✔
1132
  xFreeCowStr(&pReq->status);
1,104✔
1133
  xFreeTaskOptions(&pReq->options);
1,104✔
1134
}
1,104✔
1135

1136
int32_t tSerializeSMUpdateXnodeAgentReq(void *buf, int32_t bufLen, SMUpdateXnodeAgentReq *pReq) {
276✔
1137
  SEncoder encoder = {0};
276✔
1138
  int32_t  code = 0;
276✔
1139
  int32_t  lino = 0;
276✔
1140
  int32_t  tlen = 0;
276✔
1141
  tEncoderInit(&encoder, buf, bufLen);
276✔
1142

1143
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
276✔
1144
  ENCODESQL();
828✔
1145
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
552✔
1146
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
276✔
1147
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
276✔
1148
  tEndEncode(&encoder);
276✔
1149

1150
_exit:
276✔
1151
  if (code) {
276✔
UNCOV
1152
    tlen = code;
×
1153
  } else {
1154
    tlen = encoder.pos;
276✔
1155
  }
1156
  tEncoderClear(&encoder);
276✔
1157
  return tlen;
276✔
1158
}
1159
int32_t tDeserializeSMUpdateXnodeAgentReq(void *buf, int32_t bufLen, SMUpdateXnodeAgentReq *pReq) {
138✔
1160
  SDecoder decoder = {0};
138✔
1161
  int32_t  code = 0;
138✔
1162
  int32_t  lino = 0;
138✔
1163

1164
  tDecoderInit(&decoder, buf, bufLen);
138✔
1165

1166
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
138✔
1167
  DECODESQL();
414✔
1168
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
276✔
1169
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
138✔
1170
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
138✔
1171

1172
  tEndDecode(&decoder);
138✔
1173
_exit:
138✔
1174
  tDecoderClear(&decoder);
138✔
1175
  return code;
138✔
1176
}
1177
void tFreeSMUpdateXnodeAgentReq(SMUpdateXnodeAgentReq *pReq) {
276✔
1178
  FREESQL();
276✔
1179
  xFreeCowStr(&pReq->name);
276✔
1180
  xFreeTaskOptions(&pReq->options);
276✔
1181
}
276✔
1182

1183
int32_t tSerializeSMDropXnodeAgentReq(void *buf, int32_t bufLen, SMDropXnodeAgentReq *pReq) {
2,346✔
1184
  return tSerializeSMDropXnodeTaskReq(buf, bufLen, (SMDropXnodeTaskReq *)pReq);
2,346✔
1185
}
1186
int32_t tDeserializeSMDropXnodeAgentReq(void *buf, int32_t bufLen, SMDropXnodeAgentReq *pReq) {
1,173✔
1187
  return tDeserializeSMDropXnodeTaskReq(buf, bufLen, (SMDropXnodeTaskReq *)pReq);
1,173✔
1188
}
1189
void tFreeSMDropXnodeAgentReq(SMDropXnodeAgentReq *pReq) { tFreeSMDropXnodeTaskReq((SMDropXnodeTaskReq *)pReq); }
2,346✔
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