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

taosdata / TDengine / #4912

04 Jan 2026 09:05AM UTC coverage: 64.888% (-0.1%) from 65.028%
#4912

push

travis-ci

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

1206 of 4524 new or added lines in 22 files covered. (26.66%)

5351 existing lines in 123 files now uncovered.

194856 of 300296 relevant lines covered (64.89%)

118198896.2 hits per line

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

16.44
/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

NEW
27
CowStr xCreateCowStr(int32_t len, const char *ptr, bool shouldClone) {
×
28
  CowStr cow;
NEW
29
  if (shouldClone) {
×
NEW
30
    cow.len = len;
×
NEW
31
    cow.ptr = taosStrndupi(ptr, (int64_t)len);
×
NEW
32
    cow.shouldFree = true;
×
33
  } else {
NEW
34
    cow.len = len;
×
NEW
35
    cow.ptr = ptr;
×
NEW
36
    cow.shouldFree = false;
×
37
  }
NEW
38
  return cow;
×
39
}
NEW
40
void xSetCowStr(CowStr *cow, int32_t len, const char *ptr, bool shouldFree) {
×
NEW
41
  if (cow == NULL) {
×
42
    // printf("Set CowStr with NULL pointer\n");
NEW
43
    return;
×
44
  }
NEW
45
  cow->len = len;
×
NEW
46
  cow->ptr = taosStrndupi(ptr, (int64_t)len);
×
NEW
47
  cow->shouldFree = shouldFree;
×
48
}
NEW
49
CowStr xCloneRefCowStr(CowStr *cow) {
×
NEW
50
  CowStr ref = {0};
×
NEW
51
  if (cow == NULL) {
×
NEW
52
    return ref;
×
53
  }
NEW
54
  ref.len = cow->len;
×
NEW
55
  ref.ptr = cow->ptr;
×
NEW
56
  ref.shouldFree = false;
×
NEW
57
  return ref;
×
58
}
59

NEW
60
char *xCowStrToStr(CowStr *cow) { return taosStrndupi(cow->ptr, (int64_t)cow->len); }
×
NEW
61
void xFreeCowStr(CowStr *cow) {
×
62
  // printf("Free CowStr: cow=%p, ptr=%p, len=%d, shouldFree=%d\n", cow, cow->ptr, cow->len, cow->shouldFree);
NEW
63
  if (cow == NULL) {
×
NEW
64
    return;
×
65
  }
NEW
66
  if (cow->shouldFree && cow->ptr != NULL && cow->len > 0) {
×
NEW
67
    taosMemoryFreeClear(cow->ptr);
×
NEW
68
    cow->ptr = NULL;
×
69
  }
NEW
70
  cow->len = 0;
×
NEW
71
  cow->ptr = NULL;
×
NEW
72
  cow->shouldFree = false;
×
73
}
NEW
74
int32_t xEncodeCowStr(SEncoder *encoder, CowStr *cow) { return tEncodeCStrWithLen(encoder, cow->ptr, cow->len); }
×
NEW
75
int32_t xDecodeCowStr(SDecoder *decoder, CowStr *cow, bool shouldClone) {
×
NEW
76
  if (decoder == NULL || cow == NULL) {
×
NEW
77
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
78
  }
NEW
79
  int32_t code = 0;
×
80
  int32_t lino;
81

NEW
82
  if (shouldClone) {
×
NEW
83
    uint64_t len = 0;
×
NEW
84
    TAOS_CHECK_EXIT(tDecodeCStrAndLenAlloc(decoder, (char **)&cow->ptr, (uint64_t *)&len));
×
NEW
85
    cow->len = (int32_t)len;
×
NEW
86
    cow->shouldFree = true;
×
87
  } else {
NEW
88
    TAOS_CHECK_EXIT(tDecodeCStrAndLen(decoder, (char **)&cow->ptr, (uint32_t *)&cow->len));
×
NEW
89
    cow->shouldFree = false;
×
90
  }
NEW
91
_exit:
×
NEW
92
  return code;
×
93
}
94
// #define DECODESQL()                                                               \
95
//   do {                                                                            \
96
//     if (!tDecodeIsEnd(&decoder)) {                                                \
97
//       TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));                       \
98
//       if (pReq->sqlLen > 0) {                                                     \
99
//         TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->sql, NULL)); \
100
//       }                                                                           \
101
//     }                                                                             \
102
//   } while (0)
103

104
// #define ENCODESQL()                                                                       \
105
//   do {                                                                                    \
106
//     TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));                                  \
107
//     if (pReq->sqlLen > 0) {                                                               \
108
//       TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->sql, pReq->sqlLen)); \
109
//     }                                                                                     \
110
//   } while (0)
111

112
// #define FREESQL()                \
113
//   do {                           \
114
//     if (pReq->sql != NULL) {     \
115
//       taosMemoryFree(pReq->sql); \
116
//     }                            \
117
//     pReq->sql = NULL;            \
118
//   } while (0)
119

120
int32_t tSerializeSMCreateXnodeReq(void *buf, int32_t bufLen, SMCreateXnodeReq *pReq) {
536✔
121
  SEncoder encoder = {0};
536✔
122
  int32_t  code = 0;
536✔
123
  int32_t  lino;
124
  int32_t  tlen;
125
  tEncoderInit(&encoder, buf, bufLen);
536✔
126

127
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
536✔
128
  ENCODESQL();
1,608✔
129

130
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
1,072✔
131
  if (pReq->urlLen > 0) {
536✔
132
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
1,072✔
133
  }
134
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->userLen));
1,072✔
135
  if (pReq->userLen > 0) {
536✔
136
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->user, pReq->userLen));
1,072✔
137
  }
