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

taosdata / TDengine / #4951

06 Feb 2026 07:29AM UTC coverage: 66.887% (+0.04%) from 66.849%
#4951

push

travis-ci

web-flow
merge: from main to 3.0 #34521

765 of 1081 new or added lines in 28 files covered. (70.77%)

6419 existing lines in 131 files now uncovered.

205810 of 307696 relevant lines covered (66.89%)

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

78
char *xCowStrToStr(CowStr *cow) { return taosStrndupi(cow->ptr, (int64_t)cow->len); }
×
79
void xFreeCowStr(CowStr *cow) {
2,246,820✔
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,246,820✔
82
    return;
×
83
  }
84
  if (cow->shouldFree && cow->ptr != NULL) {
2,246,820✔
85
    taosMemoryFreeClear(cow->ptr);
209,756✔
86
    cow->ptr = NULL;
209,756✔
87
  }
88
  cow->len = 0;
2,246,820✔
89
  cow->ptr = NULL;
2,246,820✔
90
  cow->shouldFree = false;
2,246,820✔
91
}
92
int32_t xEncodeCowStr(SEncoder *encoder, CowStr *cow) {
376,564✔
93
  if (cow->ptr == NULL) {
376,564✔
94
    return tEncodeU32v(encoder, 0);
115,968✔
95
  }
96
  return tEncodeBinary(encoder, (uint8_t*)cow->ptr, cow->len + 1);
521,192✔
97
}
98
int32_t xDecodeCowStr(SDecoder *decoder, CowStr *cow, bool shouldClone) {
188,282✔
99
  if (decoder == NULL || cow == NULL) {
188,282✔
100
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
101
  }
102
  int32_t code = 0;
188,282✔
103
  int32_t  lino = 0;
188,282✔
104

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

151
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8,876✔
152
  ENCODESQL();
26,628✔
153

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

169
  tEndEncode(&encoder);
8,876✔
170

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

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

186
  tDecoderInit(&decoder, buf, bufLen);
4,438✔
187

188
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,438✔
189
  DECODESQL();
13,314✔
190

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

206
  tEndDecode(&decoder);
4,438✔
207

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

213
void tFreeSMCreateXnodeReq(SMCreateXnodeReq *pReq) {
8,876✔
214
  taosMemoryFreeClear(pReq->url);
8,876✔
215
  taosMemoryFreeClear(pReq->user);
8,876✔
216
  taosMemoryFreeClear(pReq->pass);
8,876✔
217
  xFreeCowStr(&pReq->token);
8,876✔
218
  FREESQL();
8,876✔
219
}
8,876✔
220
void xFreeTaskSource(xTaskSource *source) {
49,200✔
221
  if (source == NULL) {
49,200✔
UNCOV
222
    return;
×
223
  }
224
  xFreeCowStr(&source->cstr);
49,200✔
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) {
14,760✔
240
  xTaskSource taskSource = {0};
14,760✔
241
  if (source == NULL) {
14,760✔
UNCOV
242
    return taskSource;
×
243
  }
244
  taskSource.type = source->type;
14,760✔
245
  taskSource.cstr = xCloneRefCowStr(&source->cstr);
14,760✔
246
  return taskSource;
14,760✔
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) {
34,440✔
263
  int32_t code = 0;
34,440✔
264
  int32_t  lino = 0;
34,440✔
265
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
68,880✔
266
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
34,440✔
267
_exit:
34,440✔
268
  return code;
34,440✔
269
}
270
int32_t xDeserializeTaskSource(SDecoder *decoder, xTaskSource *source) {
17,220✔
271
  if (decoder == NULL || source == NULL) {
17,220✔
UNCOV
272
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
273
  }
274
  int32_t code = 0;
17,220✔
275
  int32_t lino = 0;
17,220✔
276
  int32_t type = 0;
17,220✔
277
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
17,220✔
278
  source->type = type;
17,220✔
279
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &source->cstr, true));
17,220✔
280
_exit:
17,220✔
281
  return code;
17,220✔
282
}
283

