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

taosdata / TDengine / #4950

06 Feb 2026 07:29AM UTC coverage: 66.849% (-0.1%) from 66.973%
#4950

push

travis-ci

web-flow
merge: from main to 3.0 #34521

759 of 1081 new or added lines in 28 files covered. (70.21%)

1144 existing lines in 130 files now uncovered.

205692 of 307696 relevant lines covered (66.85%)

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

78
char *xCowStrToStr(CowStr *cow) { return taosStrndupi(cow->ptr, (int64_t)cow->len); }
×
79
void xFreeCowStr(CowStr *cow) {
2,560,665✔
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,560,665✔
82
    return;
×
83
  }
84
  if (cow->shouldFree && cow->ptr != NULL) {
2,560,665✔
85
    taosMemoryFreeClear(cow->ptr);
238,863✔
86
    cow->ptr = NULL;
238,863✔
87
  }
88
  cow->len = 0;
2,560,665✔
89
  cow->ptr = NULL;
2,560,665✔
90
  cow->shouldFree = false;
2,560,665✔
91
}
92
int32_t xEncodeCowStr(SEncoder *encoder, CowStr *cow) {
430,148✔
93
  if (cow->ptr == NULL) {
430,148✔
94
    return tEncodeU32v(encoder, 0);
131,416✔
95
  }
96
  return tEncodeBinary(encoder, (uint8_t*)cow->ptr, cow->len + 1);
597,464✔
97
}
98
int32_t xDecodeCowStr(SDecoder *decoder, CowStr *cow, bool shouldClone) {
212,825✔
99
  if (decoder == NULL || cow == NULL) {
212,825✔
100
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
101
  }
102
  int32_t code = 0;
212,825✔
103
  int32_t  lino = 0;
212,825✔
104

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

151
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8,652✔
152
  ENCODESQL();
25,956✔
153

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

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

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

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

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

188
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,319✔
189
  DECODESQL();
12,957✔
190

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

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

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

213
void tFreeSMCreateXnodeReq(SMCreateXnodeReq *pReq) {
8,645✔
214
  taosMemoryFreeClear(pReq->url);
8,645✔
215
  taosMemoryFreeClear(pReq->user);
8,645✔
216
  taosMemoryFreeClear(pReq->pass);
8,645✔
217
  xFreeCowStr(&pReq->token);
8,645✔
218
  FREESQL();
8,645✔
219
}
8,645✔
220
void xFreeTaskSource(xTaskSource *source) {
56,190✔
221
  if (source == NULL) {
56,190✔
222
    return;
×
223
  }
224
  xFreeCowStr(&source->cstr);
56,190✔
225
}
226
xTaskSource xCreateClonedTaskSource(ENodeXTaskSourceType sourceType, int32_t len, char *source) {
×
227
  // printf("clone task source from %p\n", source);
228
  xTaskSource taskSource = {0};
×
229
  taskSource.type = sourceType;
×
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};
×
235
  taskSource.type = sourceType;
×
236
  taskSource.cstr = xCreateCowStr(len, ptr, false);
×
237
   return taskSource;
×
238
}
239
xTaskSource xCloneTaskSourceRef(xTaskSource *source) {
16,920✔
240
  xTaskSource taskSource = {0};
16,920✔
241
  if (source == NULL) {
16,920✔
242
    return taskSource;
×
243
  }
244
  taskSource.type = source->type;
16,920✔
245
  taskSource.cstr = xCloneRefCowStr(&source->cstr);
16,920✔
246
  return taskSource;
16,920✔
247
}
248

249
const char *xGetTaskSourceTypeAsStr(xTaskSource *source) {
×
250
  switch (source->type) {
×
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) {
39,480✔
263
  int32_t code = 0;
39,480✔
264
  int32_t  lino = 0;
39,480✔
265
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
78,960✔
266
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
39,480✔
267
_exit:
39,480✔
268
  return code;
39,480✔
269
}
270
int32_t xDeserializeTaskSource(SDecoder *decoder, xTaskSource *source) {
19,530✔
271
  if (decoder == NULL || source == NULL) {
19,530✔
272
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
273
  }
274
  int32_t code = 0;
19,530✔
275
  int32_t lino = 0;
19,530✔
276
  int32_t type = 0;
19,530✔
277
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
19,530✔
278
  source->type = type;
19,530✔
279
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &source->cstr, true));
19,530✔
280
_exit:
19,530✔
281
  return code;