138
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->passLen));
1,072✔
139
  if (pReq->passLen > 0) {
536✔
140
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pass, pReq->passLen));
1,072✔
141
  }
142
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->passIsMd5));
1,072✔
143

144
  tEndEncode(&encoder);
536✔
145

146
_exit:
536✔
147
  if (code) {
536✔
NEW
148
    tlen = code;
×
149
  } else {
150
    tlen = encoder.pos;
536✔
151
  }
152
  tEncoderClear(&encoder);
536✔
153
  return tlen;
536✔
154
}
155

156
int32_t tDeserializeSMCreateXnodeReq(void *buf, int32_t bufLen, SMCreateXnodeReq *pReq) {
268✔
157
  SDecoder decoder = {0};
268✔
158
  int32_t  code = 0;
268✔
159
  int32_t  lino;
160

161
  tDecoderInit(&decoder, buf, bufLen);
268✔
162

163
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
268✔
164
  DECODESQL();
804✔
165

166
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
536✔
167
  if (pReq->urlLen > 0) {
268✔
168
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
536✔
169
  }
170
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->userLen));
536✔
171
  if (pReq->userLen > 0) {
268✔
172
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->user, NULL));
536✔
173
  }
174
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->passLen));
536✔
175
  if (pReq->passLen > 0) {
268✔
176
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->pass, NULL));
536✔
177
  }
178
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->passIsMd5));
536✔
179

180
  tEndDecode(&decoder);
268✔
181

182
_exit:
268✔
183
  tDecoderClear(&decoder);
268✔
184
  return code;
268✔
185
}
186

187
void tFreeSMCreateXnodeReq(SMCreateXnodeReq *pReq) {
536✔
188
  taosMemoryFreeClear(pReq->url);
536✔
189
  taosMemoryFreeClear(pReq->user);
536✔
190
  taosMemoryFreeClear(pReq->pass);
536✔
191
  FREESQL();
536✔
192
}
536✔
NEW
193
void xFreeTaskSource(xTaskSource *source) {
×
NEW
194
  if (source == NULL) {
×
NEW
195
    return;
×
196
  }
NEW
197
  xFreeCowStr(&source->cstr);
×
198
}
NEW
199
xTaskSource xCreateClonedTaskSource(ENodeXTaskSourceType sourceType, int32_t len, char *source) {
×
200
  // printf("clone task source from %p\n", source);
NEW
201
  xTaskSource taskSource = {0};
×
NEW
202
  taskSource.type = sourceType;
×
NEW
203
  taskSource.cstr = xCreateCowStr(len, source, true);
×
NEW
204
  return taskSource;
×
205
}
NEW
206
xTaskSource xCreateTaskSource(ENodeXTaskSourceType sourceType, int32_t len, char *ptr) {
×
NEW
207
   xTaskSource taskSource = {0};
×
NEW
208
  taskSource.type = sourceType;
×
NEW
209
  taskSource.cstr = xCreateCowStr(len, ptr, false);
×
NEW
210
   return taskSource;
×
211
}
NEW
212
xTaskSource xCloneTaskSourceRef(xTaskSource *source) {
×
NEW
213
  xTaskSource taskSource = {0};
×
NEW
214
  if (source == NULL) {
×
NEW
215
    return taskSource;
×
216
  }
NEW
217
  taskSource.type = source->type;
×
NEW
218
  taskSource.cstr = xCloneRefCowStr(&source->cstr);
×
NEW
219
  return taskSource;
×
220
}
221

NEW
222
const char *xGetTaskSourceTypeAsStr(xTaskSource *source) {
×
NEW
223
  switch (source->type) {
×
NEW
224
    case XNODE_TASK_SOURCE_DATABASE:
×
NEW
225
      return "database";
×
NEW
226
    case XNODE_TASK_SOURCE_TOPIC:
×
NEW
227
      return "topic";
×
NEW
228
    case XNODE_TASK_SOURCE_DSN:
×
NEW
229
      return "dsn";
×
NEW
230
    default:
×
NEW
231
      return "unknown";
×
232
  }
233
}
NEW
234
const char *xGetTaskSourceStr(xTaskSource *source) { return source->cstr.ptr; }
×
NEW
235
int32_t     xSerializeTaskSource(SEncoder *encoder, xTaskSource *source) {
×
NEW
236
  int32_t code = 0;
×
237
  int32_t lino;
NEW
238
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
×
NEW
239
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
×
NEW
240
_exit:
×
NEW
241
  return code;
×
242
}
NEW
243
int32_t xDeserializeTaskSource(SDecoder *decoder, xTaskSource *source) {
×
NEW
244
  if (decoder == NULL || source == NULL) {
×
NEW
245
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
246
  }
NEW
247
  int32_t code = 0;
×
248
  int32_t lino;
NEW
249
  int32_t type;
×
NEW
250
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
×
NEW
251
  source->type = type;
×
NEW
252
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &source->cstr, true));
×
NEW
253
_exit:
×
NEW
254
  return code;
×
255
}
256