284
void xFreeTaskSink(xTaskSink *sink) {
50,020✔
285
  if (sink == NULL) {
50,020✔
UNCOV
286
    return;
×
287
  }
288
  xFreeCowStr(&sink->cstr);
50,020✔
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) {
15,580✔
303
  xTaskSink taskSink = {0};
15,580✔
304
  if (sink == NULL) {
15,580✔
UNCOV
305
    return taskSink;
×
306
  }
307
  taskSink.type = sink->type;
15,580✔
308
  taskSink.cstr = xCloneRefCowStr(&sink->cstr);
15,580✔
309
  return taskSink;
15,580✔
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) {
34,440✔
324
  int32_t code = 0;
34,440✔
325
  int32_t lino = 0;
34,440✔
326
  TAOS_CHECK_EXIT(tEncodeI32(encoder, sink->type));
68,880✔
327
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &sink->cstr));
34,440✔
328
_exit:
34,440✔
329
  return code;
34,440✔
330
}
331
int32_t xDeserializeTaskSink(SDecoder *decoder, xTaskSink *sink) {
17,220✔
332
  if (decoder == NULL || sink == NULL) {
17,220✔
UNCOV
333
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
334
  }
335
  int32_t code = 0;
17,220✔
336
  int32_t lino = 0;
17,220✔
337
  int32_t type = 0;
17,220✔
338
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
17,220✔
339
  sink->type = type;
17,220✔
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));
17,220✔
349
_exit:
17,220✔
350
  return code;
17,220✔
351
}
352

353
void xFreeTaskOptions(xTaskOptions *options) {
29,520✔
354
  if (options == NULL) {
29,520✔
UNCOV
355
    return;
×
356
  }
357
  xFreeCowStr(&options->trigger);
29,520✔
358
  xFreeCowStr(&options->parser);
29,520✔
359
  xFreeCowStr(&options->health);
29,520✔
360
  // xFreeCowStr(&options->reason);
361
  for (int i = 0; i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
1,918,800✔
362
    xFreeCowStr(&options->options[i]);
1,889,280✔
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) {
29,520✔
381
  int32_t code = 0;
29,520✔
382
  int32_t lino = 0;
29,520✔
383
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->via));
59,040✔
384
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->parser));
29,520✔
385
  // TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->reason));
386
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->trigger));
29,520✔
387
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->health));
29,520✔
388
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->optionsNum));
59,040✔
389
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
84,296✔
390
    TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->options[i]));
54,776✔
391
  }
392
_exit:
29,520✔
393
  return code;
29,520✔
394
}
395
int32_t xDeserializeTaskOptions(SDecoder *decoder, xTaskOptions *options) {
14,760✔
396
  if (decoder == NULL || options == NULL) {
14,760✔
UNCOV
397
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
398
  }
399
  int32_t code = 0;
14,760✔
400
  int32_t  lino = 0;
14,760✔
401

402
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->via));
29,520✔
403
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->parser, true));
14,760✔
404
  // TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->reason, true));
405
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->trigger, true));
14,760✔
406
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->health, true));
14,760✔
407
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->optionsNum));
29,520✔
408
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
42,148✔
409
    TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->options[i], true));
27,388✔
410
  }
411
_exit:
14,760✔
412
  return code;
14,760✔
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) {
27,880✔
434
  SEncoder encoder = {0};
27,880✔
435
  int32_t  code = 0;
27,880✔
436
  int32_t  lino = 0;
27,880✔
437
  int32_t  tlen = 0;
27,880✔
438
  tEncoderInit(&encoder, buf, bufLen);
27,880✔
439

440
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
27,880✔
441
  ENCODESQL();
83,640✔
442
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
55,760✔
443
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
27,880✔
444
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
27,880✔
445
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
27,880✔
446
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
27,880✔
447
  tEndEncode(&encoder);
27,880✔
448

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

463
  tDecoderInit(&decoder, buf, bufLen);
13,940✔
464

465
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
13,940✔
466
  DECODESQL();
41,820✔
467
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
27,880✔
468
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
13,940✔
469
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
13,940✔
470
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
13,940✔
471
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
13,940✔
472
  tEndDecode(&decoder);
13,940✔
473

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

493
  tEncoderInit(&encoder, buf, bufLen);
29,028✔
494

495
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
29,028✔
496
  ENCODESQL();
87,084✔
497
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
58,056✔
498
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->force));
29,028✔
499
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
29,028✔
500
  tEndEncode(&encoder);
29,028✔
501

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

518
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
14,514✔
519
  DECODESQL();
43,542✔
520
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
29,028✔
521
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->force));
14,514✔
522
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
14,514✔
523
  tEndDecode(&decoder);
14,514✔
524

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

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

540
  tEncoderInit(&encoder, buf, bufLen);
3,280✔
541

542
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,280✔
543
  ENCODESQL();
9,840✔
544
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
6,560✔
545
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
3,280✔
546
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
6,560✔
547
  tEndEncode(&encoder);