19,530✔
282
}
283

284
void xFreeTaskSink(xTaskSink *sink) {
57,130✔
285
  if (sink == NULL) {
57,130✔
286
    return;
×
287
  }
288
  xFreeCowStr(&sink->cstr);
57,130✔
289
}
290
xTaskSink xCreateClonedTaskSink(ENodeXTaskSinkType sinkType, int32_t len, char *sink) {
×
291
  xTaskSink taskSink = {0};
×
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};
×
298
  taskSink.type = sinkType;
×
299
  taskSink.cstr = xCreateCowStr(len, ptr, false);
×
300
  return taskSink;
×
301
}
302
xTaskSink   xCloneTaskSinkRef(xTaskSink* sink) {
17,860✔
303
  xTaskSink taskSink = {0};
17,860✔
304
  if (sink == NULL) {
17,860✔
305
    return taskSink;
×
306
  }
307
  taskSink.type = sink->type;
17,860✔
308
  taskSink.cstr = xCloneRefCowStr(&sink->cstr);
17,860✔
309
  return taskSink;
17,860✔
310
}
311
const char *xGetTaskSinkTypeAsStr(xTaskSink *sink) {
×
312
  switch (sink->type) {
×
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) {
39,480✔
324
  int32_t code = 0;
39,480✔
325
  int32_t lino = 0;
39,480✔
326
  TAOS_CHECK_EXIT(tEncodeI32(encoder, sink->type));
78,960✔
327
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &sink->cstr));
39,480✔
328
_exit:
39,480✔
329
  return code;
39,480✔
330
}
331
int32_t xDeserializeTaskSink(SDecoder *decoder, xTaskSink *sink) {
19,530✔
332
  if (decoder == NULL || sink == NULL) {
19,530✔
333
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
334
  }
335
  int32_t code = 0;
19,530✔
336
  int32_t lino = 0;
19,530✔
337
  int32_t type = 0;
19,530✔
338
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
19,530✔
339
  sink->type = type;
19,530✔
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));
19,530✔
349
_exit:
19,530✔
350
  return code;
19,530✔
351
}
352

353
void xFreeTaskOptions(xTaskOptions *options) {
33,660✔
354
  if (options == NULL) {
33,660✔
355
    return;
×
356
  }
357
  xFreeCowStr(&options->trigger);
33,660✔
358
  xFreeCowStr(&options->parser);
33,660✔
359
  xFreeCowStr(&options->health);
33,660✔
360
  // xFreeCowStr(&options->reason);
361
  for (int i = 0; i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
2,187,900✔
362
    xFreeCowStr(&options->options[i]);
2,154,240✔
363
  }
364
}
365
void printXnodeTaskOptions(xTaskOptions *options) {
×
366
  printf("Xnode Task Options:\n");
×
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
  }
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) {
33,840✔
381
  int32_t code = 0;
33,840✔
382
  int32_t lino = 0;
33,840✔
383
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->via));
67,680✔
384
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->parser));
33,840✔
385
  // TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->reason));
386
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->trigger));
33,840✔
387
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->health));
33,840✔
388
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->optionsNum));
67,680✔
389
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
96,632✔
390
    TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->options[i]));
62,792✔
391
  }
392
_exit:
33,840✔
393
  return code;
33,840✔
394
}
395
int32_t xDeserializeTaskOptions(SDecoder *decoder, xTaskOptions *options) {
16,740✔
396
  if (decoder == NULL || options == NULL) {
16,740✔
397
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
398
  }
399
  int32_t code = 0;
16,740✔
400
  int32_t  lino = 0;
16,740✔
401

402
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->via));
33,480✔
403
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->parser, true));
16,740✔
404
  // TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->reason, true));
405
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->trigger, true));
16,740✔
406
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->health, true));
16,740✔
407
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->optionsNum));
33,480✔
408
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
47,802✔
409
    TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->options[i], true));
31,062✔
410
  }
411
_exit:
16,740✔
412
  return code;
16,740✔
413
}
414
int32_t tSerializeXnodeTaskSource(SEncoder *encoder, xTaskSource *source) {
×
415
  int32_t code = 0;
×
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) {
×
425
  int32_t code = 0;
×
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));
×
430
_exit:
×
431
  return code;