NEW
257
void xFreeTaskSink(xTaskSink *sink) {
×
NEW
258
  if (sink == NULL) {
×
NEW
259
    return;
×
260
  }
NEW
261
  xFreeCowStr(&sink->cstr);
×
262
}
NEW
263
xTaskSink xCreateClonedTaskSink(ENodeXTaskSinkType sinkType, int32_t len, char *sink) {
×
NEW
264
  xTaskSink taskSink = {0};
×
NEW
265
  taskSink.type = sinkType;
×
NEW
266
  taskSink.cstr = xCreateCowStr(len, sink, false);
×
NEW
267
  return taskSink;
×
268
}
NEW
269
xTaskSink xCreateTaskSink(ENodeXTaskSinkType sinkType, int32_t len, char *ptr) {
×
NEW
270
  xTaskSink taskSink = {0};
×
NEW
271
  taskSink.type = sinkType;
×
NEW
272
  taskSink.cstr = xCreateCowStr(len, ptr, false);
×
NEW
273
  return taskSink;
×
274
}
NEW
275
xTaskSink   xCloneTaskSinkRef(xTaskSink* sink) {
×
NEW
276
  xTaskSink taskSink = {0};
×
NEW
277
  if (sink == NULL) {
×
NEW
278
    return taskSink;
×
279
  }
NEW
280
  taskSink.type = sink->type;
×
NEW
281
  taskSink.cstr = xCloneRefCowStr(&sink->cstr);
×
NEW
282
  return taskSink;
×
283
}
NEW
284
const char *xGetTaskSinkTypeAsStr(xTaskSink *sink) {
×
NEW
285
  switch (sink->type) {
×
NEW
286
    case XNODE_TASK_SINK_DATABASE:
×
NEW
287
      return "database";
×
NEW
288
    case XNODE_TASK_SINK_DSN:
×
NEW
289
      return "dsn";
×
NEW
290
    default:
×
NEW
291
      return "unknown";
×
292
  }
293
}
NEW
294
const char *xGetTaskSinkStr(xTaskSink *sink) { return sink->cstr.ptr; }
×
295

NEW
296
int32_t xSerializeTaskSink(SEncoder *encoder, xTaskSink *sink) {
×
NEW
297
  int32_t code = 0;
×
298
  int32_t lino;
NEW
299
  TAOS_CHECK_EXIT(tEncodeI32(encoder, sink->type));
×
NEW
300
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &sink->cstr));
×
NEW
301
_exit:
×
NEW
302
  return code;
×
303
}
NEW
304
int32_t xDeserializeTaskSink(SDecoder *decoder, xTaskSink *sink) {
×
NEW
305
  if (decoder == NULL || sink == NULL) {
×
NEW
306
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
307
  }
NEW
308
  int32_t code = 0;
×
309
  int32_t lino;
NEW
310
  int32_t type;
×
NEW
311
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &type));
×
NEW
312
  sink->type = type;
×
313
  // switch (type) {
314
  //   case XNODE_TASK_SINK_DSN:
315
  //   case XNODE_TASK_SINK_DATABASE:
316
  //     sink->type = type;
317
  //     break;
318
  //   default:
319
  //     TAOS_RETURN(TSDB_CODE_MND_XNODE_INVALID_MSG);
320
  // }
NEW
321
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &sink->cstr, true));
×
NEW
322
_exit:
×
NEW
323
  return code;
×
324
}
325

NEW
326
void xFreeTaskOptions(xTaskOptions *options) {
×
NEW
327
  if (options == NULL) {
×
NEW
328
    return;
×
329
  }
NEW
330
  xFreeCowStr(&options->trigger);
×
NEW
331
  xFreeCowStr(&options->parser);
×
NEW
332
  xFreeCowStr(&options->health);
×
333
  // xFreeCowStr(&options->reason);
NEW
334
  for (int i = 0; i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
×
NEW
335
    xFreeCowStr(&options->options[i]);
×
336
  }
337
}
NEW
338
void printXnodeTaskOptions(xTaskOptions *options) {
×
NEW
339
  printf("Xnode Task Options:\n");
×
NEW
340
  printf("  trigger: %s\n", options->trigger.ptr);
×
NEW
341
  printf("  parser: %s\n", options->parser.ptr);
×
NEW
342
  printf("  health: %s\n", options->health.ptr);
×
343
  // printf("  reason: %s\n", options->reason.ptr);
NEW
344
  if (options->via > 0) {
×
NEW
345
    printf("  via: %d\n", options->via);
×
346
  } else {
NEW
347
    printf("  via: nil\n");
×
348
  }
NEW
349
  for (int i = 0; i < options->optionsNum; ++i) {
×
NEW
350
    printf("  option[%d]: %s\n", i, options->options[i].ptr);
×
351
  }
NEW
352
}
×
NEW
353
int32_t xSerializeTaskOptions(SEncoder *encoder, xTaskOptions *options) {
×
NEW
354
  int32_t code = 0;
×
355
  int32_t lino;
NEW
356
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->via));
×
NEW
357
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->parser));
×
358
  // TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->reason));
NEW
359
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->trigger));
×
NEW
360
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->health));
×
NEW
361
  TAOS_CHECK_EXIT(tEncodeI32(encoder, options->optionsNum));
×
NEW
362
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
×
NEW
363
    TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &options->options[i]));
×
364
  }
NEW
365
_exit:
×
NEW
366
  return code;
×
367
}
NEW
368
int32_t xDeserializeTaskOptions(SDecoder *decoder, xTaskOptions *options) {
×
NEW
369
  if (decoder == NULL || options == NULL) {
×
NEW
370
    return TSDB_CODE_MND_XNODE_INVALID_MSG;
×
371
  }
NEW
372
  int32_t code = 0;
×
373
  int32_t lino;
374

NEW
375
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->via));
×
NEW
376
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->parser, true));
×
377
  // TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->reason, true));
NEW
378
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->trigger, true));
×
NEW
379
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->health, true));
×
NEW
380
  TAOS_CHECK_EXIT(tDecodeI32(decoder, &options->optionsNum));