3,280✔
548

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

564
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,640✔
565
  DECODESQL();
4,920✔
566
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
3,280✔
567
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
1,640✔
568
  tEndDecode(&decoder);
1,640✔
569

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

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

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

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

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

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

624
  tDecoderInit(&decoder, buf, bufLen);
3,280✔
625

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

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

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

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

666
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
17,092✔
667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
34,184✔
668
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->force));
34,184✔
669
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
34,184✔
670
  if (pReq->urlLen > 0) {
17,092✔
671
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
18,824✔
672
  }
673
  ENCODESQL();
51,276✔
674
  tEndEncode(&encoder);
17,092✔
675

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

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

691
  tDecoderInit(&decoder, buf, bufLen);
8,546✔
692

693
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8,546✔
694
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
17,092✔
695
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->force));
17,092✔
696
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
17,092✔
697
  if (pReq->urlLen > 0) {
8,546✔
698
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
9,412✔
699
  }
700
  DECODESQL();
25,638✔
701
  tEndDecode(&decoder);
8,546✔
702

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

708
void tFreeSMDropXnodeReq(SMDropXnodeReq *pReq) {
17,092✔
709
  FREESQL();
17,092✔
710
  if (pReq->urlLen > 0 && pReq->url != NULL) {
17,092✔
711
    taosMemoryFree(pReq->url);
9,412✔
712
  }
713
}
17,092✔
714

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

722
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,400✔
723
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
8,800✔
724
  ENCODESQL();
13,200✔
725
  tEndEncode(&encoder);
4,400✔
726

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

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

742
  tDecoderInit(&decoder, buf, bufLen);
2,200✔
743

744
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,200✔
745
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
4,400✔
746
  DECODESQL();
6,600✔
747
  tEndDecode(&decoder);
2,200✔
748

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

754
void tFreeSMDrainXnodeReq(SMDrainXnodeReq *pReq) { FREESQL(); }
4,400✔
755

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

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

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

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

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

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

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

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

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

825
  tEncoderInit(&encoder, buf, bufLen);
5,740✔
826

827
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,740✔
828
  // 0. sql
829
  ENCODESQL();
17,220✔
830

831
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
11,480✔
832
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
11,480✔
833
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
11,480✔
834
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
5,740✔
835
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->config));
5,740✔
836
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->reason));
5,740✔
837
  tEndEncode(&encoder);
5,740✔
838

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

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

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

857
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,870✔
858
  DECODESQL();
8,610✔
859
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
5,740✔
860
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
5,740✔
861
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
5,740✔
862
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
2,870✔
863
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->config, true));
2,870✔
864
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
2,870✔
865
  tEndDecode(&decoder);
2,870✔
866

867
_exit:
2,870✔
868
  tDecoderClear(&decoder);
2,870✔
869
  return code;
2,870✔
870
}
871
void tFreeSMCreateXnodeJobReq(SMCreateXnodeJobReq *pReq) {
5,740✔
872
  FREESQL();
5,740✔
873
  xFreeCowStr(&pReq->config);
5,740✔
874
  xFreeCowStr(&pReq->reason);
5,740✔
875
  xFreeCowStr(&pReq->status);
5,740✔
876
}
5,740✔
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) {
3,280✔
956
  SEncoder encoder = {0};
3,280✔
957
  int32_t  code = 0;
3,280✔
958
  int32_t  lino = 0;
3,280✔
959
  int32_t  tlen = 0;
3,280✔
960

961
  tEncoderInit(&encoder, buf, bufLen);
3,280✔
962

963
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,280✔
964
  ENCODESQL();
9,840✔
965
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
6,560✔
966
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
6,560✔
967

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

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

985
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,640✔
986
  DECODESQL();
4,920✔
987
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
3,280✔
988
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
3,280✔
989

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

996
void tFreeSMRebalanceXnodeJobReq(SMRebalanceXnodeJobReq *pReq) { FREESQL(); }
3,280✔
997

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

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

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

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

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

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

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

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

1047
  tEncoderInit(&encoder, buf, bufLen);
30,340✔
1048

1049
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30,340✔
1050
  ENCODESQL();
91,020✔
1051
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
60,680✔
1052
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->ast));
30,340✔
1053

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

1069
  tDecoderInit(&decoder, buf, bufLen);
15,170✔
1070

1071
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
15,170✔
1072
  DECODESQL();
45,510✔
1073
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
30,340✔
1074
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
15,170✔
1075

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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