×
432
}
433
int32_t tSerializeSMCreateXnodeTaskReq(void *buf, int32_t bufLen, SMCreateXnodeTaskReq *pReq) {
31,960✔
434
  SEncoder encoder = {0};
31,960✔
435
  int32_t  code = 0;
31,960✔
436
  int32_t  lino = 0;
31,960✔
437
  int32_t  tlen = 0;
31,960✔
438
  tEncoderInit(&encoder, buf, bufLen);
31,960✔
439

440
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
31,960✔
441
  ENCODESQL();
95,880✔
442
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
63,920✔
443
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
31,960✔
444
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
31,960✔
445
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
31,960✔
446
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
31,960✔
447
  tEndEncode(&encoder);
31,960✔
448

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

463
  tDecoderInit(&decoder, buf, bufLen);
15,810✔
464

465
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
15,810✔
466
  DECODESQL();
47,430✔
467
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
31,620✔
468
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
15,810✔
469
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
15,810✔
470
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
15,810✔
471
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
15,810✔
472
  tEndDecode(&decoder);
15,810✔
473

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

493
  tEncoderInit(&encoder, buf, bufLen);
33,276✔
494

495
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
33,276✔
496
  ENCODESQL();
99,828✔
497
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
66,552✔
498
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->force));
33,276✔
499
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
33,276✔
500
  tEndEncode(&encoder);
33,276✔
501

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

518
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16,461✔
519
  DECODESQL();
49,383✔
520
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->id));
32,922✔
521
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->force));
16,461✔
522
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
16,461✔
523
  tEndDecode(&decoder);
16,461✔
524

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

666
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
17,744✔
667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
35,488✔
668
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->force));
35,488✔
669
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
35,488✔
670
  if (pReq->urlLen > 0) {
17,744✔
671
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
18,968✔
672
  }
673
  ENCODESQL();
53,232✔
674
  tEndEncode(&encoder);
17,744✔
675

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

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

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

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

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

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

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

722
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,500✔
723
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
9,000✔
724
  ENCODESQL();
13,500✔
725
  tEndEncode(&encoder);
4,500✔
726

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

825
  tEncoderInit(&encoder, buf, bufLen);
6,580✔
826

827
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,580✔
828
  // 0. sql
829
  ENCODESQL();
19,740✔
830

831
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
13,160✔
832
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
13,160✔
833
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
13,160✔
834
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
6,580✔
835
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->config));
6,580✔
836
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->reason));
6,580✔
837
  tEndEncode(&encoder);
6,580✔
838

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

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

855
  tDecoderInit(&decoder, buf, bufLen);
3,255✔
856

857
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,255✔
858
  DECODESQL();
9,765✔
859
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
6,510✔
860
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
6,510✔
861
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
6,510✔
862
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
3,255✔
863
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->config, true));
3,255✔
864
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
3,255✔
865
  tEndDecode(&decoder);
3,255✔
866

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

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

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

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

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

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

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

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

925
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
926
  DECODESQL();
×
927
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
×
928
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
×
929
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
930
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
×
931
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->configLen));
×
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:
×
938
  tDecoderClear(&decoder);
×
939
  return code;
×
940
}
941

942
void tFreeSMUpdateXnodeJobReq(SMUpdateXnodeJobReq *pReq) {
×
943
  FREESQL();
×
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
  }
952
  xFreeCowStr(&pReq->status);
×
953
}
×
954

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

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

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

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

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

985
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,860✔
986
  DECODESQL();
5,580✔
987
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
3,720✔
988
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
3,720✔
989

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

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

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

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

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

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

1026
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,395✔
1027
  DECODESQL();
4,185✔
1028
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
1,395✔
1029

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

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

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

1047
  tEncoderInit(&encoder, buf, bufLen);
34,780✔
1048

1049
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
34,780✔
1050
  ENCODESQL();
104,340✔
1051
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
69,560✔
1052
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->ast));
34,780✔
1053

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

1069
  tDecoderInit(&decoder, buf, bufLen);
17,205✔
1070

1071
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
17,205✔
1072
  DECODESQL();
51,615✔
1073
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
34,410✔
1074
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
17,205✔
1075

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

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

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

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

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

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

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

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

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

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

1143
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
376✔
1144
  ENCODESQL();
1,128✔
1145
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->id));
752✔
1146
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
376✔
1147
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
376✔
1148
  tEndEncode(&encoder);
376✔
1149

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

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

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

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

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