×
NEW
381
  for (int i = 0; i < options->optionsNum && i < TSDB_XNODE_TASK_OPTIONS_MAX_NUM; i++) {
×
NEW
382
    TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &options->options[i], true));
×
383
  }
NEW
384
_exit:
×
NEW
385
  return code;
×
386
}
NEW
387
int32_t tSerializeXnodeTaskSource(SEncoder *encoder, xTaskSource *source) {
×
NEW
388
  int32_t code = 0;
×
389
  int32_t lino;
390
  int32_t tlen;
NEW
391
  TAOS_CHECK_EXIT(tEncodeI32(encoder, source->type));
×
NEW
392
  TAOS_CHECK_EXIT(xEncodeCowStr(encoder, &source->cstr));
×
NEW
393
_exit:
×
NEW
394
  return code;
×
395
}
396

NEW
397
int32_t tDeserializeXnodeTaskSource(SDecoder *decoder, xTaskSource *source) {
×
NEW
398
  int32_t code = 0;
×
399
  int32_t lino;
400

NEW
401
  TAOS_CHECK_EXIT(tDecodeI32(decoder, (int32_t *)&source->type));
×
NEW
402
  TAOS_CHECK_EXIT(xDecodeCowStr(decoder, &source->cstr, true));
×
NEW
403
_exit:
×
NEW
404
  return code;
×
405
}
NEW
406
int32_t tSerializeSMCreateXnodeTaskReq(void *buf, int32_t bufLen, SMCreateXnodeTaskReq *pReq) {
×
NEW
407
  SEncoder encoder = {0};
×
NEW
408
  int32_t  code = 0;
×
409
  int32_t  lino;
410
  int32_t  tlen;
NEW
411
  tEncoderInit(&encoder, buf, bufLen);
×
412

NEW
413
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
NEW
414
  ENCODESQL();
×
NEW
415
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
×
NEW
416
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
×
NEW
417
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
×
NEW
418
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
×
NEW
419
  TAOS_CHECK_EXIT(xSerializeTaskOptions(&encoder, &pReq->options));
×
NEW
420
  tEndEncode(&encoder);
×
421

NEW
422
_exit:
×
NEW
423
  if (code) {
×
NEW
424
    tlen = code;
×
425
  } else {
NEW
426
    tlen = encoder.pos;
×
427
  }
NEW
428
  tEncoderClear(&encoder);
×
NEW
429
  return tlen;
×
430
}
NEW
431
int32_t tDeserializeSMCreateXnodeTaskReq(void *buf, int32_t bufLen, SMCreateXnodeTaskReq *pReq) {
×
NEW
432
  SDecoder decoder = {0};
×
NEW
433
  int32_t  code = 0;
×
434
  int32_t  lino;
435

NEW
436
  tDecoderInit(&decoder, buf, bufLen);
×
437

NEW
438
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
439
  DECODESQL();
×
NEW
440
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
NEW
441
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
×
NEW
442
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
×
NEW
443
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
×
NEW
444
  TAOS_CHECK_EXIT(xDeserializeTaskOptions(&decoder, &pReq->options));
×
NEW
445
  tEndDecode(&decoder);
×
446

NEW
447
_exit:
×
NEW
448
  tDecoderClear(&decoder);
×
NEW
449
  return code;
×
450
}
NEW
451
void tFreeSMCreateXnodeTaskReq(SMCreateXnodeTaskReq *pReq) {
×
452
  // printf("freeCreateXnodeTask: %s\n", pReq->name.ptr);
NEW
453
  FREESQL();
×
NEW
454
  xFreeCowStr(&pReq->name);
×
NEW
455
  xFreeTaskSource(&pReq->source);
×
NEW
456
  xFreeTaskSink(&pReq->sink);
×
NEW
457
  xFreeTaskOptions(&pReq->options);
×
NEW
458
}
×
NEW
459
int32_t tSerializeSMDropXnodeTaskReq(void *buf, int32_t bufLen, SMDropXnodeTaskReq *pReq) {
×
460
  // printf("serializeDropXnodeTask: %d\n", pReq->tid);
NEW
461
  SEncoder encoder = {0};
×
NEW
462
  int32_t  code = 0;
×
463
  int32_t  lino;
464
  int32_t  tlen;
465

NEW
466
  tEncoderInit(&encoder, buf, bufLen);
×
467

NEW
468
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
NEW
469
  ENCODESQL();
×
NEW
470
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
×
NEW
471
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->force));
×
NEW
472
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->nameLen));
×
NEW
473
  if (pReq->nameLen > 0) {
×
NEW
474
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->name, pReq->nameLen));
×
475
  }
NEW
476
  tEndEncode(&encoder);
×
477

NEW
478
_exit:
×
NEW
479
  if (code) {
×
NEW
480
    tlen = code;
×
481
  } else {
NEW
482
    tlen = encoder.pos;
×
483
  }
NEW
484
  tEncoderClear(&encoder);
×
NEW
485
  return tlen;
×
486
}
NEW
487
int32_t tDeserializeSMDropXnodeTaskReq(void *buf, int32_t bufLen, SMDropXnodeTaskReq *pReq) {
×
488
  // printf("deserializeDropXnodeTask: %d\n", pReq->tid);
NEW
489
  SDecoder decoder = {0};
×
NEW
490
  int32_t  code = 0;
×
491
  int32_t  lino;
NEW
492
  tDecoderInit(&decoder, buf, bufLen);
×
493

NEW
494
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
495
  DECODESQL();
×
NEW
496
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
×
NEW
497
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->force));
×
NEW
498
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->nameLen));
×
NEW
499
  if (pReq->nameLen > 0) {
×
NEW
500
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->name, NULL));
×
501
  }
NEW
502
  tEndDecode(&decoder);
×
503

NEW
504
_exit:
×
NEW
505
  tDecoderClear(&decoder);
×
NEW
506
  return code;
×
507
}
NEW
508
void tFreeSMDropXnodeTaskReq(SMDropXnodeTaskReq *pReq) {
×
NEW
509
  FREESQL();
×
NEW
510
  if (pReq->name != NULL) {
×
NEW
511
    taosMemoryFree(pReq->name);
×
512
  }
NEW
513
}
×
514

NEW
515
int32_t tSerializeSMStartXnodeTaskReq(void *buf, int32_t bufLen, SMStartXnodeTaskReq *pReq) {
×
NEW
516
  SEncoder encoder = {0};
×
NEW
517
  int32_t  code = 0;
×
518
  int32_t  lino;
519
  int32_t  tlen;
520

NEW
521
  tEncoderInit(&encoder, buf, bufLen);
×
522

NEW
523
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
NEW
524
  ENCODESQL();
×
NEW
525
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
×
NEW
526
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
×
NEW
527
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
×
NEW
528
  tEndEncode(&encoder);
×
529

NEW
530
_exit:
×
NEW
531
  if (code) {
×
NEW
532
    tlen = code;
×
533
  } else {
NEW
534
    tlen = encoder.pos;
×
535
  }
NEW
536
  tEncoderClear(&encoder);
×
NEW
537
  return tlen;
×
538
}
NEW
539
int32_t tDeserializeSMStartXnodeTaskReq(void *buf, int32_t bufLen, SMStartXnodeTaskReq *pReq) {
×
NEW
540
  SDecoder decoder = {0};
×
NEW
541
  int32_t  code = 0;
×
542
  int32_t  lino;
NEW
543
  tDecoderInit(&decoder, buf, bufLen);
×
544

NEW
545
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
546
  DECODESQL();
×
NEW
547
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
×
NEW
548
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
×
NEW
549
  tEndDecode(&decoder);
×
550

NEW
551
_exit:
×
NEW
552
  tDecoderClear(&decoder);
×
NEW
553
  return code;
×
554
}
NEW
555
void tFreeSMStartXnodeTaskReq(SMStartXnodeTaskReq *pReq) {
×
NEW
556
  FREESQL();
×
NEW
557
  xFreeCowStr(&pReq->name);
×
NEW
558
}
×
559

NEW
560
int32_t tSerializeSMStopXnodeTaskReq(void *buf, int32_t bufLen, SMStopXnodeTaskReq *pReq) {
×
NEW
561
  return tSerializeSMStartXnodeTaskReq(buf, bufLen, pReq);
×
562
}
NEW
563
int32_t tDeserializeSMStopXnodeTaskReq(void *buf, int32_t bufLen, SMStopXnodeTaskReq *pReq) {
×
NEW
564
  return tDeserializeSMStartXnodeTaskReq(buf, bufLen, pReq);
×
565
}
NEW
566
void tFreeSMStopXnodeTaskReq(SMStopXnodeTaskReq *pReq) { tFreeSMStartXnodeTaskReq(pReq); }
×
567

NEW
568
int32_t tSerializeSMUpdateXnodeTaskReq(void *buf, int32_t bufLen, SMUpdateXnodeTaskReq *pReq) {
×
NEW
569
  SEncoder encoder = {0};
×
NEW
570
  int32_t  code = 0;
×
571
  int32_t  lino;
572
  int32_t  tlen;
NEW
573
  tEncoderInit(&encoder, buf, bufLen);
×
574

NEW
575
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
NEW
576
  ENCODESQL();
×
NEW
577
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
×
NEW
578
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->name));
×
NEW
579
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
×
NEW
580
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
×
NEW
581
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
×
NEW
582
  TAOS_CHECK_EXIT(xSerializeTaskSource(&encoder, &pReq->source));
×
NEW
583
  TAOS_CHECK_EXIT(xSerializeTaskSink(&encoder, &pReq->sink));
×
NEW
584
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->parser));
×
NEW
585
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->reason));
×
NEW
586
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->updateName));
×
NEW
587
  tEndEncode(&encoder);
×
588

NEW
589
_exit:
×
NEW
590
  if (code) {
×
NEW
591
    tlen = code;
×
592
  } else {
NEW
593
    tlen = encoder.pos;
×
594
  }
NEW
595
  tEncoderClear(&encoder);
×
NEW
596
  return tlen;
×
597
}
598

NEW
599
int32_t tDeserializeSMUpdateXnodeTaskReq(void *buf, int32_t bufLen, SMUpdateXnodeTaskReq *pReq) {
×
NEW
600
  SDecoder decoder = {0};
×
NEW
601
  int32_t  code = 0;
×
602
  int32_t  lino;
603

NEW
604
  tDecoderInit(&decoder, buf, bufLen);
×
605

NEW
606
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
607
  DECODESQL();
×
NEW
608
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
×
NEW
609
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->name, true));
×
NEW
610
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
×
NEW
611
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
NEW
612
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
×
NEW
613
  TAOS_CHECK_EXIT(xDeserializeTaskSource(&decoder, &pReq->source));
×
NEW
614
  TAOS_CHECK_EXIT(xDeserializeTaskSink(&decoder, &pReq->sink));
×
NEW
615
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->parser, true));
×
NEW
616
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->reason, true));
×
NEW
617
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->updateName, true));
×
NEW
618
  tEndDecode(&decoder);
×
619

NEW
620
_exit:
×
NEW
621
  tDecoderClear(&decoder);
×
NEW
622
  return code;
×
623
}
624

NEW
625
void tFreeSMUpdateXnodeTaskReq(SMUpdateXnodeTaskReq *pReq) {
×
626
  // printf("freeUpdateXnodeTask: %d\n", pReq->tid);
NEW
627
  xFreeCowStr(&pReq->name);
×
NEW
628
  xFreeTaskSource(&pReq->source);
×
NEW
629
  xFreeTaskSink(&pReq->sink);
×
NEW
630
  xFreeCowStr(&pReq->parser);
×
NEW
631
  xFreeCowStr(&pReq->reason);
×
NEW
632
  xFreeCowStr(&pReq->status);
×
NEW
633
  xFreeCowStr(&pReq->updateName);
×
NEW
634
  FREESQL();
×
NEW
635
}
×
636

637
int32_t tSerializeSMDropXnodeReq(void *buf, int32_t bufLen, SMDropXnodeReq *pReq) {
8,308✔
638
  SEncoder encoder = {0};
8,308✔
639
  int32_t  code = 0;
8,308✔
640
  int32_t  lino;
641
  int32_t  tlen;
642
  tEncoderInit(&encoder, buf, bufLen);
8,308✔
643

644
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8,308✔
645
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
16,616✔
646
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->force));
16,616✔
647
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
16,616✔
648
  if (pReq->urlLen > 0) {
8,308✔
649
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
5,896✔
650
  }
651
  ENCODESQL();
24,924✔
652
  tEndEncode(&encoder);
8,308✔
653

654
_exit:
8,308✔
655
  if (code) {
8,308✔
NEW
656
    tlen = code;
×
657
  } else {
658
    tlen = encoder.pos;
8,308✔
659
  }
660
  tEncoderClear(&encoder);
8,308✔
661
  return tlen;
8,308✔
662
}
663

664
int32_t tDeserializeSMDropXnodeReq(void *buf, int32_t bufLen, SMDropXnodeReq *pReq) {
4,154✔
665
  SDecoder decoder = {0};
4,154✔
666
  int32_t  code = 0;
4,154✔
667
  int32_t  lino;
668

669
  tDecoderInit(&decoder, buf, bufLen);
4,154✔
670

671
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,154✔
672
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
8,308✔
673
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->force));
8,308✔
674
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
8,308✔
675
  if (pReq->urlLen > 0) {
4,154✔
676
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
2,948✔
677
  }
678
  DECODESQL();
12,462✔
679
  tEndDecode(&decoder);
4,154✔
680

681
_exit:
4,154✔
682
  tDecoderClear(&decoder);
4,154✔
683
  return code;
4,154✔
684
}
685

686
void tFreeSMDropXnodeReq(SMDropXnodeReq *pReq) {
8,308✔
687
  FREESQL();
8,308✔
688
  if (pReq->urlLen > 0 && pReq->url != NULL) {
8,308✔
689
    taosMemoryFree(pReq->url);
2,948✔
690
  }
691
}
8,308✔
692

693
int32_t tSerializeSMDrainXnodeReq(void *buf, int32_t bufLen, SMDrainXnodeReq *pReq) {
2,680✔
694
  SEncoder encoder = {0};
2,680✔
695
  int32_t  code = 0;
2,680✔
696
  int32_t  lino;
697
  int32_t  tlen;
698
  tEncoderInit(&encoder, buf, bufLen);
2,680✔
699

700
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,680✔
701
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
5,360✔
702
  ENCODESQL();
8,040✔
703
  tEndEncode(&encoder);
2,680✔
704

705
_exit:
2,680✔
706
  if (code) {
2,680✔
NEW
707
    tlen = code;
×
708
  } else {
709
    tlen = encoder.pos;
2,680✔
710
  }
711
  tEncoderClear(&encoder);
2,680✔
712
  return tlen;
2,680✔
713
}
714

715
int32_t tDeserializeSMDrainXnodeReq(void *buf, int32_t bufLen, SMDrainXnodeReq *pReq) {
1,340✔
716
  SDecoder decoder = {0};
1,340✔
717
  int32_t  code = 0;
1,340✔
718
  int32_t  lino;
719

720
  tDecoderInit(&decoder, buf, bufLen);
1,340✔
721

722
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,340✔
723
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
2,680✔
724
  DECODESQL();
4,020✔
725
  tEndDecode(&decoder);
1,340✔
726

727
_exit:
1,340✔
728
  tDecoderClear(&decoder);
1,340✔
729
  return code;
1,340✔
730
}
731

732
void tFreeSMDrainXnodeReq(SMDrainXnodeReq *pReq) { FREESQL(); }
2,680✔
733

NEW
734
int32_t tSerializeSMUpdateXnodeReq(void *buf, int32_t bufLen, SMUpdateXnodeReq *pReq) {
×
NEW
735
  return tSerializeSMDropXnodeReq(buf, bufLen, pReq);
×
736
}
737

NEW
738
int32_t tDeserializeSMUpdateXnodeReq(void *buf, int32_t bufLen, SMUpdateXnodeReq *pReq) {
×
NEW
739
  return tDeserializeSMDropXnodeReq(buf, bufLen, pReq);
×
740
}
741

NEW
742
void tFreeSMUpdateXnodeReq(SMUpdateXnodeReq *pReq) { tFreeSMDropXnodeReq(pReq); }
×
743

NEW
744
int32_t tSerializeSMCreateXnodeJobReq(void *buf, int32_t bufLen, SMCreateXnodeJobReq *pReq) {
×
745
  // printf("serializeCreateXnodeTaskJob: %d\n", pReq->tid);
NEW
746
  SEncoder encoder = {0};
×
NEW
747
  int32_t  code = 0;
×
748
  int32_t  lino;
749
  int32_t  tlen;
750

NEW
751
  tEncoderInit(&encoder, buf, bufLen);
×
752

NEW
753
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
754
  // 0. sql
NEW
755
  ENCODESQL();
×
756

NEW
757
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
×
NEW
758
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
×
NEW
759
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
×
NEW
760
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
×
NEW
761
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->configLen));
×
NEW
762
  if (pReq->configLen > 0) {
×
NEW
763
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->config, pReq->configLen));
×
764
  }
NEW
765
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reasonLen));
×
NEW
766
  if (pReq->reasonLen > 0) {
×
NEW
767
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->reason, pReq->reasonLen));
×
768
  }
NEW
769
  tEndEncode(&encoder);
×
770

NEW
771
_exit:
×
NEW
772
  if (code) {
×
NEW
773
    tlen = code;
×
774
  } else {
NEW
775
    tlen = encoder.pos;
×
776
  }
NEW
777
  tEncoderClear(&encoder);
×
NEW
778
  return tlen;
×
779
}
780

NEW
781
int32_t tDeserializeSMCreateXnodeJobReq(void *buf, int32_t bufLen, SMCreateXnodeJobReq *pReq) {
×
782
  // printf("deserializeCreateXnodeTaskJob: %d\n", pReq->tid);
NEW
783
  SDecoder decoder = {0};
×
NEW
784
  int32_t  code = 0;
×
785
  int32_t  lino;
786

NEW
787
  tDecoderInit(&decoder, buf, bufLen);
×
788

NEW
789
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
790
  DECODESQL();
×
NEW
791
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
×
NEW
792
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
×
NEW
793
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
NEW
794
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
×
NEW
795
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->configLen));
×
NEW
796
  if (pReq->configLen > 0) {
×
NEW
797
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->config, NULL));
×
798
  }
NEW
799
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reasonLen));
×
NEW
800
  if (pReq->reasonLen > 0) {
×
NEW
801
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->reason, NULL));
×
802
  }
NEW
803
  tEndDecode(&decoder);
×
804

NEW
805
_exit:
×
NEW
806
  tDecoderClear(&decoder);
×
NEW
807
  return code;
×
808
}
NEW
809
void tFreeSMCreateXnodeJobReq(SMCreateXnodeJobReq *pReq) {
×
810
  // printf("freeCreateXnodeTaskJob: %d\n", pReq->tid);
NEW
811
  FREESQL();
×
NEW
812
  taosMemoryFreeClear(pReq->config);
×
NEW
813
  taosMemoryFreeClear(pReq->reason);
×
NEW
814
  xFreeCowStr(&pReq->status);
×
NEW
815
}
×
816

NEW
817
int32_t tSerializeSMUpdateXnodeJobReq(void *buf, int32_t bufLen, SMUpdateXnodeJobReq *pReq) {
×
818
  // printf("serializeUpdateXnodeTaskJob: %d\n", pReq->jid);
NEW
819
  SEncoder encoder = {0};
×
NEW
820
  int32_t  code = 0;
×
821
  int32_t  lino;
822
  int32_t  tlen;
823

NEW
824
  tEncoderInit(&encoder, buf, bufLen);
×
825

NEW
826
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
827
  // 0. sql
NEW
828
  ENCODESQL();
×
829

NEW
830
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
×
NEW
831
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->via));
×
NEW
832
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
×
NEW
833
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->status));
×
NEW
834
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->configLen));
×
NEW
835
  if (pReq->configLen > 0) {
×
NEW
836
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->config, pReq->configLen));
×
837
  }
NEW
838
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reasonLen));
×
NEW
839
  if (pReq->reasonLen > 0) {
×
NEW
840
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->reason, pReq->reasonLen));
×
841
  }
NEW
842
  tEndEncode(&encoder);
×
843

NEW
844
_exit:
×
NEW
845
  if (code) {
×
NEW
846
    tlen = code;
×
847
  } else {
NEW
848
    tlen = encoder.pos;
×
849
  }
NEW
850
  tEncoderClear(&encoder);
×
NEW
851
  return tlen;
×
852
}
853

NEW
854
int32_t tDeserializeSMUpdateXnodeJobReq(void *buf, int32_t bufLen, SMUpdateXnodeJobReq *pReq) {
×
NEW
855
  SDecoder decoder = {0};
×
NEW
856
  int32_t  code = 0;
×
857
  int32_t  lino;
858

NEW
859
  tDecoderInit(&decoder, buf, bufLen);
×
860

NEW
861
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
862
  DECODESQL();
×
NEW
863
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
×
NEW
864
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->via));
×
NEW
865
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
NEW
866
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->status, true));
×
NEW
867
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->configLen));
×
NEW
868
  if (pReq->configLen > 0) {
×
NEW
869
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->config, NULL));
×
870
  }
NEW
871
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reasonLen));
×
NEW
872
  if (pReq->reasonLen > 0) {
×
NEW
873
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->reason, NULL));
×
874
  }
NEW
875
  tEndDecode(&decoder);
×
876

NEW
877
_exit:
×
NEW
878
  tDecoderClear(&decoder);
×
NEW
879
  return code;
×
880
}
881

NEW
882
void tFreeSMUpdateXnodeJobReq(SMUpdateXnodeJobReq *pReq) {
×
NEW
883
  FREESQL();
×
NEW
884
  if (pReq->config != NULL) {
×
NEW
885
    pReq->configLen = 0;
×
NEW
886
    taosMemoryFreeClear(pReq->config);
×
887
  }
NEW
888
  if (pReq->reason != NULL) {
×
NEW
889
    pReq->reasonLen = 0;
×
NEW
890
    taosMemoryFreeClear(pReq->reason);
×
891
  }
NEW
892
  xFreeCowStr(&pReq->status);
×
NEW
893
}
×
894

NEW
895
int32_t tSerializeSMRebalanceXnodeJobReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobReq *pReq) {
×
NEW
896
  SEncoder encoder = {0};
×
NEW
897
  int32_t  code = 0;
×
898
  int32_t  lino;
899
  int32_t  tlen;
900

NEW
901
  tEncoderInit(&encoder, buf, bufLen);
×
902

NEW
903
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
NEW
904
  ENCODESQL();
×
NEW
905
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
×
NEW
906
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->xnodeId));
×
907

NEW
908
  tEndEncode(&encoder);
×
NEW
909
_exit:
×
NEW
910
  if (code) {
×
NEW
911
    tlen = code;
×
912
  } else {
NEW
913
    tlen = encoder.pos;
×
914
  }
NEW
915
  tEncoderClear(&encoder);
×
NEW
916
  return tlen;
×
917
}
NEW
918
int32_t tDeserializeSMRebalanceXnodeJobReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobReq *pReq) {
×
NEW
919
  SDecoder decoder = {0};
×
NEW
920
  int32_t  code = 0;
×
921
  int32_t  lino;
922

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

NEW
925
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
926
  DECODESQL();
×
NEW
927
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
×
NEW
928
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->xnodeId));
×
929

NEW
930
  tEndDecode(&decoder);
×
NEW
931
_exit:
×
NEW
932
  tDecoderClear(&decoder);
×
NEW
933
  return code;
×
934
}
935

NEW
936
void tFreeSMRebalanceXnodeJobReq(SMRebalanceXnodeJobReq *pReq) { FREESQL(); }
×
937

NEW
938
int32_t tSerializeSMRebalanceXnodeJobsWhereReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobsWhereReq *pReq) {
×
NEW
939
  SEncoder encoder = {0};
×
NEW
940
  int32_t  code = 0;
×
941
  int32_t  lino;
942
  int32_t  tlen;
943

NEW
944
  tEncoderInit(&encoder, buf, bufLen);
×
945

NEW
946
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
NEW
947
  ENCODESQL();
×
NEW
948
  TAOS_CHECK_EXIT(xEncodeCowStr(&encoder, &pReq->ast));
×
NEW
949
  tEndEncode(&encoder);
×
NEW
950
_exit:
×
NEW
951
  if (code) {
×
NEW
952
    tlen = code;
×
953
  } else {
NEW
954
    tlen = encoder.pos;
×
955
  }
NEW
956
  tEncoderClear(&encoder);
×
NEW
957
  return tlen;
×
958
}
NEW
959
int32_t tDeserializeSMRebalanceXnodeJobsWhereReq(void *buf, int32_t bufLen, SMRebalanceXnodeJobsWhereReq *pReq) {
×
NEW
960
  SDecoder decoder = {0};
×
NEW
961
  int32_t  code = 0;
×
962
  int32_t  lino;
963

NEW
964
  tDecoderInit(&decoder, buf, bufLen);
×
965

NEW
966
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
967
  DECODESQL();
×
NEW
968
  TAOS_CHECK_EXIT(xDecodeCowStr(&decoder, &pReq->ast, true));
×
969

NEW
970
  tEndDecode(&decoder);
×
NEW
971
_exit:
×
NEW
972
  tDecoderClear(&decoder);
×
NEW
973
  return code;
×
974
}
975

NEW
976
void tFreeSMRebalanceXnodeJobsWhereReq(SMRebalanceXnodeJobsWhereReq *pReq) {
×
NEW
977
  FREESQL();
×
NEW
978
  xFreeCowStr(&pReq->ast);
×
NEW
979
}
×
980

NEW
981
int32_t tSerializeSMDropXnodeJobReq(void *buf, int32_t bufLen, SMDropXnodeJobReq *pReq) {
×
NEW
982
  SEncoder encoder = {0};
×
NEW
983
  int32_t  code = 0;
×
984
  int32_t  lino;
985
  int32_t  tlen;
986

NEW
987
  tEncoderInit(&encoder, buf, bufLen);
×
988

NEW
989
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
NEW
990
  ENCODESQL();
×
NEW
991
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->jid));
×
NEW
992
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tid));
×
993

NEW
994
  tEndEncode(&encoder);
×
NEW
995
_exit:
×
NEW
996
  if (code) {
×
NEW
997
    tlen = code;
×
998
  } else {
NEW
999
    tlen = encoder.pos;
×
1000
  }
NEW
1001
  tEncoderClear(&encoder);
×
NEW
1002
  return tlen;
×
1003
}
NEW
1004
int32_t tDeserializeSMDropXnodeJobReq(void *buf, int32_t bufLen, SMDropXnodeJobReq *pReq) {
×
NEW
1005
  SDecoder decoder = {0};
×
NEW
1006
  int32_t  code = 0;
×
1007
  int32_t  lino;
1008

NEW
1009
  tDecoderInit(&decoder, buf, bufLen);
×
1010

NEW
1011
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
NEW
1012
  DECODESQL();
×
NEW
1013
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->jid));
×
NEW
1014
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tid));
×
1015

NEW
1016
  tEndDecode(&decoder);
×
NEW
1017
_exit:
×
NEW
1018
  tDecoderClear(&decoder);
×
NEW
1019
  return code;
×
1020
}
NEW
1021
void tFreeSMDropXnodeJobReq(SMDropXnodeJobReq *pReq) { FREESQL(); }
×
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