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

taosdata / TDengine / #4442

04 Jul 2025 02:10AM UTC coverage: 63.58% (+0.3%) from 63.29%
#4442

push

travis-ci

web-flow
fix:(stmt2) heap buffer overflow (#31607)

160719 of 321690 branches covered (49.96%)

Branch coverage included in aggregate %.

19 of 22 new or added lines in 3 files covered. (86.36%)

222 existing lines in 60 files now uncovered.

247667 of 320626 relevant lines covered (77.24%)

17710656.63 hits per line

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

69.54
/source/common/src/msg/tmsg.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
#include "tmsg.h"
18
#include "tglobal.h"
19

20
#undef TD_MSG_NUMBER_
21
#undef TD_MSG_DICT_
22
#undef TD_MSG_RANGE_CODE_
23
#define TD_MSG_INFO_
24
#undef TD_MSG_TYPE_INFO_
25
#undef TD_MSG_SEG_CODE_
26
#include "tmsgdef.h"
27

28
#undef TD_MSG_NUMBER_
29
#undef TD_MSG_INFO_
30
#undef TD_MSG_TYPE_INFO_
31
#undef TD_MSG_RANGE_CODE_
32
#define TD_MSG_DICT_
33
#undef TD_MSG_SEG_CODE_
34
#include "tmsgdef.h"
35

36
#undef TD_MSG_NUMBER_
37
#undef TD_MSG_INFO_
38
#undef TD_MSG_TYPE_INFO_
39
#undef TD_MSG_DICT_
40
#undef TD_MSG_SEG_CODE_
41
#define TD_MSG_RANGE_CODE_
42
#include "tmsgdef.h"
43

44
#include "tanalytics.h"
45
#include "tcol.h"
46
#include "tlog.h"
47

48
#if defined(WINDOWS)
49
#include <IPHlpApi.h>
50
#include <WS2tcpip.h>
51
#include <Winsock2.h>
52
#endif
53

54
#define DECODESQL()                                                               \
55
  do {                                                                            \
56
    if (!tDecodeIsEnd(&decoder)) {                                                \
57
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));                       \
58
      if (pReq->sqlLen > 0) {                                                     \
59
        TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->sql, NULL)); \
60
      }                                                                           \
61
    }                                                                             \
62
  } while (0)
63

64
#define ENCODESQL()                                                                       \
65
  do {                                                                                    \
66
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));                                  \
67
    if (pReq->sqlLen > 0) {                                                               \
68
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->sql, pReq->sqlLen)); \
69
    }                                                                                     \
70
  } while (0)
71

72
#define FREESQL()                \
73
  do {                           \
74
    if (pReq->sql != NULL) {     \
75
      taosMemoryFree(pReq->sql); \
76
    }                            \
77
    pReq->sql = NULL;            \
78
  } while (0)
79

80
static int32_t tSerializeSMonitorParas(SEncoder *encoder, const SMonitorParas *pMonitorParas) {
921,708✔
81
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pMonitorParas->tsEnableMonitor));
1,843,416!
82
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsMonitorInterval));
1,843,416!
83
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogScope));
1,843,416!
84
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogMaxLen));
1,843,416!
85
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThreshold));
1,843,416!
86
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
1,843,416!
87
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pMonitorParas->tsSlowLogExceptDb));
1,843,416!
88
  return 0;
921,708✔
89
}
90

91
static int32_t tDeserializeSMonitorParas(SDecoder *decoder, SMonitorParas *pMonitorParas) {
226,089✔
92
  TAOS_CHECK_RETURN(tDecodeI8(decoder, (int8_t *)&pMonitorParas->tsEnableMonitor));
452,182!
93
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsMonitorInterval));
452,187!
94
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogScope));
452,191!
95
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogMaxLen));
452,192!
96
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThreshold));
452,191!
97
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
452,190!
98
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pMonitorParas->tsSlowLogExceptDb));
226,094!
99
  return 0;
226,114✔
100
}
101

102
static int32_t tDecodeSVAlterTbReqCommon(SDecoder *pDecoder, SVAlterTbReq *pReq);
103
static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq *pReq);
104
static int32_t tEncodeTableTSMAInfoRsp(SEncoder *pEncoder, const STableTSMAInfoRsp *pRsp);
105
static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pRsp);
106

107
int32_t tInitSubmitMsgIter(const SSubmitReq *pMsg, SSubmitMsgIter *pIter) {
×
108
  if (pMsg == NULL) {
×
109
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
110
  }
111

112
  pIter->totalLen = htonl(pMsg->length);
×
113
  pIter->numOfBlocks = htonl(pMsg->numOfBlocks);
×
114
  if (!(pIter->totalLen > 0)) {
×
115
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
116
  }
117
  pIter->len = 0;
×
118
  pIter->pMsg = pMsg;
×
119
  if (pIter->totalLen <= sizeof(SSubmitReq)) {
×
120
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
121
  }
122

123
  return 0;
×
124
}
125

126
int32_t tGetSubmitMsgNext(SSubmitMsgIter *pIter, SSubmitBlk **pPBlock) {
×
127
  if (!(pIter->len >= 0)) {
×
128
    return terrno = TSDB_CODE_INVALID_MSG_LEN;
×
129
  }
130

131
  if (pIter->len == 0) {
×
132
    pIter->len += sizeof(SSubmitReq);
×
133
  } else {
134
    if (pIter->len >= pIter->totalLen) {
×
135
      return terrno = TSDB_CODE_INVALID_MSG_LEN;
×
136
    }
137

138
    pIter->len += (sizeof(SSubmitBlk) + pIter->dataLen + pIter->schemaLen);
×
139
    if (!(pIter->len > 0)) {
×
140
      return terrno = TSDB_CODE_INVALID_MSG_LEN;
×
141
    }
142
  }
143

144
  if (pIter->len > pIter->totalLen) {
×
145
    *pPBlock = NULL;
×
146
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
147
  }
148

149
  if (pIter->len == pIter->totalLen) {
×
150
    *pPBlock = NULL;
×
151
  } else {
152
    *pPBlock = (SSubmitBlk *)POINTER_SHIFT(pIter->pMsg, pIter->len);
×
153
    pIter->uid = htobe64((*pPBlock)->uid);
×
154
    pIter->suid = htobe64((*pPBlock)->suid);
×
155
    pIter->sversion = htonl((*pPBlock)->sversion);
×
156
    pIter->dataLen = htonl((*pPBlock)->dataLen);
×
157
    pIter->schemaLen = htonl((*pPBlock)->schemaLen);
×
158
    pIter->numOfRows = htonl((*pPBlock)->numOfRows);
×
159
  }
160
  return 0;
×
161
}
162

163
int32_t tInitSubmitBlkIter(SSubmitMsgIter *pMsgIter, SSubmitBlk *pBlock, SSubmitBlkIter *pIter) {
×
164
  if (pMsgIter->dataLen <= 0) {
×
165
    return TSDB_CODE_INVALID_PARA;
×
166
  }
167
  pIter->totalLen = pMsgIter->dataLen;
×
168
  pIter->len = 0;
×
169
  pIter->row = (STSRow *)(pBlock->data + pMsgIter->schemaLen);
×
170
  return 0;
×
171
}
172

173
STSRow *tGetSubmitBlkNext(SSubmitBlkIter *pIter) {
×
174
  STSRow *row = pIter->row;
×
175

176
  if (pIter->len >= pIter->totalLen) {
×
177
    return NULL;
×
178
  } else {
179
    pIter->len += TD_ROW_LEN(row);
×
180
    if (pIter->len < pIter->totalLen) {
×
181
      pIter->row = POINTER_SHIFT(row, TD_ROW_LEN(row));
×
182
    }
183
    return row;
×
184
  }
185
}
186

187
int32_t tEncodeSEpSet(SEncoder *pEncoder, const SEpSet *pEp) {
45,789,801✔
188
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->inUse));
91,579,602!
189
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->numOfEps));
91,579,602!
190
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
274,819,512✔
191
    TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pEp->eps[i].port));
458,059,422!
192
    TAOS_CHECK_RETURN(tEncodeCStrWithLen(pEncoder, pEp->eps[i].fqdn, TSDB_FQDN_LEN));
458,059,422!
193
  }
194
  return 0;
45,789,801✔
195
}
196

197
int32_t tDecodeSEpSet(SDecoder *pDecoder, SEpSet *pEp) {
1,153,680✔
198
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->inUse));
2,307,340!
199
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->numOfEps));
2,307,329!
200
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
6,920,512✔
201
    TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pEp->eps[i].port));
11,533,207!
202
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pEp->eps[i].fqdn));
5,766,531!
203
  }
204
  return 0;
1,153,836✔
205
}
206

207
int32_t tEncodeSQueryNodeAddr(SEncoder *pEncoder, SQueryNodeAddr *pAddr) {
1,083,819✔
208
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pAddr->nodeId));
2,167,638!
209
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pAddr->epSet));
1,083,819✔
210
  return 0;
1,084,788✔
211
}
212

213
int32_t tEncodeSQueryNodeLoad(SEncoder *pEncoder, SQueryNodeLoad *pLoad) {
1,083,804✔
214
  TAOS_CHECK_RETURN(tEncodeSQueryNodeAddr(pEncoder, &pLoad->addr));
1,083,804✔
215
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pLoad->load));
2,169,512!
216
  return 0;
1,084,756✔
217
}
218

219
int32_t tDecodeSQueryNodeAddr(SDecoder *pDecoder, SQueryNodeAddr *pAddr) {
340,766✔
220
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pAddr->nodeId));
681,532!
221
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pAddr->epSet));
340,766!
222
  return 0;
340,768✔
223
}
224

225
int32_t tDecodeSQueryNodeLoad(SDecoder *pDecoder, SQueryNodeLoad *pLoad) {
340,767✔
226
  TAOS_CHECK_RETURN(tDecodeSQueryNodeAddr(pDecoder, &pLoad->addr));
340,767!
227
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pLoad->load));
681,536!
228
  return 0;
340,768✔
229
}
230

231
int32_t taosEncodeSEpSet(void **buf, const SEpSet *pEp) {
24,818✔
232
  int32_t tlen = 0;
24,818✔
233
  tlen += taosEncodeFixedI8(buf, pEp->inUse);
24,818✔
234
  tlen += taosEncodeFixedI8(buf, pEp->numOfEps);
24,818✔
235
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
148,908✔
236
    tlen += taosEncodeFixedU16(buf, pEp->eps[i].port);
124,090✔
237
    tlen += taosEncodeString(buf, pEp->eps[i].fqdn);
248,180✔
238
  }
239
  return tlen;
24,818✔
240
}
241

242
void *taosDecodeSEpSet(const void *buf, SEpSet *pEp) {
11,362✔
243
  buf = taosDecodeFixedI8(buf, &pEp->inUse);
11,362✔
244
  buf = taosDecodeFixedI8(buf, &pEp->numOfEps);
11,362✔
245
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
68,172✔
246
    buf = taosDecodeFixedU16(buf, &pEp->eps[i].port);
56,810!
247
    buf = taosDecodeStringTo(buf, pEp->eps[i].fqdn);
113,620✔
248
  }
249
  return (void *)buf;
11,362✔
250
}
251

252
static int32_t tSerializeSClientHbReq(SEncoder *pEncoder, const SClientHbReq *pReq) {
347,838✔
253
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pReq->connKey));
695,676!
254

255
  if (pReq->connKey.connType == CONN_TYPE__QUERY) {
347,838✔
256
    TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->app.appId));
695,672!
257
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReq->app.pid));
695,672!
258
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->app.name));
695,672!
259
    TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->app.startTime));
695,672!
260
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.numOfInsertsReq));
695,672!
261
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.numOfInsertRows));
695,672!
262
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.insertElapsedTime));
695,672!
263
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.insertBytes));
695,672!
264
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.fetchBytes));
695,672!
265
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.queryElapsedTime));
695,672!
266
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.numOfSlowQueries));
695,672!
267
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.totalRequests));
695,672!
268
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.currentRequests));
695,672!
269

270
    int32_t queryNum = 0;
347,836✔
271
    if (pReq->query) {
347,836✔
272
      queryNum = 1;
333,098✔
273
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
333,098!
274
      TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->query->connId));
666,196!
275

276
      int32_t num = taosArrayGetSize(pReq->query->queryDesc);
333,098✔
277
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
333,098!
278

279
      for (int32_t i = 0; i < num; ++i) {
400,438✔
280
        SQueryDesc *desc = taosArrayGet(pReq->query->queryDesc, i);
67,340✔
281
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, desc->sql));
134,680!
282
        TAOS_CHECK_RETURN(tEncodeU64(pEncoder, desc->queryId));
134,680!
283
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->useconds));
134,680!
284
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->stime));
134,680!
285
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->reqRid));
134,680!
286
        TAOS_CHECK_RETURN(tEncodeI8(pEncoder, desc->stableQuery));
134,680!
287
        TAOS_CHECK_RETURN(tEncodeI8(pEncoder, desc->isSubQuery));
134,680!
288
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, desc->fqdn));
134,680!
289
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, desc->subPlanNum));
134,680!
290

291
        int32_t snum = desc->subDesc ? taosArrayGetSize(desc->subDesc) : 0;
67,340✔
292
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, snum));
67,340!
293
        for (int32_t m = 0; m < snum; ++m) {
260,256✔
294
          SQuerySubDesc *sDesc = taosArrayGet(desc->subDesc, m);
192,916✔
295
          TAOS_CHECK_RETURN(tEncodeI64(pEncoder, sDesc->tid));
385,832!
296
          TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, sDesc->status));
385,832!
297
        }
298
      }
299
    } else {
300
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
14,738!
301
    }
302
  }
303

304
  int32_t kvNum = taosHashGetSize(pReq->info);
347,838✔
305
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
347,838!
306
  void *pIter = taosHashIterate(pReq->info, NULL);
347,838✔
307
  while (pIter != NULL) {
492,792✔
308
    SKv *kv = pIter;
144,954✔
309
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
144,954!
310
    pIter = taosHashIterate(pReq->info, pIter);
144,954✔
311
  }
312
  TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->userIp));
695,676!
313
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->userApp));
695,676!
314

315
  return 0;
347,838✔
316
}
317

318
static int32_t tDeserializeSClientHbReq(SDecoder *pDecoder, SClientHbReq *pReq) {
358,553✔
319
  int32_t code = 0;
358,553✔
320
  int32_t line = 0;
358,553✔
321
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pReq->connKey));
717,119!
322

323
  if (pReq->connKey.connType == CONN_TYPE__QUERY) {
358,566!
324
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.appId));
717,136!
325
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReq->app.pid));
717,113!
326
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->app.name));
358,549!
327
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.startTime));
717,134!
328
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertsReq));
717,133!
329
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertRows));
717,095!
330
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertElapsedTime));
717,066!
331
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertBytes));
717,074!
332
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.fetchBytes));
717,081!
333
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.queryElapsedTime));
717,083!
334
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfSlowQueries));
717,081!
335
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.totalRequests));
717,079!
336
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.currentRequests));
717,064!
337

338
    int32_t queryNum = 0;
358,527✔
339
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
358,530!
340
    if (queryNum) {
358,530✔
341
      pReq->query = taosMemoryCalloc(1, sizeof(*pReq->query));
351,711!
342
      if (NULL == pReq->query) {
351,766!
343
        return terrno;
×
344
      }
345
      code = tDecodeU32(pDecoder, &pReq->query->connId);
351,766✔
346
      TAOS_CHECK_GOTO(code, &line, _error);
351,763!
347

348
      int32_t num = 0;
351,763✔
349
      code = tDecodeI32(pDecoder, &num);
351,748✔
350
      TAOS_CHECK_GOTO(code, &line, _error);
351,748!
351

352
      if (num > 0) {
351,748✔
353
        pReq->query->queryDesc = taosArrayInit(num, sizeof(SQueryDesc));
202,736✔
354
        if (NULL == pReq->query->queryDesc) {
202,736✔
355
          return terrno;
1✔
356
        }
357

358
        for (int32_t i = 0; i < num; ++i) {
443,955✔
359
          SQueryDesc desc = {0};
241,217✔
360
          code = tDecodeCStrTo(pDecoder, desc.sql);
241,217✔
361
          TAOS_CHECK_GOTO(code, &line, _error);
241,233!
362

363
          code = tDecodeU64(pDecoder, &desc.queryId);
241,228✔
364
          TAOS_CHECK_GOTO(code, &line, _error);
241,228!
365

366
          code = tDecodeI64(pDecoder, &desc.useconds);
241,219✔
367
          TAOS_CHECK_GOTO(code, &line, _error);
241,219!
368

369
          code = tDecodeI64(pDecoder, &desc.stime);
241,216✔
370
          TAOS_CHECK_GOTO(code, &line, _error);
241,216!
371

372
          code = tDecodeI64(pDecoder, &desc.reqRid);
241,215✔
373
          TAOS_CHECK_GOTO(code, &line, _error);
241,215!
374

375
          code = tDecodeI8(pDecoder, (int8_t *)&desc.stableQuery);
241,217✔
376
          TAOS_CHECK_GOTO(code, &line, _error);
241,217!
377

378
          code = tDecodeI8(pDecoder, (int8_t *)&desc.isSubQuery);
241,212✔
379
          TAOS_CHECK_GOTO(code, &line, _error);
241,212!
380

381
          code = tDecodeCStrTo(pDecoder, desc.fqdn);
241,212✔
382
          TAOS_CHECK_GOTO(code, &line, _error);
241,221!
383

384
          code = tDecodeI32(pDecoder, &desc.subPlanNum);
241,219✔
385
          TAOS_CHECK_GOTO(code, &line, _error);
241,219!
386

387
          int32_t snum = 0;
241,219✔
388
          code = tDecodeI32(pDecoder, &snum);
241,207✔
389
          if (snum > 0) {
241,207✔
390
            desc.subDesc = taosArrayInit(snum, sizeof(SQuerySubDesc));
241,135✔
391
            if (NULL == desc.subDesc) {
241,146✔
392
              code = terrno;
1✔
393
              TAOS_CHECK_GOTO(code, &line, _error);
×
394
            }
395

396
            for (int32_t m = 0; m < snum; ++m) {
928,961✔
397
              SQuerySubDesc sDesc = {0};
687,806✔
398
              code = tDecodeI64(pDecoder, &sDesc.tid);
687,839✔
399
              TAOS_CHECK_GOTO(code, &line, _error);
687,839!
400

401
              code = (tDecodeCStrTo(pDecoder, sDesc.status));
687,839✔
402
              TAOS_CHECK_GOTO(code, &line, _error);
687,848!
403
              if (!taosArrayPush(desc.subDesc, &sDesc)) {
1,375,664!
404
                code = terrno;
×
405
                TAOS_CHECK_GOTO(code, &line, _error);
×
406
              }
407
            }
408
          }
409

410
          if (!(desc.subPlanNum == taosArrayGetSize(desc.subDesc))) {
241,227!
411
            code = TSDB_CODE_INVALID_MSG;
×
412
            TAOS_CHECK_GOTO(code, &line, _error);
×
413
          }
414

415
          if (!taosArrayPush(pReq->query->queryDesc, &desc)) {
482,410!
416
            code = terrno;
×
417
            TAOS_CHECK_GOTO(code, &line, _error);
×
418
          }
419
        }
420
      }
421
    }
422
  }
423

424
  int32_t kvNum = 0;
358,563✔
425
  TAOS_CHECK_GOTO(tDecodeI32(pDecoder, &kvNum), &line, _error);
358,572!
426
  if (pReq->info == NULL) {
358,572!
427
    pReq->info = taosHashInit(kvNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
358,575✔
428
  }
429
  if (pReq->info == NULL) {
358,565!
430
    code = terrno;
×
431
    TAOS_CHECK_GOTO(code, &line, _error);
×
432
  }
433
  for (int32_t i = 0; i < kvNum; i++) {
557,117✔
434
    SKv kv = {0};
198,548✔
435
    TAOS_CHECK_GOTO(tDecodeSKv(pDecoder, &kv), &line, _error);
198,551!
436

437
    int32_t code = taosHashPut(pReq->info, &kv.key, sizeof(kv.key), &kv, sizeof(kv));
198,551✔
438
    TAOS_CHECK_GOTO(terrno = code, &line, _error);
198,554!
439
  }
440
  if (!tDecodeIsEnd(pDecoder)) {
358,569!
441
    TAOS_CHECK_GOTO(tDecodeU32(pDecoder, &pReq->userIp), &line, _error);
717,172!
442
    TAOS_CHECK_GOTO(tDecodeCStrTo(pDecoder, pReq->userApp), &line, _error);
358,587!
443
  }
444

445
_error:
358,574✔
446
  if (code != 0) {
358,574!
447
    tFreeClientHbReq(pReq);
448
  }
449
  return code;
358,574✔
450
}
451

452
static int32_t tSerializeSClientHbRsp(SEncoder *pEncoder, const SClientHbRsp *pRsp) {
716,275✔
453
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pRsp->connKey));
1,432,550!
454
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->status));
1,432,550!
455

456
  int32_t queryNum = 0;
716,275✔
457
  if (pRsp->query) {
716,275✔
458
    queryNum = 1;
703,352✔
459
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
703,352!
460
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pRsp->query->connId));
1,406,704!
461
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->query->killRid));
1,406,704!
462
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->totalDnodes));
1,406,704!
463
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->onlineDnodes));
1,406,704!
464
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->query->killConnection));
1,406,704!
465
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pRsp->query->epSet));
703,352!
466
    int32_t num = taosArrayGetSize(pRsp->query->pQnodeList);
703,330✔
467
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
702,940!
468
    for (int32_t i = 0; i < num; ++i) {
1,764,639✔
469
      SQueryNodeLoad *pLoad = taosArrayGet(pRsp->query->pQnodeList, i);
1,061,215✔
470
      TAOS_CHECK_RETURN(tEncodeSQueryNodeLoad(pEncoder, pLoad));
1,060,704!
471
    }
472
  } else {
473
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
12,923!
474
  }
475

476
  int32_t kvNum = taosArrayGetSize(pRsp->info);
716,347✔
477
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
716,632!
478
  for (int32_t i = 0; i < kvNum; i++) {
860,820✔
479
    SKv *kv = taosArrayGet(pRsp->info, i);
144,191✔
480
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
144,188!
481
  }
482

483
  return 0;
716,629✔
484
}
485

486
static int32_t tDeserializeSClientHbRsp(SDecoder *pDecoder, SClientHbRsp *pRsp) {
170,072✔
487
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pRsp->connKey));
340,144!
488
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->status));
340,144!
489

490
  int32_t queryNum = 0;
170,072✔
491
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
170,071!
492
  if (queryNum) {
170,071✔
493
    pRsp->query = taosMemoryCalloc(1, sizeof(*pRsp->query));
162,800!
494
    if (NULL == pRsp->query) {
162,800!
495
      return terrno;
×
496
    }
497
    TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pRsp->query->connId));
325,600!
498
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->query->killRid));
325,601!
499
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->totalDnodes));
325,602!
500
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->onlineDnodes));
325,602!
501
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->query->killConnection));
325,602!
502
    TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pRsp->query->epSet));
162,801!
503
    int32_t pQnodeNum = 0;
162,799✔
504
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pQnodeNum));
162,798!
505
    if (pQnodeNum > 0) {
162,798✔
506
      pRsp->query->pQnodeList = taosArrayInit(pQnodeNum, sizeof(SQueryNodeLoad));
104,957✔
507
      if (NULL == pRsp->query->pQnodeList) return terrno;
104,956!
508
      for (int32_t i = 0; i < pQnodeNum; ++i) {
434,170✔
509
        SQueryNodeLoad load = {0};
329,212✔
510
        TAOS_CHECK_RETURN(tDecodeSQueryNodeLoad(pDecoder, &load));
329,212!
511
        if (!taosArrayPush(pRsp->query->pQnodeList, &load)) return terrno;
658,428!
512
      }
513
    }
514
  }
515

516
  int32_t kvNum = 0;
170,070✔
517
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &kvNum));
170,066!
518
  pRsp->info = taosArrayInit(kvNum, sizeof(SKv));
170,066✔
519
  if (pRsp->info == NULL) {
170,072✔
520
    return terrno;
1✔
521
  }
522
  for (int32_t i = 0; i < kvNum; i++) {
196,433✔
523
    SKv kv = {0};
26,362✔
524
    TAOS_CHECK_RETURN(tDecodeSKv(pDecoder, &kv));
26,363!
525
    if (!taosArrayPush(pRsp->info, &kv)) return terrno;
52,725!
526
  }
527

528
  return 0;
170,071✔
529
}
530

531
int32_t tSerializeSClientHbBatchReq(void *buf, int32_t bufLen, const SClientHbBatchReq *pBatchReq) {
118,950✔
532
  SEncoder encoder = {0};
118,950✔
533
  int32_t  code = 0;
118,950✔
534
  int32_t  lino;
535
  int32_t  tlen = 0;
118,950✔
536
  tEncoderInit(&encoder, buf, bufLen);
118,950✔
537

538
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
118,950!
539
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->reqId));
237,900!
540

541
  int32_t reqNum = taosArrayGetSize(pBatchReq->reqs);
118,950✔
542
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, reqNum));
118,950!
543
  for (int32_t i = 0; i < reqNum; i++) {
466,788✔
544
    SClientHbReq *pReq = taosArrayGet(pBatchReq->reqs, i);
347,838✔
545
    TAOS_CHECK_EXIT(tSerializeSClientHbReq(&encoder, pReq));
347,838!
546
  }
547

548
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->ipWhiteListVer));
237,900!
549

550
  for (int32_t i = 0; i < reqNum; i++) {
466,788✔
551
    SClientHbReq *pReq = taosArrayGet(pBatchReq->reqs, i);
347,838✔
552
    TAOS_CHECK_EXIT(tSerializeIpRange(&encoder, (SIpRange *)&pReq->userDualIp));
347,838!
553
  }
554

555
  tEndEncode(&encoder);
118,950✔
556

557
_exit:
118,950✔
558
  if (code) {
118,950!
559
    tlen = code;
×
560
  } else {
561
    tlen = encoder.pos;
118,950✔
562
  }
563
  tEncoderClear(&encoder);
118,950✔
564
  return tlen;
118,950✔
565
}
566

567
int32_t tDeserializeSClientHbBatchReq(void *buf, int32_t bufLen, SClientHbBatchReq *pBatchReq) {
217,239✔
568
  SDecoder decoder = {0};
217,239✔
569
  int32_t  code = 0;
217,239✔
570
  int32_t  lino;
571
  tDecoderInit(&decoder, buf, bufLen);
217,239✔
572

573
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
217,234!
574
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->reqId));
434,539!
575

576
  int32_t reqNum = 0;
217,268✔
577
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &reqNum));
217,268!
578
  if (reqNum > 0) {
217,268✔
579
    pBatchReq->reqs = taosArrayInit(reqNum, sizeof(SClientHbReq));
216,873✔
580
    if (NULL == pBatchReq->reqs) {
216,861✔
581
      return terrno;
19✔
582
    }
583
  }
584
  for (int32_t i = 0; i < reqNum; i++) {
575,821✔
585
    SClientHbReq req = {0};
358,559✔
586
    TAOS_CHECK_EXIT(tDeserializeSClientHbReq(&decoder, &req));
358,559!
587
    if (!taosArrayPush(pBatchReq->reqs, &req)) {
717,171!
588
      TAOS_CHECK_EXIT(terrno);
×
589
    }
590
  }
591

592
  if (!tDecodeIsEnd(&decoder)) {
217,262!
593
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->ipWhiteListVer));
434,532!
594
  }
595

596
  if (!tDecodeIsEnd(&decoder)) {
217,264✔
597
    for (int32_t i = 0; i < reqNum; i++) {
575,471✔
598
      SClientHbReq *pReq = taosArrayGet(pBatchReq->reqs, i);
358,584✔
599
      TAOS_CHECK_EXIT(tDeserializeIpRange(&decoder, (SIpRange *)&pReq->userDualIp));
358,509!
600
    }
601
  }
602
  tEndDecode(&decoder);
217,261✔
603

604
_exit:
217,269✔
605
  tDecoderClear(&decoder);
217,269✔
606
  return code;
217,265✔
607
}
608

609
int32_t tSerializeSClientHbBatchRsp(void *buf, int32_t bufLen, const SClientHbBatchRsp *pBatchRsp) {
434,377✔
610
  SEncoder encoder = {0};
434,377✔
611
  int32_t  code = 0;
434,377✔
612
  int32_t  lino;
613
  int32_t  tlen;
614
  tEncoderInit(&encoder, buf, bufLen);
434,377✔
615

616
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
434,427!
617
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->reqId));
868,938!
618
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->rspId));
868,938!
619
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pBatchRsp->svrTimestamp));
868,938!
620

621
  int32_t rspNum = taosArrayGetSize(pBatchRsp->rsps);
434,469✔
622
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, rspNum));
434,111!
623
  for (int32_t i = 0; i < rspNum; i++) {
1,150,892✔
624
    SClientHbRsp *pRsp = taosArrayGet(pBatchRsp->rsps, i);
716,743✔
625
    TAOS_CHECK_EXIT(tSerializeSClientHbRsp(&encoder, pRsp));
716,228!
626
  }
627
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pBatchRsp->monitorParas));
434,149!
628
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableAuditDelete));
868,560!
629
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableStrongPass));
868,560!
630
  tEndEncode(&encoder);
434,280✔
631

632
_exit:
434,274✔
633
  if (code) {
434,274!
634
    tlen = code;
×
635
  } else {
636
    tlen = encoder.pos;
434,274✔
637
  }
638
  tEncoderClear(&encoder);
434,274✔
639
  return tlen;
434,280✔
640
}
641

642
int32_t tDeserializeSClientHbBatchRsp(void *buf, int32_t bufLen, SClientHbBatchRsp *pBatchRsp) {
55,757✔
643
  SDecoder decoder = {0};
55,757✔
644
  int32_t  code = 0;
55,757✔
645
  int32_t  lino;
646
  tDecoderInit(&decoder, buf, bufLen);
55,757✔
647

648
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
55,757!
649
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->reqId));
111,514✔
650
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->rspId));
111,503!
651
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pBatchRsp->svrTimestamp));
111,501!
652

653
  int32_t rspNum = 0;
55,750✔
654
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &rspNum));
55,750!
655
  if (pBatchRsp->rsps == NULL) {
55,750!
656
    if ((pBatchRsp->rsps = taosArrayInit(rspNum, sizeof(SClientHbRsp))) == NULL) {
55,750!
657
      TAOS_CHECK_EXIT(terrno);
×
658
    }
659
  }
660
  for (int32_t i = 0; i < rspNum; i++) {
225,818✔
661
    SClientHbRsp rsp = {0};
170,072✔
662
    TAOS_CHECK_EXIT(tDeserializeSClientHbRsp(&decoder, &rsp));
170,072!
663
    if (taosArrayPush(pBatchRsp->rsps, &rsp) == NULL) {
340,136!
664
      TAOS_CHECK_EXIT(terrno);
×
665
    }
666
  }
667

668
  if (!tDecodeIsEnd(&decoder)) {
55,746!
669
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pBatchRsp->monitorParas));
55,748!
670
  }
671

672
  if (!tDecodeIsEnd(&decoder)) {
55,747!
673
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableAuditDelete));
111,496!
674
  } else {
675
    pBatchRsp->enableAuditDelete = 0;
×
676
  }
677

678
  if (!tDecodeIsEnd(&decoder)) {
55,745!
679
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableStrongPass));
111,498!
680
  } else {
681
    pBatchRsp->enableStrongPass = 0;
×
682
  }
683

684
  tEndDecode(&decoder);
55,745✔
685

686
_exit:
55,753✔
687
  tDecoderClear(&decoder);
55,753✔
688
  return code;
55,752✔
689
}
690

691
int32_t tSerializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq) {
16,334✔
692
  SEncoder encoder = {0};
16,334✔
693
  int32_t  code = 0;
16,334✔
694
  int32_t  lino;
695
  int32_t  tlen;
696
  tEncoderInit(&encoder, buf, bufLen);
16,334✔
697

698
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16,339!
699
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
32,678!
700
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
32,678!
701
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
32,678!
702
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
114,339✔
703
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
196,000!
704
  }
705
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
32,678!
706
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->delay1));
32,678!
707
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->delay2));
32,678!
708
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark1));
32,678!
709
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark2));
32,678!
710
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
32,678!
711
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->colVer));
32,678!
712
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tagVer));
32,678!
713
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfColumns));
32,678!
714
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTags));
32,678!
715
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
32,678!
716
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
32,678!
717
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ast1Len));
32,678!
718
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ast2Len));
32,678!
719

720
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
500,936✔
721
    SFieldWithOptions *pField = taosArrayGet(pReq->pColumns, i);
484,608✔
722
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
969,194!
723
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
969,194!
724
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
969,194!
725
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
969,194!
726
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
969,194!
727
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->typeMod));
969,194!
728
  }
729

730
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
98,084✔
731
    SField *pField = taosArrayGet(pReq->pTags, i);
81,804✔
732
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
163,512!
733
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
163,512!
734
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
163,512!
735
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
163,512!
736
  }
737

738
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
16,302✔
739
    const char *pFunc = taosArrayGet(pReq->pFuncs, i);
22✔
740
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
22!
741
  }
742

743
  if (pReq->commentLen > 0) {
16,280✔
744
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
108!
745
  }
746
  if (pReq->ast1Len > 0) {
16,280✔
747
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst1, pReq->ast1Len));
12!
748
  }
749
  if (pReq->ast2Len > 0) {
16,280✔
750
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst2, pReq->ast2Len));
12!
751
  }
752
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark1));
32,560!
753
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark2));
32,560!
754
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->keep));
32,560!
755

756
  ENCODESQL();
46,622!
757

758
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->virtualStb));
32,560!
759

760
  tEndEncode(&encoder);
16,280✔
761

762
_exit:
16,334✔
763
  if (code) {
16,334!
764
    tlen = code;
×
765
  } else {
766
    tlen = encoder.pos;
16,334✔
767
  }
768
  tEncoderClear(&encoder);
16,334✔
769
  return tlen;
16,331✔
770
}
771

772
int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq) {
9,475✔
773
  SDecoder decoder = {0};
9,475✔
774
  int32_t  code = 0;
9,475✔
775
  int32_t  lino;
776
  tDecoderInit(&decoder, buf, bufLen);
9,475✔
777

778
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,475!
779
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
9,475!
780
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
18,950!
781
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
18,950!
782
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
66,325✔
783
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
113,700!
784
  }
785
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
18,950!
786
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay1));
18,950!
787
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay2));
18,950!
788
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark1));
18,950!
789
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark2));
18,950!
790
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
18,950!
791
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->colVer));
18,950!
792
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagVer));
18,950!
793
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfColumns));
18,950!
794
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
18,950!
795
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
18,950!
796
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
18,950!
797
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast1Len));
18,950!
798
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast2Len));
18,950!
799

800
  if ((pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SFieldWithOptions))) == NULL) {
9,475!
801
    TAOS_CHECK_EXIT(terrno);
×
802
  }
803
  if ((pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField))) == NULL) {
9,475!
804
    TAOS_CHECK_EXIT(terrno);
×
805
  }
806
  if ((pReq->pFuncs = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN)) == NULL) {
9,475!
807
    TAOS_CHECK_EXIT(terrno);
×
808
  }
809

810
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
276,811✔
811
    SFieldWithOptions field = {0};
267,336✔
812
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
267,336!
813
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
267,336!
814
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
267,336!
815
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
267,336!
816
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
267,336!
817
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.typeMod));
267,336!
818
    if (taosArrayPush(pReq->pColumns, &field) == NULL) {
534,672!
819
      TAOS_CHECK_EXIT(terrno);
×
820
    }
821
  }
822

823
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
67,304✔
824
    SField field = {0};
57,829✔
825
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
57,829!
826
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
57,829!
827
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
57,829!
828
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
57,829!
829
    if (taosArrayPush(pReq->pTags, &field) == NULL) {
115,658!
830
      TAOS_CHECK_EXIT(terrno);
×
831
    }
832
  }
833

834
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
9,481✔
835
    char pFunc[TSDB_FUNC_NAME_LEN] = {0};
6✔
836
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
6!
837
    if (taosArrayPush(pReq->pFuncs, pFunc) == NULL) {
12!
838
      TAOS_CHECK_EXIT(terrno);
×
839
    }
840
  }
841

842
  if (pReq->commentLen > 0) {
9,475✔
843
    pReq->pComment = taosMemoryMalloc(pReq->commentLen + 1);
29!
844
    if (pReq->pComment == NULL) {
29!
845
      TAOS_CHECK_EXIT(terrno);
×
846
    }
847
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
29!
848
  }
849

850
  if (pReq->ast1Len > 0) {
9,475✔
851
    pReq->pAst1 = taosMemoryMalloc(pReq->ast1Len);
4!
852
    if (pReq->pAst1 == NULL) {
4!
853
      TAOS_CHECK_EXIT(terrno);
×
854
    }
855
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst1));
4!
856
  }
857

858
  if (pReq->ast2Len > 0) {
9,475✔
859
    pReq->pAst2 = taosMemoryMalloc(pReq->ast2Len);
4!
860
    if (pReq->pAst2 == NULL) {
4!
861
      TAOS_CHECK_EXIT(terrno);
×
862
    }
863
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst2));
4!
864
  }
865

866
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark1));
18,950!
867
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark2));
18,950!
868
  if (!tDecodeIsEnd(&decoder)) {
9,475!
869
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->keep));
18,950!
870
  }
871

872
  DECODESQL();
26,866!
873

874
  if (!tDecodeIsEnd(&decoder)) {
9,475!
875
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->virtualStb));
18,950!
876
  } else {
877
    pReq->virtualStb = 0;
×
878
  }
879

880
  tEndDecode(&decoder);
9,475✔
881

882
_exit:
9,475✔
883
  tDecoderClear(&decoder);
9,475✔
884
  return code;
9,475✔
885
}
886

887
void tFreeSMCreateStbReq(SMCreateStbReq *pReq) {
19,259✔
888
  taosArrayDestroy(pReq->pColumns);
19,259✔
889
  taosArrayDestroy(pReq->pTags);
19,259✔
890
  taosArrayDestroy(pReq->pFuncs);
19,259✔
891
  taosMemoryFreeClear(pReq->pComment);
19,259!
892
  taosMemoryFreeClear(pReq->pAst1);
19,259!
893
  taosMemoryFreeClear(pReq->pAst2);
19,259!
894
  FREESQL();
19,259!
895
}
19,259✔
896

897
int32_t tSerializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
4,012✔
898
  SEncoder encoder = {0};
4,012✔
899
  int32_t  code = 0;
4,012✔
900
  int32_t  lino;
901
  int32_t  tlen;
902
  tEncoderInit(&encoder, buf, bufLen);
4,012✔
903

904
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,012!
905
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
8,024!
906
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
8,024!
907
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
8,024!
908
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
28,084✔
909
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
48,144!
910
  }
911
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
8,024!
912
  ENCODESQL();
11,800!
913
  tEndEncode(&encoder);
4,012✔
914

915
_exit:
4,012✔
916
  if (code) {
4,012!
917
    tlen = code;
×
918
  } else {
919
    tlen = encoder.pos;
4,012✔
920
  }
921
  tEncoderClear(&encoder);
4,012✔
922
  return tlen;
4,012✔
923
}
924

925
int32_t tDeserializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
2,223✔
926
  SDecoder decoder = {0};
2,223✔
927
  int32_t  code = 0;
2,223✔
928
  int32_t  lino;
929
  tDecoderInit(&decoder, buf, bufLen);
2,223✔
930

931
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,223!
932
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
2,223!
933
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
4,446!
934
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
4,446!
935
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
15,561✔
936
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
26,676!
937
  }
938
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
4,446!
939

940
  DECODESQL();
6,660!
941

942
  tEndDecode(&decoder);
2,223✔
943

944
_exit:
2,223✔
945
  tDecoderClear(&decoder);
2,223✔
946
  return code;
2,223✔
947
}
948

949
void tFreeSMDropStbReq(SMDropStbReq *pReq) { FREESQL(); }
4,022!
950

951
int32_t tSerializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
12,378✔
952
  SEncoder encoder = {0};
12,378✔
953
  int32_t  code = 0;
12,378✔
954
  int32_t  lino;
955
  int32_t  tlen;
956
  tEncoderInit(&encoder, buf, bufLen);
12,378✔
957

958
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12,378!
959
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
24,756!
960
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
24,756!
961
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFields));
24,756!
962

963
  // if (pReq->alterType == )
964
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
25,958✔
965
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
13,580✔
966
      SFieldWithOptions *pField = taosArrayGet(pReq->pFields, i);
484✔
967
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
968!
968
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
968!
969
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
968!
970
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
968!
971

972
    } else {
973
      SField *pField = taosArrayGet(pReq->pFields, i);
13,096✔
974
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
26,192!
975
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
26,192!
976
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
26,192!
977
    }
978
  }
979
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
24,756!
980
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
24,756!
981
  if (pReq->commentLen > 0) {
12,378✔
982
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->comment));
96!
983
  }
984
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->keep));
24,756!
985
  ENCODESQL();
37,068!
986
  if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN ||
12,378✔
987
      pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
7,762✔
988
    if (taosArrayGetSize(pReq->pTypeMods) > 0) {
5,100✔
989
      int8_t hasTypeMod = 1;
5,088✔
990
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, hasTypeMod));
10,176!
991
      for (int32_t i = 0; i < pReq->pTypeMods->size; ++i) {
10,176✔
992
        const STypeMod *pTypeMod = taosArrayGet(pReq->pTypeMods, i);
5,088✔
993
        TAOS_CHECK_ERRNO(tEncodeI32(&encoder, *pTypeMod));
10,176!
994
      }
995
    } else {
996
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, 0));
12!
997
    }
998
  }
999
  tEndEncode(&encoder);
12,378✔
1000

1001
_exit:
12,378✔
1002
  if (code) {
12,378!
1003
    tlen = code;
×
1004
  } else {
1005
    tlen = encoder.pos;
12,378✔
1006
  }
1007
  tEncoderClear(&encoder);
12,378✔
1008
  return tlen;
12,378✔
1009
}
1010

1011
int32_t tDeserializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
6,423✔
1012
  SDecoder decoder = {0};
6,423✔
1013
  int32_t  code = 0;
6,423✔
1014
  int32_t  lino;
1015
  tDecoderInit(&decoder, buf, bufLen);
6,423✔
1016

1017
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6,423!
1018
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
6,423!
1019
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
12,846!
1020
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFields));
12,846!
1021
  pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SField));
6,423✔
1022
  if (pReq->pFields == NULL) {
6,423!
1023
    TAOS_CHECK_EXIT(terrno);
×
1024
  }
1025

1026
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
13,501✔
1027
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
7,078✔
1028
      taosArrayDestroy(pReq->pFields);
242✔
1029
      if ((pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SFieldWithOptions))) == NULL) {
242!
1030
        TAOS_CHECK_EXIT(terrno);
×
1031
      }
1032
      SFieldWithOptions field = {0};
242✔
1033
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
242!
1034
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
242!
1035
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
242!
1036
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
242!
1037
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
484!
1038
        TAOS_CHECK_EXIT(terrno);
×
1039
      }
1040
    } else {
1041
      SField field = {0};
6,836✔
1042
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
6,836!
1043
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
6,836!
1044
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
6,836!
1045
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
13,672!
1046
        TAOS_CHECK_EXIT(terrno);
×
1047
      }
1048
    }
1049
  }
1050

1051
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
12,846!
1052
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
12,846!
1053
  if (pReq->commentLen > 0) {
6,423✔
1054
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
25!
1055
    if (pReq->comment == NULL) {
25!
1056
      TAOS_CHECK_EXIT(terrno);
×
1057
    }
1058
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->comment));
25!
1059
  }
1060
  if (!tDecodeIsEnd(&decoder)) {
6,423!
1061
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->keep));
12,846!
1062
  }
1063
  DECODESQL();
19,236!
1064
  if (!tDecodeIsEnd(&decoder) && (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN ||
6,423✔
1065
                                  pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION)) {
242!
1066
    int8_t hasTypeMod = 0;
2,580✔
1067
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &hasTypeMod));
2,580!
1068
    if (hasTypeMod == 1) {
2,580✔
1069
      pReq->pTypeMods = taosArrayInit(pReq->numOfFields, sizeof(STypeMod));
2,574✔
1070
      if (!pReq->pTypeMods) {
2,574!
1071
        TAOS_CHECK_EXIT(terrno);
×
1072
      }
1073
      for (int32_t i = 0; i < pReq->numOfFields; ++i) {
5,148✔
1074
        STypeMod typeMod = 0;
2,574✔
1075
        TAOS_CHECK_EXIT(tDecodeI32(&decoder, &typeMod));
2,574!
1076
        if (taosArrayPush(pReq->pTypeMods, &typeMod) == NULL) {
5,148!
1077
          TAOS_CHECK_EXIT(terrno);
×
1078
        }
1079
      }
1080
    }
1081
  }
1082
  tEndDecode(&decoder);
6,423✔
1083

1084
_exit:
6,423✔
1085
  tDecoderClear(&decoder);
6,423✔
1086
  return code;
6,423✔
1087
}
1088

1089
void tFreeSMAltertbReq(SMAlterStbReq *pReq) {
14,330✔
1090
  taosArrayDestroy(pReq->pFields);
14,330✔
1091
  pReq->pFields = NULL;
14,330✔
1092
  taosMemoryFreeClear(pReq->comment);
14,330!
1093
  FREESQL();
14,330!
1094
  taosArrayDestroy(pReq->pTypeMods);
14,330✔
1095
}
14,330✔
1096

1097
int32_t tSerializeSEpSet(void *buf, int32_t bufLen, const SEpSet *pEpset) {
164,255✔
1098
  SEncoder encoder = {0};
164,255✔
1099
  int32_t  code = 0;
164,255✔
1100
  int32_t  lino;
1101
  int32_t  tlen;
1102
  tEncoderInit(&encoder, buf, bufLen);
164,255✔
1103

1104
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
164,338!
1105
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpset));
164,348!
1106

1107
  tEndEncode(&encoder);
164,340✔
1108

1109
_exit:
164,336✔
1110
  if (code) {
164,336!
1111
    tlen = code;
×
1112
  } else {
1113
    tlen = encoder.pos;
164,336✔
1114
  }
1115
  tEncoderClear(&encoder);
164,336✔
1116
  return tlen;
164,336✔
1117
}
1118

1119
int32_t tDeserializeSEpSet(void *buf, int32_t bufLen, SEpSet *pEpset) {
114,526✔
1120
  SDecoder decoder = {0};
114,526✔
1121
  int32_t  code = 0;
114,526✔
1122
  int32_t  lino;
1123

1124
  tDecoderInit(&decoder, buf, bufLen);
114,526✔
1125

1126
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
114,531✔
1127
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, pEpset));
77,749!
1128

1129
  tEndDecode(&decoder);
77,749✔
1130
_exit:
114,530✔
1131
  tDecoderClear(&decoder);
114,530✔
1132
  return code;
114,531✔
1133
}
1134

1135
int32_t tSerializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
380✔
1136
  SEncoder encoder = {0};
380✔
1137
  int32_t  code = 0;
380✔
1138
  int32_t  lino;
1139
  int32_t  tlen;
1140
  tEncoderInit(&encoder, buf, bufLen);
380✔
1141

1142
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
380!
1143
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
760!
1144
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
760!
1145
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
760!
1146
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->intervalUnit));
760!
1147
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->slidingUnit));
760!
1148
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->timezone));
760!
1149
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
760!
1150
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->interval));
760!
1151
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->offset));
760!
1152
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->sliding));
760!
1153
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark));
760!
1154
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->maxDelay));
760!
1155
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->exprLen));
760!
1156
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tagsFilterLen));
760!
1157
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
760!
1158
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->astLen));
760!
1159
  if (pReq->exprLen > 0) {
380!
1160
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->expr, pReq->exprLen));
760!
1161
  }
1162
  if (pReq->tagsFilterLen > 0) {
380!
1163
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->tagsFilter, pReq->tagsFilterLen));
×
1164
  }
1165
  if (pReq->sqlLen > 0) {
380!
1166
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->sql, pReq->sqlLen));
760!
1167
  }
1168
  if (pReq->astLen > 0) {
380!
1169
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->ast, pReq->astLen));
760!
1170
  }
1171
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark));
760!
1172
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastTs));
760!
1173
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->normSourceTbUid));
760!
1174
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->pVgroupVerList)));
760!
1175

1176
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
1,592✔
1177
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
1,212✔
1178
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
2,424!
1179
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
2,424!
1180
  }
1181
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->recursiveTsma));
760!
1182
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->baseTsmaName));
760!
1183
  tEndEncode(&encoder);
380✔
1184

1185
_exit:
380✔
1186
  if (code) {
380!
1187
    tlen = code;
×
1188
  } else {
1189
    tlen = encoder.pos;
380✔
1190
  }
1191
  tEncoderClear(&encoder);
380✔
1192
  return tlen;
380✔
1193
}
1194

1195
int32_t tDeserializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
114✔
1196
  SDecoder decoder = {0};
114✔
1197
  int32_t  code = 0;
114✔
1198
  int32_t  lino;
1199
  tDecoderInit(&decoder, buf, bufLen);
114✔
1200

1201
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
114!
1202
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
114!
1203
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
114!
1204
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
228!
1205
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->intervalUnit));
228!
1206
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->slidingUnit));
228!
1207
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->timezone));
228!
1208
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
228!
1209
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->interval));
228!
1210
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->offset));
228!
1211
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->sliding));
228!
1212
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
228!
1213
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
228!
1214
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->exprLen));
228!
1215
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagsFilterLen));
228!
1216
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
228!
1217
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->astLen));
228!
1218
  if (pReq->exprLen > 0) {
114!
1219
    pReq->expr = taosMemoryMalloc(pReq->exprLen);
114!
1220
    if (pReq->expr == NULL) {
114!
1221
      TAOS_CHECK_EXIT(terrno);
×
1222
    }
1223
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->expr));
114!
1224
  }
1225
  if (pReq->tagsFilterLen > 0) {
114!
1226
    pReq->tagsFilter = taosMemoryMalloc(pReq->tagsFilterLen);
×
1227
    if (pReq->tagsFilter == NULL) {
×
1228
      TAOS_CHECK_EXIT(terrno);
×
1229
    }
1230
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tagsFilter));
×
1231
  }
1232
  if (pReq->sqlLen > 0) {
114!
1233
    pReq->sql = taosMemoryMalloc(pReq->sqlLen);
114!
1234
    if (pReq->sql == NULL) {
114!
1235
      TAOS_CHECK_EXIT(terrno);
×
1236
    }
1237
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
114!
1238
  }
1239
  if (pReq->astLen > 0) {
114!
1240
    pReq->ast = taosMemoryMalloc(pReq->astLen);
114!
1241
    if (pReq->ast == NULL) {
114!
1242
      TAOS_CHECK_EXIT(terrno);
×
1243
    }
1244
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
114!
1245
  }
1246
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
228!
1247
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
228!
1248
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->normSourceTbUid));
228!
1249

1250
  int32_t numOfVgVer;
1251
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
114!
1252
  if (numOfVgVer > 0) {
114✔
1253
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
105✔
1254
    if (pReq->pVgroupVerList == NULL) {
105!
1255
      TAOS_CHECK_EXIT(terrno);
×
1256
    }
1257

1258
    for (int32_t i = 0; i < numOfVgVer; ++i) {
515✔
1259
      SVgroupVer v = {0};
410✔
1260
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
410!
1261
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
410!
1262
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
820!
1263
        TAOS_CHECK_EXIT(terrno);
×
1264
      }
1265
    }
1266
  }
1267
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->recursiveTsma));
228!
1268
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->baseTsmaName));
114!
1269
  tEndDecode(&decoder);
114✔
1270

1271
_exit:
114✔
1272
  tDecoderClear(&decoder);
114✔
1273
  return code;
114✔
1274
}
1275

1276
void tFreeSMCreateSmaReq(SMCreateSmaReq *pReq) {
447✔
1277
  taosMemoryFreeClear(pReq->expr);
447!
1278
  taosMemoryFreeClear(pReq->tagsFilter);
447!
1279
  taosMemoryFreeClear(pReq->sql);
447!
1280
  taosMemoryFreeClear(pReq->ast);
447!
1281
  taosArrayDestroy(pReq->pVgroupVerList);
447✔
1282
}
447✔
1283

1284
int32_t tSerializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
346✔
1285
  SEncoder encoder = {0};
346✔
1286
  int32_t  code = 0;
346✔
1287
  int32_t  lino;
1288
  int32_t  tlen;
1289
  tEncoderInit(&encoder, buf, bufLen);
346✔
1290

1291
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
346!
1292
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
692!
1293
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
692!
1294

1295
  tEndEncode(&encoder);
346✔
1296

1297
_exit:
346✔
1298
  if (code) {
346!
1299
    tlen = code;
×
1300
  } else {
1301
    tlen = encoder.pos;
346✔
1302
  }
1303
  tEncoderClear(&encoder);
346✔
1304
  return tlen;
346✔
1305
}
1306

1307
int32_t tDeserializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
1,169✔
1308
  SDecoder decoder = {0};
1,169✔
1309
  int32_t  code = 0;
1,169✔
1310
  int32_t  lino;
1311
  tDecoderInit(&decoder, buf, bufLen);
1,169✔
1312

1313
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,169!
1314
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,169!
1315
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,338!
1316
  tEndDecode(&decoder);
1,169✔
1317

1318
_exit:
1,169✔
1319
  tDecoderClear(&decoder);
1,169✔
1320
  return code;
1,169✔
1321
}
1322

1323
int32_t tSerializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
56✔
1324
  SEncoder encoder = {0};
56✔
1325
  int32_t  code = 0;
56✔
1326
  int32_t  lino;
1327
  int32_t  tlen;
1328
  tEncoderInit(&encoder, buf, bufLen);
56✔
1329

1330
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
56!
1331
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
112!
1332
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stbName));
112!
1333
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
112!
1334
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->idxName));
112!
1335
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->idxType));
112!
1336

1337
  tEndEncode(&encoder);
56✔
1338

1339
_exit:
56✔
1340
  if (code) {
56!
1341
    tlen = code;
×
1342
  } else {
1343
    tlen = encoder.pos;
56✔
1344
  }
1345
  tEncoderClear(&encoder);
56✔
1346
  return tlen;
56✔
1347
}
1348

1349
int32_t tDeserializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
492✔
1350
  SDecoder decoder = {0};
492✔
1351
  int32_t  code = 0;
492✔
1352
  int32_t  lino;
1353
  tDecoderInit(&decoder, buf, bufLen);
492✔
1354

1355
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
492!
1356
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
492!
1357
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stbName));
492!
1358
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
492!
1359
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->idxName));
492!
1360
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->idxType));
984!
1361

1362
  tEndDecode(&decoder);
492✔
1363
_exit:
492✔
1364
  tDecoderClear(&decoder);
492✔
1365
  return code;
492✔
1366
}
1367

1368
int32_t tDeserializeSDropTagIdxReq(void *buf, int32_t bufLen, SDropTagIndexReq *pReq) {
1,076✔
1369
  SDecoder decoder = {0};
1,076✔
1370
  int32_t  code = 0;
1,076✔
1371
  int32_t  lino;
1372
  tDecoderInit(&decoder, buf, bufLen);
1,076✔
1373

1374
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,076!
1375
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,076!
1376
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,152!
1377

1378
  tEndDecode(&decoder);
1,076✔
1379
_exit:
1,076✔
1380
  tDecoderClear(&decoder);
1,076✔
1381
  return code;
1,076✔
1382
}
1383

1384
int32_t tSerializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1385
  SEncoder encoder = {0};
×
1386
  int32_t  code = 0;
×
1387
  int32_t  lino;
1388
  int32_t  tlen;
1389
  tEncoderInit(&encoder, buf, bufLen);
×
1390

1391
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1392

1393
  tEndEncode(&encoder);
×
1394
_exit:
×
1395
  if (code) {
×
1396
    tlen = code;
×
1397
  } else {
1398
    tlen = encoder.pos;
×
1399
  }
1400
  tEncoderClear(&encoder);
×
1401
  return tlen;
×
1402
}
1403

1404
int32_t tDeserializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1405
  SDecoder decoder = {0};
×
1406
  int32_t  code = 0;
×
1407
  int32_t  lino;
1408
  tDecoderInit(&decoder, buf, bufLen);
×
1409
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1410
  tEndDecode(&decoder);
×
1411
_exit:
×
1412
  tDecoderClear(&decoder);
×
1413
  return code;
×
1414
}
1415
void tFreeSMCreateFullTextReq(SMCreateFullTextReq *pReq) {
×
1416
  // impl later
1417
  return;
×
1418
}
1419

1420
int32_t tSerializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
10✔
1421
  SEncoder encoder = {0};
10✔
1422
  int32_t  code = 0;
10✔
1423
  int32_t  lino;
1424
  int32_t  tlen;
1425
  tEncoderInit(&encoder, buf, bufLen);
10✔
1426

1427
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
1428
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
20!
1429
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
20!
1430

1431
  int32_t nVgroup = taosArrayGetSize(pReq->pVloads);
10✔
1432
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, nVgroup));
10!
1433
  for (int32_t i = 0; i < nVgroup; ++i) {
10!
1434
    SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1435
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, vload->vgId));
×
1436
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, vload->nTimeSeries));
×
1437
  }
1438

1439
  tEndEncode(&encoder);
10✔
1440

1441
_exit:
10✔
1442
  if (code) {
10!
1443
    tlen = code;
×
1444
  } else {
1445
    tlen = encoder.pos;
10✔
1446
  }
1447
  tEncoderClear(&encoder);
10✔
1448
  return tlen;
10✔
1449
}
1450

1451
int32_t tDeserializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1452
  int32_t  code = 0;
×
1453
  int32_t  lino;
1454
  SDecoder decoder = {0};
×
1455
  tDecoderInit(&decoder, buf, bufLen);
×
1456

1457
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1458
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
1459
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
×
1460
  int32_t nVgroup = 0;
×
1461
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nVgroup));
×
1462
  if (nVgroup > 0) {
×
1463
    pReq->pVloads = taosArrayInit_s(sizeof(SVnodeLoadLite), nVgroup);
×
1464
    if (!pReq->pVloads) {
×
1465
      TAOS_CHECK_EXIT(terrno);
×
1466
    }
1467
    for (int32_t i = 0; i < nVgroup; ++i) {
×
1468
      SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1469
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &(vload->vgId)));
×
1470
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &(vload->nTimeSeries)));
×
1471
    }
1472
  }
1473

1474
  tEndDecode(&decoder);
×
1475

1476
_exit:
×
1477
  tDecoderClear(&decoder);
×
1478
  return code;
×
1479
}
1480

1481
void tFreeSNotifyReq(SNotifyReq *pReq) {
5✔
1482
  if (pReq) {
5!
1483
    taosArrayDestroy(pReq->pVloads);
5✔
1484
  }
1485
}
5✔
1486

1487
int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
279,424✔
1488
  SEncoder encoder = {0};
279,424✔
1489
  int32_t  code = 0;
279,424✔
1490
  int32_t  lino;
1491
  int32_t  tlen;
1492
  tEncoderInit(&encoder, buf, bufLen);
279,424✔
1493

1494
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
279,424!
1495

1496
  // status
1497
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sver));
558,848!
1498
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dnodeVer));
558,848!
1499
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
558,848!
1500
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
558,848!
1501
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->rebootTime));
558,848!
1502
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->updateTime));
558,848!
1503
  TAOS_CHECK_EXIT(tEncodeFloat(&encoder, pReq->numOfCores));
558,848!
1504
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfSupportVnodes));
558,848!
1505
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->numOfDiskCfg));
558,848!
1506
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memTotal));
558,848!
1507
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memAvail));
558,848!
1508
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeEp));
558,848!
1509
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
558,848!
1510

1511
  // cluster cfg
1512
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->clusterCfg.statusInterval));
558,848!
1513
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterCfg.checkTime));
558,848!
1514
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.timezone));
558,848!
1515
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.locale));
558,848!
1516
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.charset));
558,848!
1517
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.enableWhiteList));
558,848!
1518
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.encryptionKeyStat));
558,848!
1519
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->clusterCfg.encryptionKeyChksum));
558,848!
1520

1521
  // vnode loads
1522
  int32_t vlen = (int32_t)taosArrayGetSize(pReq->pVloads);
279,424✔
1523
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, vlen));
279,424!
1524
  for (int32_t i = 0; i < vlen; ++i) {
1,801,224✔
1525
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
1,521,800✔
1526
    int64_t     reserved = 0;
1,521,800✔
1527
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->vgId));
3,043,600!
1528
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncState));
3,043,600!
1529
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncRestore));
3,043,600!
1530
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncCanRead));
3,043,600!
1531
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->cacheUsage));
3,043,600!
1532
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTables));
3,043,600!
1533
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTimeSeries));
3,043,600!
1534
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->totalStorage));
3,043,600!
1535
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->compStorage));
3,043,600!
1536
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->pointsWritten));
3,043,600!
1537
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->numOfCachedTables));
3,043,600!
1538
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->learnerProgress));
3,043,600!
1539
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->roleTimeMs));
3,043,600!
1540
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->startTimeMs));
3,043,600!
1541
  }
1542

1543
  // mnode loads
1544
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncState));
558,848!
1545
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncRestore));
558,848!
1546

1547
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->qload.dnodeId));
558,848!
1548
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedQuery));
558,848!
1549
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedCQuery));
558,848!
1550
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedFetch));
558,848!
1551
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDrop));
558,848!
1552
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedNotify));
558,848!
1553
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedHb));
558,848!
1554
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDelete));
558,848!
1555
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.cacheDataSize));
558,848!
1556
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfQueryInQueue));
558,848!
1557
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfFetchInQueue));
558,848!
1558
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInQueryQueue));
558,848!
1559
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInFetchQueue));
558,848!
1560

1561
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->statusSeq));
558,848!
1562
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.syncTerm));
558,848!
1563
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.roleTimeMs));
558,848!
1564
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.ttlChangeOnWrite));
558,848!
1565

1566
  // vnode extra
1567
  for (int32_t i = 0; i < vlen; ++i) {
1,801,224✔
1568
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
1,521,800✔
1569
    int64_t     reserved = 0;
1,521,800✔
1570
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncTerm));
3,043,600!
1571
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
1,521,800!
1572
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
1,521,800!
1573
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
1,521,800!
1574
  }
1575

1576
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
558,848!
1577
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
558,848!
1578
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pReq->clusterCfg.monitorParas));
279,424!
1579

1580
  for (int32_t i = 0; i < vlen; ++i) {
1,801,224✔
1581
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
1,521,800✔
1582
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncAppliedIndex));
3,043,600!
1583
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncCommitIndex));
3,043,600!
1584
  }
1585
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
558,848!
1586

1587
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
558,848!
1588

1589
  // Encode buffer info
1590
  for (int32_t i = 0; i < vlen; ++i) {
1,801,224✔
1591
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
1,521,800✔
1592
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->bufferSegmentUsed));
3,043,600!
1593
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->bufferSegmentSize));
3,043,600!
1594
  }
1595

1596
  tEndEncode(&encoder);
279,424✔
1597

1598
_exit:
279,424✔
1599
  if (code) {
279,424!
1600
    tlen = code;
×
1601
  } else {
1602
    tlen = encoder.pos;
279,424✔
1603
  }
1604
  tEncoderClear(&encoder);
279,424✔
1605
  return tlen;
279,424✔
1606
}
1607

1608
int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
137,340✔
1609
  SDecoder decoder = {0};
137,340✔
1610
  int32_t  code = 0;
137,340✔
1611
  int32_t  lino;
1612
  tDecoderInit(&decoder, buf, bufLen);
137,340✔
1613

1614
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
137,340!
1615

1616
  // status
1617
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sver));
274,680!
1618
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dnodeVer));
274,680!
1619
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
274,680!
1620
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
274,680!
1621
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->rebootTime));
274,680!
1622
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->updateTime));
274,680!
1623
  TAOS_CHECK_EXIT(tDecodeFloat(&decoder, &pReq->numOfCores));
274,680!
1624
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfSupportVnodes));
274,680!
1625
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->numOfDiskCfg));
274,680!
1626
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memTotal));
274,680!
1627
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memAvail));
274,680!
1628
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeEp));
137,340!
1629
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
137,340!
1630

1631
  // cluster cfg
1632
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->clusterCfg.statusInterval));
274,680!
1633
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterCfg.checkTime));
274,680!
1634
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.timezone));
137,340!
1635
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.locale));
137,340!
1636
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.charset));
137,340!
1637
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.enableWhiteList));
274,680!
1638
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.encryptionKeyStat));
274,680!
1639
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->clusterCfg.encryptionKeyChksum));
274,680!
1640

1641
  // vnode loads
1642
  int32_t vlen = 0;
137,340✔
1643
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vlen));
137,340!
1644
  pReq->pVloads = taosArrayInit(vlen, sizeof(SVnodeLoad));
137,340✔
1645
  if (pReq->pVloads == NULL) {
137,340!
1646
    TAOS_CHECK_EXIT(terrno);
×
1647
  }
1648

1649
  for (int32_t i = 0; i < vlen; ++i) {
894,885✔
1650
    SVnodeLoad vload = {0};
757,545✔
1651
    vload.syncTerm = -1;
757,545✔
1652

1653
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.vgId));
757,545!
1654
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncState));
757,545!
1655
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncRestore));
757,545!
1656
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncCanRead));
757,545!
1657
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.cacheUsage));
757,545!
1658
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTables));
757,545!
1659
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTimeSeries));
757,545!
1660
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.totalStorage));
757,545!
1661
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.compStorage));
757,545!
1662
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.pointsWritten));
757,545!
1663
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.numOfCachedTables));
757,545!
1664
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.learnerProgress));
757,545!
1665
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.roleTimeMs));
757,545!
1666
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.startTimeMs));
757,545!
1667
    if (taosArrayPush(pReq->pVloads, &vload) == NULL) {
1,515,090!
1668
      TAOS_CHECK_EXIT(terrno);
×
1669
    }
1670
  }
1671

1672
  // mnode loads
1673
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncState));
274,680!
1674
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncRestore));
274,680!
1675
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->qload.dnodeId));
274,680!
1676
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedQuery));
274,680!
1677
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedCQuery));
274,680!
1678
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedFetch));
274,680!
1679
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDrop));
274,680!
1680
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedNotify));
274,680!
1681
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedHb));
274,680!
1682
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDelete));
274,680!
1683
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.cacheDataSize));
274,680!
1684
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfQueryInQueue));
274,680!
1685
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfFetchInQueue));
274,680!
1686
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInQueryQueue));
274,680!
1687
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInFetchQueue));
274,680!
1688
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->statusSeq));
274,680!
1689

1690
  pReq->mload.syncTerm = -1;
137,340✔
1691
  pReq->mload.roleTimeMs = 0;
137,340✔
1692
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1693
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.syncTerm));
274,680!
1694
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.roleTimeMs));
274,680!
1695
  }
1696

1697
  pReq->clusterCfg.ttlChangeOnWrite = false;
137,340✔
1698
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1699
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.ttlChangeOnWrite));
274,680!
1700
  }
1701

1702
  // vnode extra
1703
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1704
    for (int32_t i = 0; i < vlen; ++i) {
894,885✔
1705
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
757,545✔
1706
      int64_t     reserved = 0;
757,545✔
1707
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncTerm));
1,515,090!
1708
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
757,545!
1709
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
757,545!
1710
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
757,545!
1711
    }
1712
  }
1713
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1714
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
274,680!
1715
  }
1716

1717
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1718
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
274,680!
1719
  }
1720

1721
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1722
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pReq->clusterCfg.monitorParas));
137,340!
1723
  }
1724

1725
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1726
    for (int32_t i = 0; i < vlen; ++i) {
894,885✔
1727
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
757,545✔
1728
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncAppliedIndex));
1,515,090!
1729
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncCommitIndex));
1,515,090!
1730
    }
1731
  }
1732

1733
  if (!tDecodeIsEnd(&decoder)) {
137,340!
1734
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
274,680!
1735
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
274,680!
1736
  }
1737

1738
  // Decode buffer info
1739
  if (!tDecodeIsEnd(&decoder)) {
137,340✔
1740
    for (int32_t i = 0; i < vlen; ++i) {
863,970✔
1741
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
757,545✔
1742
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->bufferSegmentUsed));
1,515,090!
1743
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->bufferSegmentSize));
1,515,090!
1744
    }
1745
  }
1746

1747
  tEndDecode(&decoder);
137,340✔
1748

1749
_exit:
137,340✔
1750
  tDecoderClear(&decoder);
137,340✔
1751
  return code;
137,340✔
1752
}
1753

1754
void tFreeSStatusReq(SStatusReq *pReq) { taosArrayDestroy(pReq->pVloads); }
139,712✔
1755

1756
int32_t tSerializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
6,484✔
1757
  SEncoder encoder = {0};
6,484✔
1758
  int32_t  code = 0;
6,484✔
1759
  int32_t  lino;
1760
  int32_t  tlen;
1761
  tEncoderInit(&encoder, buf, bufLen);
6,484✔
1762
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,484!
1763
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cver));
12,968!
1764
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->forceReadConfig));
12,968!
1765
  if (pReq->forceReadConfig) {
6,484✔
1766
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pReq->array));
6!
1767
  }
1768
  tEndEncode(&encoder);
6,484✔
1769
_exit:
6,484✔
1770
  if (code) {
6,484!
1771
    tlen = code;
×
1772
  } else {
1773
    tlen = encoder.pos;
6,484✔
1774
  }
1775
  tEncoderClear(&encoder);
6,484✔
1776
  return tlen;
6,484✔
1777
}
1778

1779
int32_t tDeserializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
3,206✔
1780
  SDecoder decoder = {0};
3,206✔
1781
  int32_t  code = 0;
3,206✔
1782
  int32_t  lino;
1783
  tDecoderInit(&decoder, buf, bufLen);
3,206✔
1784
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,206!
1785
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cver));
6,412!
1786
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->forceReadConfig));
6,412!
1787
  if (pReq->forceReadConfig) {
3,206✔
1788
    pReq->array = taosArrayInit(128, sizeof(SConfigItem));
3✔
1789
    if (pReq->array == NULL) {
3!
1790
      TAOS_CHECK_EXIT(terrno);
×
1791
    }
1792
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pReq->array));
3!
1793
  }
1794
  tEndDecode(&decoder);
3,206✔
1795
_exit:
3,206✔
1796
  tDecoderClear(&decoder);
3,206✔
1797
  return code;
3,206✔
1798
}
1799

1800
void tFreeSConfigReq(SConfigReq *pReq) { taosArrayDestroy(pReq->array); }
3,206✔
1801

1802
int32_t tSerializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
6,412✔
1803
  SEncoder encoder = {0};
6,412✔
1804
  int32_t  code = 0;
6,412✔
1805
  int32_t  lino;
1806
  int32_t  tlen;
1807
  tEncoderInit(&encoder, buf, bufLen);
6,412✔
1808
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,412!
1809
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->forceReadConfig));
12,824!
1810
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isConifgVerified));
12,824!
1811
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isVersionVerified));
12,824!
1812
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->cver));
12,824!
1813
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
6,412!
1814
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pRsp->array));
6,412!
1815
  }
1816
  tEndEncode(&encoder);
6,412✔
1817
_exit:
6,412✔
1818
  if (code) {
6,412!
1819
    tlen = code;
×
1820
  } else {
1821
    tlen = encoder.pos;
6,412✔
1822
  }
1823
  tEncoderClear(&encoder);
6,412✔
1824
  return tlen;
6,412✔
1825
}
1826

1827
int32_t tDeserializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
3,189✔
1828
  SDecoder decoder = {0};
3,189✔
1829
  int32_t  code = 0;
3,189✔
1830
  int32_t  lino;
1831
  tDecoderInit(&decoder, buf, bufLen);
3,189✔
1832
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,189!
1833
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->forceReadConfig));
6,378!
1834
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isConifgVerified));
6,378!
1835
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isVersionVerified));
6,378!
1836
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->cver));
6,378!
1837
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
3,189!
1838
    pRsp->array = taosArrayInit(128, sizeof(SConfigItem));
3,189✔
1839
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pRsp->array));
3,189!
1840
  }
1841
_exit:
3,189✔
1842
  tEndDecode(&decoder);
3,189✔
1843
  tDecoderClear(&decoder);
3,189✔
1844
  return code;
3,189✔
1845
}
1846

1847
void tFreeSConfigRsp(SConfigRsp *pRsp) { taosArrayDestroy(pRsp->array); }
3,189✔
1848

1849
int32_t tSerializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
10,828✔
1850
  int32_t  code = 0, lino = 0;
10,828✔
1851
  int32_t  tlen = 0;
10,828✔
1852
  SEncoder encoder = {0};
10,828✔
1853
  tEncoderInit(&encoder, buf, bufLen);
10,828✔
1854

1855
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10,828!
1856
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
21,656!
1857
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
21,656!
1858

1859
  tEndEncode(&encoder);
10,828✔
1860

1861
  tlen = encoder.pos;
10,828✔
1862
_exit:
10,828✔
1863
  tEncoderClear(&encoder);
10,828✔
1864
  return code < 0 ? code : tlen;
10,828!
1865
}
1866

1867
int32_t tDeserializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
5,411✔
1868
  int32_t  code = 0, lino = 0;
5,411✔
1869
  SDecoder decoder = {0};
5,411✔
1870
  tDecoderInit(&decoder, buf, bufLen);
5,411✔
1871

1872
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,411!
1873
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
10,822!
1874
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
5,411!
1875

1876
_exit:
5,411✔
1877
  tEndDecode(&decoder);
5,411✔
1878
  tDecoderClear(&decoder);
5,411✔
1879
  return code;
5,411✔
1880
}
1881

1882
int32_t tSerializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
24,896✔
1883
  SEncoder encoder = {0};
24,896✔
1884
  int32_t  code = 0;
24,896✔
1885
  int32_t  lino;
1886
  int32_t  tlen;
1887
  tEncoderInit(&encoder, buf, bufLen);
24,896✔
1888

1889
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
24,896!
1890

1891
  // status
1892
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeVer));
49,792!
1893

1894
  // dnode cfg
1895
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeCfg.dnodeId));
49,792!
1896
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeCfg.clusterId));
49,792!
1897

1898
  // dnode eps
1899
  int32_t dlen = (int32_t)taosArrayGetSize(pRsp->pDnodeEps);
24,896✔
1900
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, dlen));
24,896!
1901
  for (int32_t i = 0; i < dlen; ++i) {
98,830✔
1902
    SDnodeEp *pDnodeEp = taosArrayGet(pRsp->pDnodeEps, i);
73,934✔
1903
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pDnodeEp->id));
147,868!
1904
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pDnodeEp->isMnode));
147,868!
1905
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pDnodeEp->ep.fqdn));
147,868!
1906
    TAOS_CHECK_EXIT(tEncodeU16(&encoder, pDnodeEp->ep.port));
147,868!
1907
  }
1908

1909
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusSeq));
49,792!
1910

1911
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ipWhiteVer));
49,792!
1912
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->analVer));
49,792!
1913
  tEndEncode(&encoder);
24,896✔
1914

1915
_exit:
24,896✔
1916
  if (code) {
24,896!
1917
    tlen = code;
×
1918
  } else {
1919
    tlen = encoder.pos;
24,896✔
1920
  }
1921
  tEncoderClear(&encoder);
24,896✔
1922
  return tlen;
24,896✔
1923
}
1924

1925
int32_t tDeserializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
12,399✔
1926
  SDecoder decoder = {0};
12,399✔
1927
  int32_t  code = 0;
12,399✔
1928
  int32_t  lino;
1929
  tDecoderInit(&decoder, buf, bufLen);
12,399✔
1930

1931
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12,399!
1932

1933
  // status
1934
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeVer));
24,798!
1935

1936
  // cluster cfg
1937
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeCfg.dnodeId));
24,798!
1938
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeCfg.clusterId));
24,798!
1939

1940
  // dnode eps
1941
  int32_t dlen = 0;
12,399✔
1942
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dlen));
12,399!
1943
  pRsp->pDnodeEps = taosArrayInit(dlen, sizeof(SDnodeEp));
12,399✔
1944
  if (pRsp->pDnodeEps == NULL) {
12,399!
1945
    TAOS_CHECK_EXIT(terrno);
×
1946
  }
1947

1948
  for (int32_t i = 0; i < dlen; ++i) {
48,939✔
1949
    SDnodeEp dnodeEp = {0};
36,540✔
1950
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dnodeEp.id));
36,540!
1951
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &dnodeEp.isMnode));
36,540!
1952
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, dnodeEp.ep.fqdn));
36,540!
1953
    TAOS_CHECK_EXIT(tDecodeU16(&decoder, &dnodeEp.ep.port));
36,540!
1954
    if (taosArrayPush(pRsp->pDnodeEps, &dnodeEp) == NULL) {
73,080!
1955
      TAOS_CHECK_EXIT(terrno);
×
1956
    }
1957
  }
1958

1959
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusSeq));
24,798!
1960

1961
  if (!tDecodeIsEnd(&decoder)) {
12,399!
1962
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ipWhiteVer));
24,798!
1963
  }
1964

1965
  if (!tDecodeIsEnd(&decoder)) {
12,399!
1966
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->analVer));
24,798!
1967
  }
1968

1969
  tEndDecode(&decoder);
12,399✔
1970
_exit:
12,399✔
1971
  tDecoderClear(&decoder);
12,399✔
1972
  return code;
12,399✔
1973
}
1974

1975
void tFreeSStatusRsp(SStatusRsp *pRsp) { taosArrayDestroy(pRsp->pDnodeEps); }
138,956✔
1976

1977
int32_t tSerializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
1,302✔
1978
  SEncoder encoder = {0};
1,302✔
1979
  int32_t  code = 0;
1,302✔
1980
  int32_t  lino;
1981
  int32_t  tlen;
1982
  tEncoderInit(&encoder, buf, bufLen);
1,302✔
1983

1984
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,302!
1985
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->contLen));
2,604!
1986
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pCont));
2,604!
1987
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->type));
2,604!
1988

1989
  tEndEncode(&encoder);
1,302✔
1990

1991
_exit:
1,302✔
1992
  if (code) {
1,302!
1993
    tlen = code;
×
1994
  } else {
1995
    tlen = encoder.pos;
1,302✔
1996
  }
1997
  tEncoderClear(&encoder);
1,302✔
1998
  return tlen;
1,302✔
1999
}
2000

2001
int32_t tDeserializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
5,984✔
2002
  SDecoder decoder = {0};
5,984✔
2003
  int32_t  code = 0;
5,984✔
2004
  int32_t  lino;
2005
  tDecoderInit(&decoder, buf, bufLen);
5,984✔
2006

2007
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,984!
2008
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->contLen));
11,968!
2009
  if (pReq->contLen > 0) {
5,984!
2010
    pReq->pCont = taosMemoryMalloc(pReq->contLen + 1);
5,984!
2011
    if (pReq->pCont == NULL) {
5,984!
2012
      TAOS_CHECK_EXIT(terrno);
×
2013
    }
2014
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCont));
5,984!
2015
  }
2016
  if (!tDecodeIsEnd(&decoder)) {
5,984!
2017
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->type));
11,968!
2018
  }
2019
  tEndDecode(&decoder);
5,984✔
2020
_exit:
5,984✔
2021
  tDecoderClear(&decoder);
5,984✔
2022
  return code;
5,984✔
2023
}
2024

2025
void tFreeSStatisReq(SStatisReq *pReq) { taosMemoryFreeClear(pReq->pCont); }
5,984!
2026

2027
int32_t tSerializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
376✔
2028
  SEncoder encoder = {0};
376✔
2029
  int32_t  code = 0;
376✔
2030
  int32_t  lino;
2031
  int32_t  tlen;
2032
  tEncoderInit(&encoder, buf, bufLen);
376✔
2033

2034
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
376!
2035
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
752!
2036
  ENCODESQL();
1,128!
2037
  tEndEncode(&encoder);
376✔
2038

2039
_exit:
376✔
2040
  if (code) {
376!
2041
    tlen = code;
×
2042
  } else {
2043
    tlen = encoder.pos;
376✔
2044
  }
2045
  tEncoderClear(&encoder);
376✔
2046
  return tlen;
376✔
2047
}
2048

2049
int32_t tDeserializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
78✔
2050
  SDecoder decoder = {0};
78✔
2051
  int32_t  code = 0;
78✔
2052
  int32_t  lino;
2053
  tDecoderInit(&decoder, buf, bufLen);
78✔
2054

2055
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
78!
2056
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
78!
2057
  DECODESQL();
234!
2058
  tEndDecode(&decoder);
78✔
2059

2060
_exit:
78✔
2061
  tDecoderClear(&decoder);
78✔
2062
  return code;
78✔
2063
}
2064

2065
void tFreeSDropUserReq(SDropUserReq *pReq) { FREESQL(); }
266!
2066

2067
int32_t tSerializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
115,327✔
2068
  SEncoder encoder = {0};
115,327✔
2069
  int32_t  code = 0;
115,327✔
2070
  int32_t  lino;
2071
  int32_t  tlen;
2072
  tEncoderInit(&encoder, buf, bufLen);
115,327✔
2073

2074
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
115,329!
2075

2076
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->operation));
230,658!
2077
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
230,658!
2078
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->table));
230,658!
2079
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
230,658!
2080
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pSql));
230,658!
2081

2082
  tEndEncode(&encoder);
115,329✔
2083

2084
_exit:
115,328✔
2085
  if (code) {
115,328!
2086
    tlen = code;
×
2087
  } else {
2088
    tlen = encoder.pos;
115,328✔
2089
  }
2090
  tEncoderClear(&encoder);
115,328✔
2091
  return tlen;
115,332✔
2092
}
2093

2094
int32_t tDeserializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
59,652✔
2095
  SDecoder decoder = {0};
59,652✔
2096
  int32_t  code = 0;
59,652✔
2097
  int32_t  lino;
2098
  tDecoderInit(&decoder, buf, bufLen);
59,652✔
2099

2100
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
59,652!
2101

2102
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->operation));
59,654!
2103
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
59,653!
2104
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->table));
59,654!
2105
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
119,307!
2106
  if (pReq->sqlLen > 0) {
59,655!
2107
    pReq->pSql = taosMemoryMalloc(pReq->sqlLen + 1);
59,655!
2108
    if (pReq->pSql == NULL) {
59,655!
2109
      TAOS_CHECK_EXIT(terrno);
×
2110
    }
2111
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pSql));
59,655!
2112
  }
2113
  tEndDecode(&decoder);
59,653✔
2114
_exit:
59,653✔
2115
  tDecoderClear(&decoder);
59,653✔
2116
  return code;
59,654✔
2117
}
2118

2119
void tFreeSAuditReq(SAuditReq *pReq) { taosMemoryFreeClear(pReq->pSql); }
59,650!
2120

2121
SIpWhiteListDual *cloneIpWhiteList(SIpWhiteListDual *pIpWhiteList) {
12,385✔
2122
  if (pIpWhiteList == NULL) return NULL;
12,385!
2123

2124
  int32_t sz = sizeof(SIpWhiteListDual) + pIpWhiteList->num * sizeof(SIpRange);
12,385✔
2125

2126
  SIpWhiteListDual *pNew = taosMemoryCalloc(1, sz);
12,385!
2127
  if (pNew) {
12,385!
2128
    memcpy(pNew, pIpWhiteList, sz);
12,385✔
2129
  }
2130
  return pNew;
12,385✔
2131
}
2132

2133
int32_t cvtIpWhiteListToDual(SIpWhiteList *pWhiteList, SIpWhiteListDual **pWhiteListDual) {
×
2134
  int32_t           code = 0;
×
2135
  int32_t           lino = 0;
×
2136
  SIpWhiteListDual *pList = NULL;
×
2137
  SIpRange          p6 = {0};
×
2138

2139
  pList = taosMemoryCalloc(1, sizeof(SIpWhiteListDual) + sizeof(SIpRange) * (pWhiteList->num + 1));
×
2140
  if (pList == NULL) {
×
2141
    TAOS_CHECK_GOTO(terrno, &lino, _OVER);
×
2142
  }
2143
  pList->num = pWhiteList->num;
×
2144
  for (int i = 0; i < pWhiteList->num; i++) {
×
2145
    SIpV4Range *pIp4 = &(pWhiteList->pIpRange[i]);
×
2146
    SIpRange   *pRange = &(pList->pIpRanges[i]);
×
2147

2148
    pRange->type = 0;
×
2149
    memcpy(&pRange->ipV4, pIp4, sizeof(SIpV4Range));
×
2150
  }
2151

2152
  code = createDefaultIp6Range(&p6);
×
2153
  TAOS_CHECK_GOTO(code, &lino, _OVER);
×
2154

2155
  memcpy(pList->pIpRanges + pList->num, &p6, sizeof(SIpRange));
×
2156
  pList->num++;
×
2157

2158
_OVER:
×
2159
  if (code != 0) {
×
2160
    taosMemoryFree(pList);
×
2161
  } else {
2162
    *pWhiteListDual = pList;
×
2163
  }
2164
  return code;
×
2165
}
2166

2167
int32_t createDefaultIp6Range(SIpRange *pRange) {
2,124✔
2168
  int32_t code = 0;
2,124✔
2169
  SIpAddr add6 = {.type = 1, .ipv6 = {"::1"}, .mask = 128};
2,124✔
2170
  return tIpStrToUint(&add6, pRange);
2,124✔
2171
}
2172

2173
int32_t createDefaultIp4Range(SIpRange *pRange) {
2,129✔
2174
  int32_t code = 0;
2,129✔
2175
  SIpAddr add4 = {.type = 0, .ipv4 = {"127.0.0.1"}, .mask = 32};
2,129✔
2176
  return tIpStrToUint(&add4, pRange);
2,129✔
2177
}
2178
int32_t cvtIpWhiteListDualToV4(SIpWhiteListDual *pWhiteListDual, SIpWhiteList **pWhiteList) {
×
2179
  int32_t code = 0;
×
2180

2181
  int32_t       num = 0;
×
2182
  SIpWhiteList *p = taosMemCalloc(1, sizeof(SIpWhiteList) + sizeof(SIpV4Range) * pWhiteListDual->num);
×
2183
  if (p == NULL) {
×
2184
    return terrno;
×
2185
  }
2186

2187
  for (int32_t i = 0; i < pWhiteListDual->num; ++i) {
×
2188
    SIpRange *pRange = &pWhiteListDual->pIpRanges[i];
×
2189
    if (pRange->type == 0) {
×
2190
      memcpy(&p->pIpRange[num], &pRange->ipV4, sizeof(SIpV4Range));
×
2191
    }
2192
    num++;
×
2193
  }
2194
  p->num = num;
×
2195

2196
  *pWhiteList = p;
×
2197

2198
  return code;
×
2199
}
2200
int32_t tSerializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
636✔
2201
  SEncoder encoder = {0};
636✔
2202
  int32_t  code = 0;
636✔
2203
  int32_t  lino;
2204
  int32_t  tlen;
2205
  tEncoderInit(&encoder, buf, bufLen);
636✔
2206

2207
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
636!
2208
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createType));
1,272!
2209
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
1,272!
2210
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
1,272!
2211
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
1,272!
2212
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
1,272!
2213
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
1,272!
2214
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
1,272!
2215
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
646✔
2216
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
20!
2217
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
20!
2218
  }
2219
  ENCODESQL();
1,908!
2220
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isImport));
1,272!
2221
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createDb));
1,272!
2222
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->passIsMd5));
1,272!
2223

2224
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
646✔
2225
    SIpRange *pRange = &pReq->pIpDualRanges[i];
10✔
2226
    code = tSerializeIpRange(&encoder, pRange);
10✔
2227
    TAOS_CHECK_EXIT(code);
10!
2228
  }
2229
  tEndEncode(&encoder);
636✔
2230

2231
_exit:
636✔
2232
  if (code) {
636!
2233
    tlen = code;
×
2234
  } else {
2235
    tlen = encoder.pos;
636✔
2236
  }
2237
  tEncoderClear(&encoder);
636✔
2238
  return tlen;
636✔
2239
}
2240

2241
int32_t tDeserializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
208✔
2242
  SDecoder decoder = {0};
208✔
2243
  int32_t  code = 0;
208✔
2244
  int32_t  lino;
2245
  tDecoderInit(&decoder, buf, bufLen);
208✔
2246

2247
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
208!
2248
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createType));
416!
2249
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
416!
2250
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
416!
2251
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
416!
2252
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
208!
2253
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
208!
2254
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
416!
2255
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
208!
2256
  if (pReq->pIpRanges == NULL) {
208!
2257
    TAOS_CHECK_EXIT(terrno);
×
2258
  }
2259
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
217✔
2260
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
18!
2261
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
18!
2262
  }
2263
  DECODESQL();
624!
2264
  if (!tDecodeIsEnd(&decoder)) {
208!
2265
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isImport));
416!
2266
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createDb));
416!
2267
  }
2268
  if (!tDecodeIsEnd(&decoder)) {
208!
2269
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->passIsMd5));
416!
2270
  }
2271

2272
  if (!tDecodeIsEnd(&decoder)) {
208✔
2273
    pReq->pIpDualRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpRange));
5!
2274
    if (pReq->pIpDualRanges == NULL) {
5!
2275
      TAOS_CHECK_EXIT(terrno);
×
2276
    }
2277
    for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
14✔
2278
      SIpRange *pRange = &pReq->pIpDualRanges[i];
9✔
2279
      code = tDeserializeIpRange(&decoder, pRange);
9✔
2280
      TAOS_CHECK_EXIT(code);
9!
2281
    }
2282
  }
2283

2284
  tEndDecode(&decoder);
208✔
2285

2286
_exit:
208✔
2287
  tDecoderClear(&decoder);
208✔
2288
  return code;
208✔
2289
}
2290

2291
static int32_t getIpv4Range(SUpdateUserIpWhite *pReq, SIpV4Range **pIpRange, int32_t *num) {
×
2292
  int32_t code = 0;
×
2293
  if (pReq->numOfRange <= 0) {
×
2294
    return code;
×
2295
  }
2296

2297
  SIpV4Range *p = taosMemoryCalloc(1, pReq->numOfRange * sizeof(SIpV4Range));
×
2298
  if (p == NULL) {
×
2299
    return terrno;
×
2300
  }
2301

2302
  int32_t cnt = 0;
×
2303
  for (int32_t i = 0; i < pReq->numOfRange; i++) {
×
2304
    SIpRange *pRange = &pReq->pIpDualRanges[i];
×
2305
    if (pRange->type == 0) {
×
2306
      SIpV4Range *pIp4 = (SIpV4Range *)&pRange->ipV4;
×
2307
      memcpy(&p[cnt], pIp4, sizeof(SIpV4Range));
×
2308
    } else {
2309
      continue;
×
2310
    }
2311
  }
2312

2313
  *pIpRange = p;
×
2314
  *num = cnt;
×
2315

2316
  return code;
×
2317
}
2318
int32_t tSerializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
×
2319
  SEncoder    encoder = {0};
×
2320
  int32_t     code = 0;
×
2321
  int32_t     lino;
2322
  int32_t     tlen;
2323
  int32_t     num = 0;
×
2324
  SIpV4Range *p = NULL;
×
2325

2326
  tEncoderInit(&encoder, buf, bufLen);
×
2327
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
2328
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ver));
×
2329
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfUser));
×
2330
  for (int i = 0; i < pReq->numOfUser; i++) {
×
2331
    SUpdateUserIpWhite *pUser = &(pReq->pUserIpWhite[i]);
×
2332

2333
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pUser->ver));
×
2334
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pUser->user));
×
2335

2336
    TAOS_CHECK_EXIT(getIpv4Range(pUser, &p, &num));
×
2337
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
2338
    for (int32_t i = 0; i < num; i++) {
×
2339
      SIpV4Range *pRange = &p[i];
×
2340
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->ip));
×
2341
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->mask));
×
2342
    }
2343
    taosMemFreeClear(p);
×
2344
  }
2345

2346
  tEndEncode(&encoder);
×
2347

2348
_exit:
×
2349
  taosMemFreeClear(p);
×
2350
  if (code) {
×
2351
    tlen = code;
×
2352
  } else {
2353
    tlen = encoder.pos;
×
2354
  }
2355
  tEncoderClear(&encoder);
×
2356
  return tlen;
×
2357
}
2358
int32_t tDeserializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
×
2359
  SDecoder decoder = {0};
×
2360
  int32_t  code = 0;
×
2361
  int32_t  lino;
2362
  tDecoderInit(&decoder, buf, bufLen);
×
2363

2364
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2365
  // impl later
2366
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ver));
×
2367
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfUser));
×
2368

2369
  if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) {
×
2370
    TAOS_CHECK_EXIT(terrno);
×
2371
  }
2372
  for (int i = 0; i < pReq->numOfUser; i++) {
×
2373
    SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
×
2374
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pUserWhite->ver));
×
2375
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pUserWhite->user));
×
2376
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pUserWhite->numOfRange));
×
2377

2378
    if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpV4Range))) == NULL) {
×
2379
      TAOS_CHECK_EXIT(terrno);
×
2380
    }
2381
    for (int j = 0; j < pUserWhite->numOfRange; j++) {
×
2382
      SIpV4Range *pRange = &pUserWhite->pIpRanges[j];
×
2383
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->ip));
×
2384
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->mask));
×
2385
    }
2386
  }
2387

2388
  tEndDecode(&decoder);
×
2389

2390
_exit:
×
2391
  tDecoderClear(&decoder);
×
2392
  return code;
×
2393
}
2394
void tFreeSUpdateIpWhiteReq(SUpdateIpWhite *pReq) {
135✔
2395
  if (pReq == NULL) return;
135!
2396

2397
  if (pReq->pUserIpWhite) {
135!
2398
    for (int i = 0; i < pReq->numOfUser; i++) {
277✔
2399
      SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
137✔
2400
      taosMemoryFree(pUserWhite->pIpRanges);
137!
2401
    }
2402
  }
2403
  taosMemoryFree(pReq->pUserIpWhite);
140!
2404
  return;
146✔
2405
}
2406

2407
int32_t tSerializeIpRange(SEncoder *encoder, SIpRange *pRange) {
366,264✔
2408
  int32_t lino;
2409
  int32_t code = 0;
366,264✔
2410

2411
  TAOS_CHECK_EXIT(tEncodeI8(encoder, pRange->type));
732,528!
2412
  if (pRange->type == 0) {
366,264✔
2413
    SIpV4Range *pIp4 = (SIpV4Range *)&pRange->ipV4;
357,091✔
2414
    TAOS_CHECK_EXIT(tEncodeU32(encoder, pIp4->ip));
714,182!
2415
    TAOS_CHECK_EXIT(tEncodeU32(encoder, pIp4->mask));
714,182!
2416
  } else {
2417
    SIpV6Range *pIp6 = (SIpV6Range *)&pRange->ipV6;
9,173✔
2418
    TAOS_CHECK_EXIT(tEncodeU64(encoder, pIp6->addr[0]));
18,346!
2419
    TAOS_CHECK_EXIT(tEncodeU64(encoder, pIp6->addr[1]));
18,346!
2420
    TAOS_CHECK_EXIT(tEncodeU32(encoder, pIp6->mask));
18,346!
2421
  }
2422
_exit:
9,173✔
2423
  return code;
366,264✔
2424
}
2425

2426
int32_t tDeserializeIpRange(SDecoder *decoder, SIpRange *pRange) {
368,711✔
2427
  int32_t lino = 0;
368,711✔
2428
  int32_t code = 0;
368,711✔
2429

2430
  TAOS_CHECK_EXIT(tDecodeI8(decoder, &pRange->type));
737,455!
2431
  if (pRange->type == 0) {
368,744✔
2432
    SIpV4Range *pIp4 = (SIpV4Range *)&pRange->ipV4;
363,680✔
2433
    TAOS_CHECK_EXIT(tDecodeU32(decoder, &pIp4->ip));
727,364!
2434
    TAOS_CHECK_EXIT(tDecodeU32(decoder, &pIp4->mask));
727,396!
2435
  } else {
2436
    SIpV6Range *pIp6 = (SIpV6Range *)&pRange->ipV6;
5,064✔
2437
    TAOS_CHECK_EXIT(tDecodeU64(decoder, &pIp6->addr[0]));
10,134!
2438
    TAOS_CHECK_EXIT(tDecodeU64(decoder, &pIp6->addr[1]));
10,140!
2439
    TAOS_CHECK_EXIT(tDecodeU32(decoder, &pIp6->mask));
10,140!
2440
  }
2441
_exit:
5,070✔
2442
  return code;
368,782✔
2443
}
2444
int32_t tSerializeSUpdateIpWhiteDual(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
14✔
2445
  SEncoder encoder = {0};
14✔
2446
  int32_t  code = 0;
14✔
2447
  int32_t  lino;
2448
  int32_t  tlen;
2449

2450
  tEncoderInit(&encoder, buf, bufLen);
14✔
2451
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
2452
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ver));
28!
2453
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfUser));
28!
2454
  for (int i = 0; i < pReq->numOfUser; i++) {
28✔
2455
    SUpdateUserIpWhite *pUser = &(pReq->pUserIpWhite[i]);
14✔
2456

2457
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pUser->ver));
28!
2458
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pUser->user));
28!
2459
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUser->numOfRange));
28!
2460
    for (int j = 0; j < pUser->numOfRange; j++) {
54✔
2461
      SIpRange *pRange = &pUser->pIpDualRanges[j];
40✔
2462
      TAOS_CHECK_EXIT(tSerializeIpRange(&encoder, pRange));
40!
2463
    }
2464
  }
2465

2466
  tEndEncode(&encoder);
14✔
2467

2468
_exit:
14✔
2469
  if (code) {
14!
2470
    tlen = code;
×
2471
  } else {
2472
    tlen = encoder.pos;
14✔
2473
  }
2474
  tEncoderClear(&encoder);
14✔
2475
  return tlen;
14✔
2476
}
2477
int32_t tDeserializeSUpdateIpWhiteDual(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
7✔
2478
  SDecoder decoder = {0};
7✔
2479
  int32_t  code = 0;
7✔
2480
  int32_t  lino;
2481
  tDecoderInit(&decoder, buf, bufLen);
7✔
2482

2483
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7!
2484
  // impl later
2485
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ver));
14!
2486
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfUser));
14!
2487

2488
  if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) {
7!
2489
    TAOS_CHECK_EXIT(terrno);
×
2490
  }
2491
  for (int i = 0; i < pReq->numOfUser; i++) {
14✔
2492
    SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
7✔
2493
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pUserWhite->ver));
14!
2494
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pUserWhite->user));
7!
2495
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pUserWhite->numOfRange));
14!
2496

2497
    if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpRange))) == NULL) {
7!
2498
      TAOS_CHECK_EXIT(terrno);
×
2499
    }
2500
    for (int j = 0; j < pUserWhite->numOfRange; j++) {
27✔
2501
      SIpRange *pRange = &pUserWhite->pIpDualRanges[j];
20✔
2502
      TAOS_CHECK_EXIT(tDeserializeIpRange(&decoder, pRange));
20!
2503
    }
2504
  }
2505

2506
  tEndDecode(&decoder);
7✔
2507
_exit:
7✔
2508
  if (code < 0) {
7!
2509
    uError("Failed to deserialize SUpdateIpWhiteDual at line %d, code: %s", lino, tstrerror(code));
×
2510
  }
2511
  tDecoderClear(&decoder);
7✔
2512
  return code;
7✔
2513
}
2514
void tFreeSUpdateIpWhiteDualReq(SUpdateIpWhite *pReq) {
7✔
2515
  if (pReq == NULL) return;
7!
2516

2517
  if (pReq->pUserIpWhite) {
7!
2518
    for (int i = 0; i < pReq->numOfUser; i++) {
14✔
2519
      SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
7✔
2520
      taosMemoryFree(pUserWhite->pIpDualRanges);
7!
2521
    }
2522
  }
2523
  taosMemoryFree(pReq->pUserIpWhite);
7!
2524
  return;
7✔
2525
}
2526

2527
int32_t cloneSUpdateIpWhiteReq(SUpdateIpWhite *pReq, SUpdateIpWhite **pUpdateMsg) {
247,710✔
2528
  int32_t code = 0;
247,710✔
2529
  if (pReq == NULL) {
247,710✔
2530
    return 0;
247,570✔
2531
  }
2532
  SUpdateIpWhite *pClone = taosMemoryCalloc(1, sizeof(SUpdateIpWhite));
140!
2533
  if (pClone == NULL) {
140!
2534
    return terrno;
×
2535
  }
2536

2537
  pClone->numOfUser = pReq->numOfUser;
140✔
2538
  pClone->ver = pReq->ver;
140✔
2539
  pClone->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser);
140!
2540
  if (pClone->pUserIpWhite == NULL) {
140!
2541
    taosMemoryFree(pClone);
×
2542
    return terrno;
×
2543
  }
2544

2545
  for (int i = 0; i < pReq->numOfUser; i++) {
280✔
2546
    SUpdateUserIpWhite *pNew = &pClone->pUserIpWhite[i];
140✔
2547
    SUpdateUserIpWhite *pOld = &pReq->pUserIpWhite[i];
140✔
2548

2549
    pNew->ver = pOld->ver;
140✔
2550
    memcpy(pNew->user, pOld->user, strlen(pOld->user));
140✔
2551
    pNew->numOfRange = pOld->numOfRange;
140✔
2552

2553
    int32_t sz = pOld->numOfRange * sizeof(SIpRange);
140✔
2554
    pNew->pIpDualRanges = taosMemoryCalloc(1, sz);
140!
2555
    if (pNew->pIpDualRanges == NULL) {
140!
2556
      code = terrno;
×
2557
      break;
×
2558
    }
2559
    memcpy(pNew->pIpDualRanges, pOld->pIpDualRanges, sz);
140✔
2560
  }
2561
_return:
140✔
2562
  if (code < 0) {
140!
2563
    tFreeSUpdateIpWhiteReq(pClone);
×
2564
    taosMemoryFree(pClone);
×
2565
  } else {
2566
    *pUpdateMsg = pClone;
140✔
2567
  }
2568
  return code;
140✔
2569
}
2570
int32_t tSerializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
14✔
2571
  SEncoder encoder = {0};
14✔
2572
  int32_t  code = 0;
14✔
2573
  int32_t  lino;
2574
  int32_t  tlen;
2575
  tEncoderInit(&encoder, buf, bufLen);
14✔
2576

2577
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
2578
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
28!
2579
  tEndEncode(&encoder);
14✔
2580

2581
_exit:
14✔
2582
  if (code) {
14!
2583
    tlen = code;
×
2584
  } else {
2585
    tlen = encoder.pos;
14✔
2586
  }
2587
  tEncoderClear(&encoder);
14✔
2588
  return tlen;
14✔
2589
}
2590

2591
int32_t tDeserializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
7✔
2592
  SDecoder decoder = {0};
7✔
2593
  int32_t  code = 0;
7✔
2594
  int32_t  lino;
2595

2596
  tDecoderInit(&decoder, buf, bufLen);
7✔
2597

2598
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7!
2599
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
14!
2600
  tEndDecode(&decoder);
7✔
2601

2602
_exit:
7✔
2603
  tDecoderClear(&decoder);
7✔
2604
  return code;
7✔
2605
}
2606

2607
int32_t tSerializeRetrieveAnalyticAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalyticsAlgoReq *pReq) {
4✔
2608
  SEncoder encoder = {0};
4✔
2609
  int32_t  code = 0;
4✔
2610
  int32_t  lino;
2611
  int32_t  tlen;
2612
  tEncoderInit(&encoder, buf, bufLen);
4✔
2613

2614
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2615
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
8!
2616
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
8!
2617
  tEndEncode(&encoder);
4✔
2618

2619
_exit:
4✔
2620
  if (code) {
4!
2621
    tlen = code;
×
2622
  } else {
2623
    tlen = encoder.pos;
4✔
2624
  }
2625
  tEncoderClear(&encoder);
4✔
2626
  return tlen;
4✔
2627
}
2628

2629
int32_t tDeserializeRetrieveAnalyticAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalyticsAlgoReq *pReq) {
2✔
2630
  SDecoder decoder = {0};
2✔
2631
  int32_t  code = 0;
2✔
2632
  int32_t  lino;
2633

2634
  tDecoderInit(&decoder, buf, bufLen);
2✔
2635

2636
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2637
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
4!
2638
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
4!
2639
  tEndDecode(&decoder);
2✔
2640

2641
_exit:
2✔
2642
  tDecoderClear(&decoder);
2✔
2643
  return code;
2✔
2644
}
2645

2646
int32_t tSerializeRetrieveAnalyticAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalyticAlgoRsp *pRsp) {
4✔
2647
  SEncoder encoder = {0};
4✔
2648
  int32_t  code = 0;
4✔
2649
  int32_t  lino;
2650
  int32_t  tlen;
2651
  tEncoderInit(&encoder, buf, bufLen);
4✔
2652

2653
  int32_t numOfAlgos = 0;
4✔
2654
  void   *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2655
  while (pIter != NULL) {
30✔
2656
    SAnalyticsUrl *pUrl = pIter;
26✔
2657
    size_t         nameLen = 0;
26✔
2658
    const char    *name = taosHashGetKey(pIter, &nameLen);
26✔
2659
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_KEY_LEN && pUrl->urlLen > 0) {
26!
2660
      numOfAlgos++;
26✔
2661
    }
2662
    pIter = taosHashIterate(pRsp->hash, pIter);
26✔
2663
  }
2664

2665
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2666
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ver));
8!
2667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfAlgos));
4!
2668

2669
  pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2670
  while (pIter != NULL) {
30✔
2671
    SAnalyticsUrl *pUrl = pIter;
26✔
2672
    size_t         nameLen = 0;
26✔
2673
    const char    *name = taosHashGetKey(pIter, &nameLen);
26✔
2674
    if (nameLen > 0 && pUrl->urlLen > 0) {
26!
2675
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, nameLen));
52!
2676
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)name, nameLen));
52!
2677
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->anode));
52!
2678
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->type));
52!
2679
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->urlLen));
52!
2680
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pUrl->url, pUrl->urlLen));
52!
2681
    }
2682
    pIter = taosHashIterate(pRsp->hash, pIter);
26✔
2683
  }
2684

2685
  tEndEncode(&encoder);
4✔
2686

2687
_exit:
4✔
2688
  if (code) {
4!
2689
    tlen = code;
×
2690
  } else {
2691
    tlen = encoder.pos;
4✔
2692
  }
2693
  tEncoderClear(&encoder);
4✔
2694
  return tlen;
4✔
2695
}
2696

2697
int32_t tDeserializeRetrieveAnalyticAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalyticAlgoRsp *pRsp) {
2✔
2698
  if (pRsp->hash == NULL) {
2!
2699
    pRsp->hash = taosHashInit(64, MurmurHash3_32, true, HASH_ENTRY_LOCK);
2✔
2700
    if (pRsp->hash == NULL) {
2!
2701
      terrno = TSDB_CODE_OUT_OF_BUFFER;
×
2702
      return terrno;
×
2703
    }
2704
  }
2705

2706
  SDecoder decoder = {0};
2✔
2707
  int32_t  code = 0;
2✔
2708
  int32_t  lino;
2709
  tDecoderInit(&decoder, buf, bufLen);
2✔
2710

2711
  int32_t       numOfAlgos = 0;
2✔
2712
  int32_t       nameLen;
2713
  int32_t       type;
2714
  char          name[TSDB_ANALYTIC_ALGO_KEY_LEN];
2715
  SAnalyticsUrl url = {0};
2✔
2716

2717
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2718
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ver));
4!
2719
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfAlgos));
2!
2720

2721
  for (int32_t f = 0; f < numOfAlgos; ++f) {
15✔
2722
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nameLen));
13!
2723
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_NAME_LEN) {
13!
2724
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, name));
13!
2725
    }
2726

2727
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.anode));
13!
2728
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &type));
13!
2729
    url.type = (EAnalAlgoType)type;
13✔
2730
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.urlLen));
13!
2731
    if (url.urlLen > 0) {
13!
2732
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&url.url, NULL) < 0);
13!
2733
    }
2734

2735
    char dstName[TSDB_ANALYTIC_ALGO_NAME_LEN] = {0};
13✔
2736
    strntolower(dstName, name, nameLen);
13✔
2737

2738
    TAOS_CHECK_EXIT(taosHashPut(pRsp->hash, dstName, nameLen, &url, sizeof(SAnalyticsUrl)));
13!
2739
  }
2740

2741
  tEndDecode(&decoder);
2✔
2742

2743
_exit:
2✔
2744
  tDecoderClear(&decoder);
2✔
2745
  return code;
2✔
2746
}
2747

2748
void tFreeRetrieveAnalyticAlgoRsp(SRetrieveAnalyticAlgoRsp *pRsp) {
4✔
2749
  void *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2750
  while (pIter != NULL) {
17✔
2751
    SAnalyticsUrl *pUrl = (SAnalyticsUrl *)pIter;
13✔
2752
    taosMemoryFree(pUrl->url);
13!
2753
    pIter = taosHashIterate(pRsp->hash, pIter);
13✔
2754
  }
2755
  taosHashCleanup(pRsp->hash);
4✔
2756

2757
  pRsp->hash = NULL;
4✔
2758
}
4✔
2759

2760
void tFreeSCreateUserReq(SCreateUserReq *pReq) {
526✔
2761
  FREESQL();
526!
2762
  taosMemoryFreeClear(pReq->pIpRanges);
526!
2763
  taosMemoryFreeClear(pReq->pIpDualRanges);
526!
2764
}
526✔
2765

2766
int32_t tSerializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
4,846✔
2767
  SEncoder encoder = {0};
4,846✔
2768
  int32_t  code = 0;
4,846✔
2769
  int32_t  lino;
2770
  int32_t  tlen;
2771
  tEncoderInit(&encoder, buf, bufLen);
4,846✔
2772

2773
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,846!
2774
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
9,692!
2775
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
9,692!
2776
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
9,692!
2777
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
9,692!
2778
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isView));
9,692!
2779
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
9,692!
2780
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
9,692!
2781
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->objname));
9,692!
2782
  int32_t len = strlen(pReq->tabName);
4,846✔
2783
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, len));
4,846!
2784
  if (len > 0) {
4,846✔
2785
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tabName));
6,124!
2786
  }
2787
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->tagCond, pReq->tagCondLen));
9,692!
2788
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
9,692!
2789
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
4,870✔
2790
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
48!
2791
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
48!
2792
  }
2793
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->privileges));
9,692!
2794
  ENCODESQL();
14,538!
2795
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->flag));
9,692!
2796
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->passIsMd5));
9,692!
2797

2798
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
4,870✔
2799
    SIpRange *pRange = &pReq->pIpDualRanges[i];
24✔
2800
    code = tSerializeIpRange(&encoder, pRange);
24✔
2801
    TAOS_CHECK_EXIT(code);
24!
2802
  }
2803
  tEndEncode(&encoder);
4,846✔
2804

2805
_exit:
4,846✔
2806
  if (code) {
4,846!
2807
    tlen = code;
×
2808
  } else {
2809
    tlen = encoder.pos;
4,846✔
2810
  }
2811
  tEncoderClear(&encoder);
4,846✔
2812
  return tlen;
4,846✔
2813
}
2814

2815
int32_t tDeserializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
2,140✔
2816
  SDecoder decoder = {0};
2,140✔
2817
  int32_t  code = 0;
2,140✔
2818
  int32_t  lino;
2819
  tDecoderInit(&decoder, buf, bufLen);
2,140✔
2820

2821
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,140!
2822
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
4,280!
2823
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
4,280!
2824
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
4,280!
2825
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
4,280!
2826
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isView));
4,280!
2827
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
2,140!
2828
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
2,140!
2829
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->objname));
2,140!
2830
  if (!tDecodeIsEnd(&decoder)) {
2,140!
2831
    int32_t len = 0;
2,140✔
2832
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &len));
2,140!
2833
    if (len > 0) {
2,140✔
2834
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tabName));
1,393!
2835
    }
2836
    uint64_t tagCondLen = 0;
2,140✔
2837
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->tagCond, &tagCondLen));
4,280!
2838
    pReq->tagCondLen = tagCondLen;
2,140✔
2839
  }
2840
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
4,280!
2841
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
2,140!
2842
  if (pReq->pIpRanges == NULL) {
2,140!
2843
    TAOS_CHECK_EXIT(terrno);
×
2844
  }
2845
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
2,144✔
2846
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
8!
2847
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
8!
2848
  }
2849
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->privileges));
4,280!
2850
  DECODESQL();
6,420!
2851
  if (!tDecodeIsEnd(&decoder)) {
2,140!
2852
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->flag));
4,280!
2853
  }
2854
  if (!tDecodeIsEnd(&decoder)) {
2,140!
2855
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->passIsMd5));
4,280!
2856
  }
2857

2858
  if (!tDecodeIsEnd(&decoder)) {
2,140✔
2859
    pReq->pIpDualRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpRange));
4!
2860
    if (pReq->pIpDualRanges == NULL) {
4!
2861
      TAOS_CHECK_EXIT(terrno);
×
2862
    }
2863
    for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
8✔
2864
      SIpRange *pRange = &pReq->pIpDualRanges[i];
4✔
2865
      code = tDeserializeIpRange(&decoder, pRange);
4✔
2866
      TAOS_CHECK_EXIT(code);
4!
2867
    }
2868
  }
2869

2870
  tEndDecode(&decoder);
2,140✔
2871

2872
_exit:
2,140✔
2873
  tDecoderClear(&decoder);
2,140✔
2874
  return code;
2,140✔
2875
}
2876

2877
void tFreeSAlterUserReq(SAlterUserReq *pReq) {
4,563✔
2878
  taosMemoryFreeClear(pReq->tagCond);
4,563!
2879
  taosMemoryFree(pReq->pIpRanges);
4,563!
2880
  taosMemoryFree(pReq->pIpDualRanges);
4,563!
2881
  FREESQL();
4,563!
2882
}
4,563✔
2883

2884
int32_t tSerializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
45,096✔
2885
  SEncoder encoder = {0};
45,096✔
2886
  int32_t  code = 0;
45,096✔
2887
  int32_t  lino;
2888
  int32_t  tlen;
2889

2890
  tEncoderInit(&encoder, buf, bufLen);
45,096✔
2891
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
45,105!
2892
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
90,216!
2893
  tEndEncode(&encoder);
45,108✔
2894

2895
_exit:
45,109✔
2896
  if (code) {
45,109!
2897
    tlen = code;
×
2898
  } else {
2899
    tlen = encoder.pos;
45,109✔
2900
  }
2901
  tEncoderClear(&encoder);
45,109✔
2902
  return tlen;
45,107✔
2903
}
2904

2905
int32_t tDeserializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
403,290✔
2906
  SDecoder decoder = {0};
403,290✔
2907
  int32_t  code = 0;
403,290✔
2908
  int32_t  lino;
2909
  tDecoderInit(&decoder, buf, bufLen);
403,290✔
2910

2911
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
403,290!
2912
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
403,290!
2913
  tEndDecode(&decoder);
403,290✔
2914

2915
_exit:
403,289✔
2916
  tDecoderClear(&decoder);
403,289✔
2917
  return code;
403,290✔
2918
}
2919

2920
int32_t tSerializeSGetUserAuthRspImpl(SEncoder *pEncoder, SGetUserAuthRsp *pRsp) {
834,679✔
2921
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->user));
1,669,358!
2922
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->superAuth));
1,669,358!
2923
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->sysInfo));
1,669,358!
2924
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->enable));
1,669,358!
2925
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->dropped));
1,669,358!
2926
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->version));
1,669,358!
2927

2928
  int32_t numOfCreatedDbs = taosHashGetSize(pRsp->createdDbs);
834,679✔
2929
  int32_t numOfReadDbs = taosHashGetSize(pRsp->readDbs);
834,667✔
2930
  int32_t numOfWriteDbs = taosHashGetSize(pRsp->writeDbs);
834,659✔
2931

2932
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfCreatedDbs));
834,659!
2933
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadDbs));
834,659!
2934
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteDbs));
834,659!
2935

2936
  char *db = taosHashIterate(pRsp->createdDbs, NULL);
834,659✔
2937
  while (db != NULL) {
22,751,419✔
2938
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
21,916,730!
2939
    db = taosHashIterate(pRsp->createdDbs, db);
21,916,730✔
2940
  }
2941

2942
  db = taosHashIterate(pRsp->readDbs, NULL);
834,689✔
2943
  while (db != NULL) {
835,235✔
2944
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
558!
2945
    db = taosHashIterate(pRsp->readDbs, db);
558✔
2946
  }
2947

2948
  db = taosHashIterate(pRsp->writeDbs, NULL);
834,677✔
2949
  while (db != NULL) {
835,221✔
2950
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
546!
2951
    db = taosHashIterate(pRsp->writeDbs, db);
546✔
2952
  }
2953

2954
  int32_t numOfReadTbs = taosHashGetSize(pRsp->readTbs);
834,675✔
2955
  int32_t numOfWriteTbs = taosHashGetSize(pRsp->writeTbs);
834,672✔
2956
  int32_t numOfAlterTbs = taosHashGetSize(pRsp->alterTbs);
834,670✔
2957
  int32_t numOfReadViews = taosHashGetSize(pRsp->readViews);
834,667✔
2958
  int32_t numOfWriteViews = taosHashGetSize(pRsp->writeViews);
834,667✔
2959
  int32_t numOfAlterViews = taosHashGetSize(pRsp->alterViews);
834,671✔
2960
  int32_t numOfUseDbs = taosHashGetSize(pRsp->useDbs);
834,671✔
2961
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadTbs));
834,667!
2962
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteTbs));
834,667!
2963
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterTbs));
834,667!
2964
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadViews));
834,667!
2965
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteViews));
834,667!
2966
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterViews));
834,667!
2967
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfUseDbs));
834,667!
2968

2969
  char *tb = taosHashIterate(pRsp->readTbs, NULL);
834,667✔
2970
  while (tb != NULL) {
836,534✔
2971
    size_t keyLen = 0;
1,872✔
2972
    void  *key = taosHashGetKey(tb, &keyLen);
1,872✔
2973
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
3,744!
2974
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
1,872!
2975

2976
    size_t valueLen = 0;
1,872✔
2977
    valueLen = strlen(tb);
1,872✔
2978
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
3,744!
2979
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
1,872!
2980

2981
    tb = taosHashIterate(pRsp->readTbs, tb);
1,872✔
2982
  }
2983

2984
  tb = taosHashIterate(pRsp->writeTbs, NULL);
834,662✔
2985
  while (tb != NULL) {
836,534✔
2986
    size_t keyLen = 0;
1,870✔
2987
    void  *key = taosHashGetKey(tb, &keyLen);
1,870✔
2988
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
3,740!
2989
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
1,870!
2990

2991
    size_t valueLen = 0;
1,870✔
2992
    valueLen = strlen(tb);
1,870✔
2993
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
3,740!
2994
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
1,870!
2995

2996
    tb = taosHashIterate(pRsp->writeTbs, tb);
1,870✔
2997
  }
2998

2999
  tb = taosHashIterate(pRsp->alterTbs, NULL);
834,664✔
3000
  while (tb != NULL) {
834,850✔
3001
    size_t keyLen = 0;
188✔
3002
    void  *key = taosHashGetKey(tb, &keyLen);
188✔
3003
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
376!
3004
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
188!
3005

3006
    size_t valueLen = 0;
188✔
3007
    valueLen = strlen(tb);
188✔
3008
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
376!
3009
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
188!
3010

3011
    tb = taosHashIterate(pRsp->alterTbs, tb);
188✔
3012
  }
3013

3014
  tb = taosHashIterate(pRsp->readViews, NULL);
834,662✔
3015
  while (tb != NULL) {
834,876✔
3016
    size_t keyLen = 0;
218✔
3017
    void  *key = taosHashGetKey(tb, &keyLen);
218✔
3018
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
436!
3019
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
218!
3020

3021
    size_t valueLen = 0;
218✔
3022
    valueLen = strlen(tb);
218✔
3023
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
436!
3024
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
218!
3025

3026
    tb = taosHashIterate(pRsp->readViews, tb);
218✔
3027
  }
3028

3029
  tb = taosHashIterate(pRsp->writeViews, NULL);
834,658✔
3030
  while (tb != NULL) {
834,824✔
3031
    size_t keyLen = 0;
166✔
3032
    void  *key = taosHashGetKey(tb, &keyLen);
166✔
3033
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
332!
3034
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
166!
3035

3036
    size_t valueLen = 0;
166✔
3037
    valueLen = strlen(tb);
166✔
3038
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
332!
3039
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
166!
3040

3041
    tb = taosHashIterate(pRsp->writeViews, tb);
166✔
3042
  }
3043

3044
  tb = taosHashIterate(pRsp->alterViews, NULL);
834,658✔
3045
  while (tb != NULL) {
834,830✔
3046
    size_t keyLen = 0;
180✔
3047
    void  *key = taosHashGetKey(tb, &keyLen);
180✔
3048
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
360!
3049
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
180!
3050

3051
    size_t valueLen = 0;
180✔
3052
    valueLen = strlen(tb);
180✔
3053
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
360!
3054
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
180!
3055

3056
    tb = taosHashIterate(pRsp->alterViews, tb);
180✔
3057
  }
3058

3059
  int32_t *useDb = taosHashIterate(pRsp->useDbs, NULL);
834,650✔
3060
  while (useDb != NULL) {
835,634✔
3061
    size_t keyLen = 0;
984✔
3062
    void  *key = taosHashGetKey(useDb, &keyLen);
984✔
3063
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
1,968!
3064
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
984!
3065
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, *useDb));
1,968!
3066
    useDb = taosHashIterate(pRsp->useDbs, useDb);
984✔
3067
  }
3068

3069
  // since 3.0.7.0
3070
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->passVer));
1,669,300!
3071
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->whiteListVer));
1,669,300!
3072
  return 0;
834,650✔
3073
}
3074

3075
int32_t tSerializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
806,552✔
3076
  SEncoder encoder = {0};
806,552✔
3077
  int32_t  code = 0;
806,552✔
3078
  int32_t  lino;
3079
  int32_t  tlen;
3080
  tEncoderInit(&encoder, buf, bufLen);
806,552✔
3081

3082
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
806,559!
3083
  TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pRsp));
806,561!
3084

3085
  tEndEncode(&encoder);
806,542✔
3086

3087
_exit:
806,549✔
3088
  if (code) {
806,549!
3089
    tlen = code;
×
3090
  } else {
3091
    tlen = encoder.pos;
806,549✔
3092
  }
3093
  tEncoderClear(&encoder);
806,549✔
3094
  return tlen;
806,548✔
3095
}
3096

3097
int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRsp) {
26,415✔
3098
  char *key = NULL, *value = NULL;
26,415✔
3099
  pRsp->createdDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,415✔
3100
  pRsp->readDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3101
  pRsp->writeDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3102
  pRsp->readTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,415✔
3103
  pRsp->writeTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3104
  pRsp->alterTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3105
  pRsp->readViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3106
  pRsp->writeViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3107
  pRsp->alterViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3108
  pRsp->useDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
26,416✔
3109
  if (pRsp->createdDbs == NULL || pRsp->readDbs == NULL || pRsp->writeDbs == NULL || pRsp->readTbs == NULL ||
26,416!
3110
      pRsp->writeTbs == NULL || pRsp->alterTbs == NULL || pRsp->readViews == NULL || pRsp->writeViews == NULL ||
26,416!
3111
      pRsp->alterViews == NULL || pRsp->useDbs == NULL) {
26,416!
3112
    goto _err;
×
3113
  }
3114

3115
  if (tDecodeCStrTo(pDecoder, pRsp->user) < 0) goto _err;
26,416!
3116
  if (tDecodeI8(pDecoder, &pRsp->superAuth) < 0) goto _err;
52,832!
3117
  if (tDecodeI8(pDecoder, &pRsp->sysInfo) < 0) goto _err;
52,832!
3118
  if (tDecodeI8(pDecoder, &pRsp->enable) < 0) goto _err;
52,832!
3119
  if (tDecodeI8(pDecoder, &pRsp->dropped) < 0) goto _err;
52,832!
3120
  if (tDecodeI32(pDecoder, &pRsp->version) < 0) goto _err;
52,832!
3121

3122
  int32_t numOfCreatedDbs = 0;
26,416✔
3123
  int32_t numOfReadDbs = 0;
26,416✔
3124
  int32_t numOfWriteDbs = 0;
26,416✔
3125
  if (tDecodeI32(pDecoder, &numOfCreatedDbs) < 0) goto _err;
26,416!
3126
  if (tDecodeI32(pDecoder, &numOfReadDbs) < 0) goto _err;
26,416!
3127
  if (tDecodeI32(pDecoder, &numOfWriteDbs) < 0) goto _err;
26,416!
3128

3129
  for (int32_t i = 0; i < numOfCreatedDbs; ++i) {
59,253✔
3130
    char db[TSDB_DB_FNAME_LEN] = {0};
32,836✔
3131
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
32,836!
3132
    int32_t len = strlen(db);
32,837✔
3133
    if (taosHashPut(pRsp->createdDbs, db, len + 1, db, len + 1) < 0) goto _err;
32,837!
3134
  }
3135

3136
  for (int32_t i = 0; i < numOfReadDbs; ++i) {
26,726✔
3137
    char db[TSDB_DB_FNAME_LEN] = {0};
309✔
3138
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
309!
3139
    int32_t len = strlen(db);
309✔
3140
    if (taosHashPut(pRsp->readDbs, db, len + 1, db, len + 1) < 0) goto _err;
309!
3141
  }
3142

3143
  for (int32_t i = 0; i < numOfWriteDbs; ++i) {
26,718✔
3144
    char db[TSDB_DB_FNAME_LEN] = {0};
301✔
3145
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
301!
3146
    int32_t len = strlen(db);
301✔
3147
    if (taosHashPut(pRsp->writeDbs, db, len + 1, db, len + 1) < 0) goto _err;
301!
3148
  }
3149

3150
  if (!tDecodeIsEnd(pDecoder)) {
26,417✔
3151
    int32_t numOfReadTbs = 0;
26,415✔
3152
    int32_t numOfWriteTbs = 0;
26,415✔
3153
    int32_t numOfAlterTbs = 0;
26,415✔
3154
    int32_t numOfReadViews = 0;
26,415✔
3155
    int32_t numOfWriteViews = 0;
26,415✔
3156
    int32_t numOfAlterViews = 0;
26,415✔
3157
    int32_t numOfUseDbs = 0;
26,415✔
3158
    if (tDecodeI32(pDecoder, &numOfReadTbs) < 0) goto _err;
26,415!
3159
    if (tDecodeI32(pDecoder, &numOfWriteTbs) < 0) goto _err;
26,416!
3160
    if (tDecodeI32(pDecoder, &numOfAlterTbs) < 0) goto _err;
26,416!
3161
    if (tDecodeI32(pDecoder, &numOfReadViews) < 0) goto _err;
26,416!
3162
    if (tDecodeI32(pDecoder, &numOfWriteViews) < 0) goto _err;
26,416!
3163
    if (tDecodeI32(pDecoder, &numOfAlterViews) < 0) goto _err;
26,416!
3164
    if (tDecodeI32(pDecoder, &numOfUseDbs) < 0) goto _err;
26,416!
3165

3166
    for (int32_t i = 0; i < numOfReadTbs; ++i) {
27,395✔
3167
      int32_t keyLen = 0;
979✔
3168
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
979!
3169

3170
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
979!
3171
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
979!
3172

3173
      int32_t valuelen = 0;
979✔
3174
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
979!
3175

3176
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
979!
3177
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
979!
3178

3179
      if (taosHashPut(pRsp->readTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
979!
3180

3181
      taosMemoryFreeClear(key);
979!
3182
      taosMemoryFreeClear(value);
979!
3183
    }
3184

3185
    for (int32_t i = 0; i < numOfWriteTbs; ++i) {
27,395✔
3186
      int32_t keyLen = 0;
979✔
3187
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
979!
3188

3189
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
979!
3190
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
979!
3191

3192
      int32_t valuelen = 0;
979✔
3193
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
979!
3194

3195
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
979!
3196
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
979!
3197

3198
      if (taosHashPut(pRsp->writeTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
979!
3199

3200
      taosMemoryFreeClear(key);
979!
3201
      taosMemoryFreeClear(value);
979!
3202
    }
3203

3204
    for (int32_t i = 0; i < numOfAlterTbs; ++i) {
26,530✔
3205
      int32_t keyLen = 0;
114✔
3206
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
114!
3207

3208
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
114!
3209
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
114!
3210

3211
      int32_t valuelen = 0;
114✔
3212
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
114!
3213

3214
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
114!
3215
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
114!
3216

3217
      if (taosHashPut(pRsp->alterTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
114!
3218

3219
      taosMemoryFreeClear(key);
114!
3220
      taosMemoryFreeClear(value);
114!
3221
    }
3222

3223
    for (int32_t i = 0; i < numOfReadViews; ++i) {
26,504✔
3224
      int32_t keyLen = 0;
88✔
3225
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
88!
3226

3227
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
88!
3228
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
88!
3229

3230
      int32_t valuelen = 0;
88✔
3231
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
88!
3232

3233
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
88!
3234
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
88!
3235

3236
      if (taosHashPut(pRsp->readViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
88!
3237

3238
      taosMemoryFreeClear(key);
88!
3239
      taosMemoryFreeClear(value);
88!
3240
    }
3241

3242
    for (int32_t i = 0; i < numOfWriteViews; ++i) {
26,483✔
3243
      int32_t keyLen = 0;
67✔
3244
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
67!
3245

3246
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
67!
3247
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
67!
3248

3249
      int32_t valuelen = 0;
67✔
3250
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
67!
3251

3252
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
67!
3253
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
67!
3254

3255
      if (taosHashPut(pRsp->writeViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
67!
3256

3257
      taosMemoryFreeClear(key);
67!
3258
      taosMemoryFreeClear(value);
67!
3259
    }
3260

3261
    for (int32_t i = 0; i < numOfAlterViews; ++i) {
26,489✔
3262
      int32_t keyLen = 0;
73✔
3263
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
73!
3264

3265
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
73!
3266
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
73!
3267

3268
      int32_t valuelen = 0;
73✔
3269
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
73!
3270

3271
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
73!
3272
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
73!
3273

3274
      if (taosHashPut(pRsp->alterViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
73!
3275

3276
      taosMemoryFreeClear(key);
73!
3277
      taosMemoryFreeClear(value);
73!
3278
    }
3279

3280
    for (int32_t i = 0; i < numOfUseDbs; ++i) {
26,930✔
3281
      int32_t keyLen = 0;
514✔
3282
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
514!
3283

3284
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
514!
3285
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
514!
3286

3287
      int32_t ref = 0;
514✔
3288
      if (tDecodeI32(pDecoder, &ref) < 0) goto _err;
514!
3289

3290
      if (taosHashPut(pRsp->useDbs, key, keyLen, &ref, sizeof(ref)) < 0) goto _err;
514!
3291
      taosMemoryFreeClear(key);
514!
3292
    }
3293
    // since 3.0.7.0
3294
    if (!tDecodeIsEnd(pDecoder)) {
26,416✔
3295
      if (tDecodeI32(pDecoder, &pRsp->passVer) < 0) goto _err;
52,831!
3296
    } else {
3297
      pRsp->passVer = 0;
1✔
3298
    }
3299
    if (!tDecodeIsEnd(pDecoder)) {
26,417✔
3300
      if (tDecodeI64(pDecoder, &pRsp->whiteListVer) < 0) goto _err;
52,832!
3301
    } else {
3302
      pRsp->whiteListVer = 0;
1✔
3303
    }
3304
  }
3305
  return 0;
26,419✔
3306
_err:
×
3307
  taosHashCleanup(pRsp->createdDbs);
×
3308
  taosHashCleanup(pRsp->readDbs);
×
3309
  taosHashCleanup(pRsp->writeDbs);
×
3310
  taosHashCleanup(pRsp->readTbs);
×
3311
  taosHashCleanup(pRsp->writeTbs);
×
3312
  taosHashCleanup(pRsp->alterTbs);
×
3313
  taosHashCleanup(pRsp->readViews);
×
3314
  taosHashCleanup(pRsp->writeViews);
×
3315
  taosHashCleanup(pRsp->alterViews);
×
3316
  taosHashCleanup(pRsp->useDbs);
×
3317

3318
  taosMemoryFreeClear(key);
×
3319
  taosMemoryFreeClear(value);
×
3320
  return -1;
×
3321
}
3322

3323
int32_t tDeserializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
22,536✔
3324
  SDecoder decoder = {0};
22,536✔
3325
  int32_t  code = 0;
22,536✔
3326
  int32_t  lino;
3327
  tDecoderInit(&decoder, buf, bufLen);
22,536✔
3328

3329
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
22,542!
3330
  TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, pRsp));
22,542!
3331

3332
  tEndDecode(&decoder);
22,542✔
3333

3334
_exit:
22,541✔
3335
  tDecoderClear(&decoder);
22,541✔
3336
  return code;
22,542✔
3337
}
3338

3339
void tFreeSGetUserAuthRsp(SGetUserAuthRsp *pRsp) {
417,345✔
3340
  taosHashCleanup(pRsp->createdDbs);
417,345✔
3341
  taosHashCleanup(pRsp->readDbs);
417,348✔
3342
  taosHashCleanup(pRsp->writeDbs);
417,349✔
3343
  taosHashCleanup(pRsp->readTbs);
417,347✔
3344
  taosHashCleanup(pRsp->writeTbs);
417,346✔
3345
  taosHashCleanup(pRsp->alterTbs);
417,349✔
3346
  taosHashCleanup(pRsp->readViews);
417,348✔
3347
  taosHashCleanup(pRsp->writeViews);
417,349✔
3348
  taosHashCleanup(pRsp->alterViews);
417,342✔
3349
  taosHashCleanup(pRsp->useDbs);
417,349✔
3350
}
417,348✔
3351

3352
int32_t tSerializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
40✔
3353
  SEncoder encoder = {0};
40✔
3354
  int32_t  code = 0;
40✔
3355
  int32_t  lino;
3356
  int32_t  tlen;
3357

3358
  tEncoderInit(&encoder, buf, bufLen);
40✔
3359

3360
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
40!
3361
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
80!
3362
  tEndEncode(&encoder);
40✔
3363

3364
_exit:
40✔
3365
  if (code) {
40!
3366
    tlen = code;
×
3367
  } else {
3368
    tlen = encoder.pos;
40✔
3369
  }
3370
  tEncoderClear(&encoder);
40✔
3371
  return tlen;
40✔
3372
}
3373

3374
int32_t tDeserializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
231✔
3375
  SDecoder decoder = {0};
231✔
3376
  int32_t  code = 0;
231✔
3377
  int32_t  lino;
3378
  tDecoderInit(&decoder, buf, bufLen);
231✔
3379

3380
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
231!
3381
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
231!
3382
  tEndDecode(&decoder);
231✔
3383

3384
_exit:
231✔
3385
  tDecoderClear(&decoder);
231✔
3386
  return code;
231✔
3387
}
3388

3389
int32_t tSerializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
458✔
3390
  SEncoder encoder = {0};
458✔
3391
  int32_t  code = 0;
458✔
3392
  int32_t  lino;
3393
  int32_t  tlen;
3394
  tEncoderInit(&encoder, buf, bufLen);
458✔
3395

3396
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
458!
3397
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->user));
916!
3398
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numWhiteLists));
916!
3399
  for (int i = 0; i < pRsp->numWhiteLists; ++i) {
916✔
3400
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].ip));
916!
3401
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].mask));
916!
3402
  }
3403
  tEndEncode(&encoder);
458✔
3404

3405
_exit:
458✔
3406
  if (code) {
458!
3407
    tlen = code;
×
3408
  } else {
3409
    tlen = encoder.pos;
458✔
3410
  }
3411
  tEncoderClear(&encoder);
458✔
3412
  return tlen;
458✔
3413
}
3414

3415
int32_t tDeserializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
10✔
3416
  SDecoder decoder = {0};
10✔
3417
  int32_t  code = 0;
10✔
3418
  int32_t  lino;
3419
  tDecoderInit(&decoder, buf, bufLen);
10✔
3420

3421
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
3422
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->user));
10!
3423
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numWhiteLists));
20!
3424
  pRsp->pWhiteLists = taosMemoryMalloc(pRsp->numWhiteLists * sizeof(SIpV4Range));
10!
3425
  if (pRsp->pWhiteLists == NULL) {
10!
3426
    TAOS_CHECK_EXIT(terrno);
×
3427
  }
3428
  for (int32_t i = 0; i < pRsp->numWhiteLists; ++i) {
20✔
3429
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].ip)));
20!
3430
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].mask)));
20!
3431
  }
3432

3433
  tEndDecode(&decoder);
10✔
3434
_exit:
10✔
3435
  tDecoderClear(&decoder);
10✔
3436
  return code;
10✔
3437
}
3438
void tFreeSGetUserWhiteListRsp(SGetUserWhiteListRsp *pRsp) { taosMemoryFree(pRsp->pWhiteLists); }
10!
3439

3440
int32_t tSerializeSGetUserWhiteListDualRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
4✔
3441
  SEncoder encoder = {0};
4✔
3442
  int32_t  code = 0;
4✔
3443
  int32_t  lino;
3444
  int32_t  tlen;
3445
  tEncoderInit(&encoder, buf, bufLen);
4✔
3446

3447
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3448
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->user));
8!
3449
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numWhiteLists));
8!
3450
  for (int i = 0; i < pRsp->numWhiteLists; ++i) {
12✔
3451
    SIpRange *range = &pRsp->pWhiteListsDual[i];
8✔
3452
    TAOS_CHECK_EXIT(tSerializeIpRange(&encoder, range));
8!
3453
  }
3454
  tEndEncode(&encoder);
4✔
3455

3456
_exit:
4✔
3457
  if (code) {
4!
3458
    tlen = code;
×
3459
  } else {
3460
    tlen = encoder.pos;
4✔
3461
  }
3462
  tEncoderClear(&encoder);
4✔
3463
  return tlen;
4✔
3464
}
3465
int32_t tDeserializeSGetUserWhiteListDualRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
10✔
3466
  SDecoder decoder = {0};
10✔
3467
  int32_t  code = 0;
10✔
3468
  int32_t  lino;
3469
  tDecoderInit(&decoder, buf, bufLen);
10✔
3470

3471
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
3472
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->user));
10!
3473
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numWhiteLists));
20!
3474

3475
  pRsp->pWhiteListsDual = taosMemoryMalloc(pRsp->numWhiteLists * sizeof(SIpRange));
10!
3476
  if (pRsp->pWhiteListsDual == NULL) {
10!
3477
    TAOS_CHECK_EXIT(terrno);
×
3478
  }
3479
  for (int32_t i = 0; i < pRsp->numWhiteLists; ++i) {
30✔
3480
    SIpRange *range = &pRsp->pWhiteListsDual[i];
20✔
3481
    TAOS_CHECK_EXIT(tDeserializeIpRange(&decoder, range));
20!
3482
  }
3483

3484
  tEndDecode(&decoder);
10✔
3485
_exit:
10✔
3486
  tDecoderClear(&decoder);
10✔
3487
  return code;
10✔
3488
}
3489

3490
int32_t tIpStrToUint(const SIpAddr *addr, SIpRange *range) {
16,631✔
3491
  int32_t code = 0;
16,631✔
3492
  range->type = addr->type;
16,631✔
3493
  const char *buf = IP_ADDR_STR(addr);
16,631✔
3494
  if (addr->type == 0) {
16,631✔
3495
    struct in_addr taddr;
3496
    if (inet_pton(AF_INET, buf, &taddr) <= 0) {
14,507!
3497
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3498
    }
3499

3500
    SIpV4Range *ipv4 = &range->ipV4;
14,507✔
3501
    ipv4->ip = taddr.s_addr;
14,507✔
3502
    ipv4->mask = addr->mask;
14,507✔
3503
  } else if (addr->type == 1) {
2,124!
3504
    struct in6_addr taddr;
3505
    if (inet_pton(AF_INET6, buf, &(taddr)) <= 0) {
2,124!
3506
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3507
    }
3508

3509
    SIpV6Range *ipv6 = &range->ipV6;
2,124✔
3510
    memcpy(&ipv6->addr[0], taddr.s6_addr, 8);
2,124✔
3511
    memcpy(&ipv6->addr[1], taddr.s6_addr + 8, 8);
2,124✔
3512

3513
    ipv6->mask = addr->mask;
2,124✔
3514
  }
3515
  return code;
16,631✔
3516
}
3517

3518
int32_t tIpUintToStr(const SIpRange *range, SIpAddr *addr) {
362,594✔
3519
  int32_t code = 0;
362,594✔
3520
  addr->type = range->type;
362,594✔
3521
  if (addr->type == 0) {
362,594✔
3522
    struct in_addr taddr;
3523
    memcpy(&taddr.s_addr, &range->ipV4.ip, sizeof(taddr.s_addr));
357,264✔
3524
    if (inet_ntop(AF_INET, &taddr, addr->ipv4, sizeof(addr->ipv4)) == NULL) {
357,264!
3525
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3526
    }
3527
    addr->mask = range->ipV4.mask;
357,246✔
3528
  } else {
3529
    struct in6_addr taddr;
3530
    memcpy(taddr.s6_addr, &range->ipV6.addr[0], 8);
5,330✔
3531
    memcpy(taddr.s6_addr + 8, &range->ipV6.addr[1], 8);
5,330✔
3532
    if (inet_ntop(AF_INET6, &taddr, addr->ipv6, sizeof(addr->ipv6)) == NULL) {
5,330!
3533
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3534
    }
3535
    addr->mask = range->ipV6.mask;
5,347✔
3536
  }
3537

3538
  return code;
362,593✔
3539
}
3540
int32_t tIpRangeSetMask(SIpRange *range, int32_t mask) {
12,394✔
3541
  if (range->type == 0) {
12,394!
3542
    SIpV4Range *p4 = (SIpV4Range *)&range->ipV4;
12,394✔
3543
    if (mask < 0 || mask > 32) {
12,394!
3544
      return TSDB_CODE_PAR_INVALID_IP_RANGE;
1✔
3545
    }
3546
    p4->mask = mask;
12,393✔
3547
  } else {
3548
    SIpV6Range *p6 = (SIpV6Range *)&range->ipV6;
×
3549
    if (mask < 0 || mask > 128) {
×
3550
      return TSDB_CODE_PAR_INVALID_IP_RANGE;
×
3551
    }
3552
    p6->mask = mask;
×
3553
  }
3554
  return 0;
12,393✔
3555
}
3556

3557
void tIpRangeSetDefaultMask(SIpRange *range) {
×
3558
  if (range->type == 0) {
×
3559
    SIpV4Range *p4 = (SIpV4Range *)&range->ipV4;
×
3560
    p4->mask = 128;
×
3561
  } else {
3562
    SIpV6Range *p6 = (SIpV6Range *)&range->ipV6;
×
3563
    p6->mask = 32;
×
3564
  }
3565
}
×
3566
void tFreeSGetUserWhiteListDualRsp(SGetUserWhiteListRsp *pRsp) { taosMemoryFree(pRsp->pWhiteListsDual); }
241!
3567

3568
int32_t tSerializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
54✔
3569
  SEncoder encoder = {0};
54✔
3570
  int32_t  code = 0;
54✔
3571
  int32_t  lino;
3572
  int32_t  tlen;
3573
  tEncoderInit(&encoder, buf, bufLen);
54✔
3574

3575
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
54!
3576
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
108!
3577
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
108!
3578
  ENCODESQL();
162!
3579
  tEndEncode(&encoder);
54✔
3580

3581
_exit:
54✔
3582
  if (code) {
54!
3583
    tlen = code;
×
3584
  } else {
3585
    tlen = encoder.pos;
54✔
3586
  }
3587
  tEncoderClear(&encoder);
54✔
3588
  return tlen;
54✔
3589
}
3590

3591
int32_t tDeserializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
27✔
3592
  SDecoder decoder = {0};
27✔
3593
  int32_t  code = 0;
27✔
3594
  int32_t  lino;
3595
  tDecoderInit(&decoder, buf, bufLen);
27✔
3596

3597
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
27!
3598
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
27!
3599
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
27!
3600
  DECODESQL();
81!
3601
  tEndDecode(&decoder);
27✔
3602

3603
_exit:
27✔
3604
  tDecoderClear(&decoder);
27✔
3605
  return code;
27✔
3606
}
3607

3608
void tFreeSMCfgClusterReq(SMCfgClusterReq *pReq) { FREESQL(); }
54!
3609

3610
int32_t tSerializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
3,812✔
3611
  SEncoder encoder = {0};
3,812✔
3612
  int32_t  code = 0;
3,812✔
3613
  int32_t  lino;
3614
  int32_t  tlen;
3615
  tEncoderInit(&encoder, buf, bufLen);
3,812✔
3616

3617
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,812!
3618
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
7,624!
3619
  ENCODESQL();
9,152!
3620
  tEndEncode(&encoder);
3,812✔
3621

3622
_exit:
3,812✔
3623
  if (code) {
3,812!
3624
    tlen = code;
×
3625
  } else {
3626
    tlen = encoder.pos;
3,812✔
3627
  }
3628
  tEncoderClear(&encoder);
3,812✔
3629
  return tlen;
3,812✔
3630
}
3631

3632
int32_t tDeserializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
1,416✔
3633
  SDecoder decoder = {0};
1,416✔
3634
  int32_t  code = 0;
1,416✔
3635
  int32_t  lino;
3636
  tDecoderInit(&decoder, buf, bufLen);
1,416✔
3637

3638
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,416!
3639
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
2,832!
3640
  DECODESQL();
3,639!
3641
  tEndDecode(&decoder);
1,416✔
3642

3643
_exit:
1,416✔
3644
  tDecoderClear(&decoder);
1,416✔
3645
  return code;
1,416✔
3646
}
3647

3648
void tFreeSMCreateQnodeReq(SMCreateQnodeReq *pReq) { FREESQL(); }
2,149!
3649

3650
void tFreeSDDropQnodeReq(SDDropQnodeReq *pReq) { FREESQL(); }
63!
3651

3652
int32_t tSerializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
142✔
3653
  SEncoder encoder = {0};
142✔
3654
  int32_t  code = 0;
142✔
3655
  int32_t  lino;
3656
  int32_t  tlen;
3657
  tEncoderInit(&encoder, buf, bufLen);
142✔
3658

3659
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
142!
3660
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
284!
3661
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
284!
3662
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
284!
3663
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
284!
3664
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->unsafe));
284!
3665
  ENCODESQL();
426!
3666
  tEndEncode(&encoder);
142✔
3667

3668
_exit:
142✔
3669
  if (code) {
142!
3670
    tlen = code;
×
3671
  } else {
3672
    tlen = encoder.pos;
142✔
3673
  }
3674
  tEncoderClear(&encoder);
142✔
3675
  return tlen;
142✔
3676
}
3677

3678
int32_t tDeserializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
71✔
3679
  SDecoder decoder = {0};
71✔
3680
  int32_t  code = 0;
71✔
3681
  int32_t  lino;
3682
  tDecoderInit(&decoder, buf, bufLen);
71✔
3683

3684
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
71!
3685
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
142!
3686
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
71!
3687
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
142!
3688
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
142!
3689
  if (!tDecodeIsEnd(&decoder)) {
71!
3690
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->unsafe));
142!
3691
  } else {
3692
    pReq->unsafe = false;
×
3693
  }
3694

3695
  DECODESQL();
213!
3696
  tEndDecode(&decoder);
71✔
3697

3698
_exit:
71✔
3699
  tDecoderClear(&decoder);
71✔
3700
  return code;
71✔
3701
}
3702

3703
void tFreeSDropDnodeReq(SDropDnodeReq *pReq) { FREESQL(); }
142!
3704

3705
int32_t tSerializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
56✔
3706
  SEncoder encoder = {0};
56✔
3707
  int32_t  code = 0;
56✔
3708
  int32_t  lino;
3709
  int32_t  tlen;
3710
  tEncoderInit(&encoder, buf, bufLen);
56✔
3711

3712
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
56!
3713
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
112!
3714
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->restoreType));
112!
3715
  ENCODESQL();
168!
3716
  tEndEncode(&encoder);
56✔
3717

3718
_exit:
56✔
3719
  if (code) {
56!
3720
    tlen = code;
×
3721
  } else {
3722
    tlen = encoder.pos;
56✔
3723
  }
3724
  tEncoderClear(&encoder);
56✔
3725
  return tlen;
56✔
3726
}
3727

3728
int32_t tDeserializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
20✔
3729
  SDecoder decoder = {0};
20✔
3730
  int32_t  code = 0;
20✔
3731
  int32_t  lino;
3732
  tDecoderInit(&decoder, buf, bufLen);
20✔
3733

3734
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
20!
3735
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
40!
3736
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->restoreType));
40!
3737
  DECODESQL();
60!
3738
  tEndDecode(&decoder);
20✔
3739

3740
_exit:
20✔
3741
  tDecoderClear(&decoder);
20✔
3742
  return code;
20✔
3743
}
3744

3745
void tFreeSRestoreDnodeReq(SRestoreDnodeReq *pReq) { FREESQL(); }
48!
3746

3747
int32_t tSerializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
810✔
3748
  SEncoder encoder = {0};
810✔
3749
  int32_t  code = 0;
810✔
3750
  int32_t  lino;
3751
  int32_t  tlen;
3752
  tEncoderInit(&encoder, buf, bufLen);
810✔
3753

3754
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
810!
3755
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
1,620!
3756
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
1,620!
3757
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
1,620!
3758
  ENCODESQL();
2,430!
3759
  tEndEncode(&encoder);
810✔
3760

3761
_exit:
810✔
3762
  if (code) {
810!
3763
    tlen = code;
×
3764
  } else {
3765
    tlen = encoder.pos;
810✔
3766
  }
3767
  tEncoderClear(&encoder);
810✔
3768
  return tlen;
810✔
3769
}
3770

3771
int32_t tDeserializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
1,381✔
3772
  SDecoder decoder = {0};
1,381✔
3773
  int32_t  code = 0;
1,381✔
3774
  int32_t  lino;
3775
  tDecoderInit(&decoder, buf, bufLen);
1,381✔
3776

3777
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,381!
3778
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
2,762!
3779
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
1,381!
3780
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
1,381!
3781
  DECODESQL();
4,143!
3782
  tEndDecode(&decoder);
1,381✔
3783

3784
_exit:
1,381✔
3785
  tDecoderClear(&decoder);
1,381✔
3786
  return code;
1,381✔
3787
}
3788

3789
void tFreeSMCfgDnodeReq(SMCfgDnodeReq *pReq) { FREESQL(); }
1,788!
3790

3791
int32_t tSerializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
3,130✔
3792
  SEncoder encoder = {0};
3,130✔
3793
  int32_t  code = 0;
3,130✔
3794
  int32_t  lino;
3795
  int32_t  tlen;
3796
  tEncoderInit(&encoder, buf, bufLen);
3,130✔
3797

3798
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,130!
3799
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->version));
6,260!
3800
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
6,260!
3801
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
6,260!
3802
  tEndEncode(&encoder);
3,130✔
3803

3804
_exit:
3,130✔
3805
  if (code) {
3,130!
3806
    tlen = code;
×
3807
  } else {
3808
    tlen = encoder.pos;
3,130✔
3809
  }
3810
  tEncoderClear(&encoder);
3,130✔
3811
  return tlen;
3,130✔
3812
}
3813

3814
int32_t tDeserializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
1,572✔
3815
  SDecoder decoder = {0};
1,572✔
3816
  int32_t  code = 0;
1,572✔
3817
  int32_t  lino;
3818
  tDecoderInit(&decoder, buf, bufLen);
1,572✔
3819

3820
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,572!
3821
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->version));
3,144!
3822
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
1,572!
3823
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
1,572!
3824
  tEndDecode(&decoder);
1,572✔
3825

3826
_exit:
1,572✔
3827
  tDecoderClear(&decoder);
1,572✔
3828
  return code;
1,572✔
3829
}
3830

3831
int32_t tSerializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
4✔
3832
  SEncoder encoder = {0};
4✔
3833
  int32_t  code = 0;
4✔
3834
  int32_t  lino;
3835
  int32_t  tlen;
3836
  tEncoderInit(&encoder, buf, bufLen);
4✔
3837

3838
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3839
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
8!
3840
  if (pReq->urlLen > 0) {
4!
3841
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
8!
3842
  }
3843
  ENCODESQL();
12!
3844
  tEndEncode(&encoder);
4✔
3845

3846
_exit:
4✔
3847
  if (code) {
4!
3848
    tlen = code;
×
3849
  } else {
3850
    tlen = encoder.pos;
4✔
3851
  }
3852
  tEncoderClear(&encoder);
4✔
3853
  return tlen;
4✔
3854
}
3855

3856
int32_t tDeserializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
2✔
3857
  SDecoder decoder = {0};
2✔
3858
  int32_t  code = 0;
2✔
3859
  int32_t  lino;
3860

3861
  tDecoderInit(&decoder, buf, bufLen);
2✔
3862

3863
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
3864
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
4!
3865
  if (pReq->urlLen > 0) {
2!
3866
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
4!
3867
  }
3868

3869
  DECODESQL();
6!
3870
  tEndDecode(&decoder);
2✔
3871

3872
_exit:
2✔
3873
  tDecoderClear(&decoder);
2✔
3874
  return code;
2✔
3875
}
3876

3877
void tFreeSMCreateAnodeReq(SMCreateAnodeReq *pReq) {
4✔
3878
  taosMemoryFreeClear(pReq->url);
4!
3879
  FREESQL();
4!
3880
}
4✔
3881

3882
int32_t tSerializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
4✔
3883
  SEncoder encoder = {0};
4✔
3884
  int32_t  code = 0;
4✔
3885
  int32_t  lino;
3886
  int32_t  tlen;
3887
  tEncoderInit(&encoder, buf, bufLen);
4✔
3888

3889
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3890
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->anodeId));
8!
3891
  ENCODESQL();
12!
3892
  tEndEncode(&encoder);
4✔
3893

3894
_exit:
4✔
3895
  if (code) {
4!
3896
    tlen = code;
×
3897
  } else {
3898
    tlen = encoder.pos;
4✔
3899
  }
3900
  tEncoderClear(&encoder);
4✔
3901
  return tlen;
4✔
3902
}
3903

3904
int32_t tDeserializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
2✔
3905
  SDecoder decoder = {0};
2✔
3906
  int32_t  code = 0;
2✔
3907
  int32_t  lino;
3908

3909
  tDecoderInit(&decoder, buf, bufLen);
2✔
3910

3911
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
3912
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->anodeId));
4!
3913
  DECODESQL();
6!
3914
  tEndDecode(&decoder);
2✔
3915

3916
_exit:
2✔
3917
  tDecoderClear(&decoder);
2✔
3918
  return code;
2✔
3919
}
3920

3921
void tFreeSMDropAnodeReq(SMDropAnodeReq *pReq) { FREESQL(); }
4!
3922

3923
int32_t tSerializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3924
  return tSerializeSMDropAnodeReq(buf, bufLen, pReq);
×
3925
}
3926

3927
int32_t tDeserializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3928
  return tDeserializeSMDropAnodeReq(buf, bufLen, pReq);
×
3929
}
3930

3931
void tFreeSMUpdateAnodeReq(SMUpdateAnodeReq *pReq) { tFreeSMDropAnodeReq(pReq); }
×
3932

3933
int32_t tSerializeSMCreateBnodeReq(void *buf, int32_t bufLen, SMCreateBnodeReq *pReq) {
162✔
3934
  SEncoder encoder = {0};
162✔
3935
  int32_t  code = 0;
162✔
3936
  int32_t  lino;
3937
  int32_t  tlen;
3938
  tEncoderInit(&encoder, buf, bufLen);
162✔
3939

3940
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
162!
3941
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
324!
3942
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->bnodeProto));
324!
3943

3944
  ENCODESQL();
324!
3945
  tEndEncode(&encoder);
162✔
3946

3947
_exit:
162✔
3948
  if (code) {
162!
3949
    tlen = code;
×
3950
  } else {
3951
    tlen = encoder.pos;
162✔
3952
  }
3953
  tEncoderClear(&encoder);
162✔
3954
  return tlen;
162✔
3955
}
3956

3957
int32_t tDeserializeSMCreateBnodeReq(void *buf, int32_t bufLen, SMCreateBnodeReq *pReq) {
171✔
3958
  SDecoder decoder = {0};
171✔
3959
  int32_t  code = 0;
171✔
3960
  int32_t  lino;
3961

3962
  tDecoderInit(&decoder, buf, bufLen);
171✔
3963

3964
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
171!
3965
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
342!
3966
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->bnodeProto));
342!
3967

3968
  DECODESQL();
432!
3969
  tEndDecode(&decoder);
171✔
3970

3971
_exit:
171✔
3972
  tDecoderClear(&decoder);
171✔
3973
  return code;
171✔
3974
}
3975

3976
void tFreeSMCreateBnodeReq(SMCreateBnodeReq *pReq) {
162✔
3977
  // May free options
3978
  FREESQL();
162!
3979
}
162✔
3980

3981
int32_t tSerializeSMDropBnodeReq(void *buf, int32_t bufLen, SMDropBnodeReq *pReq) {
330✔
3982
  SEncoder encoder = {0};
330✔
3983
  int32_t  code = 0;
330✔
3984
  int32_t  lino;
3985
  int32_t  tlen;
3986
  tEncoderInit(&encoder, buf, bufLen);
330✔
3987

3988
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
330!
3989
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
660!
3990
  ENCODESQL();
660!
3991
  tEndEncode(&encoder);
330✔
3992

3993
_exit:
330✔
3994
  if (code) {
330!
3995
    tlen = code;
×
3996
  } else {
3997
    tlen = encoder.pos;
330✔
3998
  }
3999
  tEncoderClear(&encoder);
330✔
4000
  return tlen;
330✔
4001
}
4002

4003
int32_t tDeserializeSMDropBnodeReq(void *buf, int32_t bufLen, SMDropBnodeReq *pReq) {
191✔
4004
  SDecoder decoder = {0};
191✔
4005
  int32_t  code = 0;
191✔
4006
  int32_t  lino;
4007

4008
  tDecoderInit(&decoder, buf, bufLen);
191✔
4009

4010
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
191!
4011
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
382!
4012
  DECODESQL();
492!
4013
  tEndDecode(&decoder);
191✔
4014

4015
_exit:
191✔
4016
  tDecoderClear(&decoder);
191✔
4017
  return code;
191✔
4018
}
4019

4020
void tFreeSMDropBnodeReq(SMDropBnodeReq *pReq) { FREESQL(); }
191!
4021

4022
int32_t tSerializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
1,130✔
4023
  SEncoder encoder = {0};
1,130✔
4024
  int32_t  code = 0;
1,130✔
4025
  int32_t  lino;
4026
  int32_t  tlen;
4027
  tEncoderInit(&encoder, buf, bufLen);
1,130✔
4028

4029
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,130!
4030
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
2,260!
4031
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
2,260!
4032
  ENCODESQL();
3,390!
4033
  tEndEncode(&encoder);
1,130✔
4034

4035
_exit:
1,130✔
4036
  if (code) {
1,130!
4037
    tlen = code;
×
4038
  } else {
4039
    tlen = encoder.pos;
1,130✔
4040
  }
4041
  tEncoderClear(&encoder);
1,130✔
4042
  return tlen;
1,130✔
4043
}
4044

4045
int32_t tDeserializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
646✔
4046
  SDecoder decoder = {0};
646✔
4047
  int32_t  code = 0;
646✔
4048
  int32_t  lino;
4049
  tDecoderInit(&decoder, buf, bufLen);
646✔
4050

4051
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
646!
4052
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
646!
4053
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
1,292!
4054
  DECODESQL();
1,938!
4055
  tEndDecode(&decoder);
646✔
4056

4057
_exit:
646✔
4058
  tDecoderClear(&decoder);
646✔
4059
  return code;
646✔
4060
}
4061

4062
void tFreeSCreateDnodeReq(SCreateDnodeReq *pReq) { FREESQL(); }
1,211!
4063

4064
int32_t tSerializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
360✔
4065
  SEncoder encoder = {0};
360✔
4066
  int32_t  code = 0;
360✔
4067
  int32_t  lino;
4068
  int32_t  tlen;
4069
  tEncoderInit(&encoder, buf, bufLen);
360✔
4070

4071
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
360!
4072
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
720!
4073
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
720!
4074
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->funcType));
720!
4075
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->scriptType));
720!
4076
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->outputType));
720!
4077
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->outputLen));
720!
4078
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->bufSize));
720!
4079
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->codeLen));
720!
4080
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->signature));
720!
4081

4082
  if (pReq->pCode != NULL) {
360✔
4083
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pCode, pReq->codeLen));
712!
4084
  }
4085

4086
  int32_t commentSize = 0;
360✔
4087
  if (pReq->pComment != NULL) {
360✔
4088
    commentSize = strlen(pReq->pComment) + 1;
18✔
4089
  }
4090
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, commentSize));
360!
4091
  if (pReq->pComment != NULL) {
360✔
4092
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
36!
4093
  }
4094

4095
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
720!
4096

4097
  tEndEncode(&encoder);
360✔
4098

4099
_exit:
360✔
4100
  if (code) {
360!
4101
    tlen = code;
×
4102
  } else {
4103
    tlen = encoder.pos;
360✔
4104
  }
4105
  tEncoderClear(&encoder);
360✔
4106
  return tlen;
360✔
4107
}
4108

4109
int32_t tDeserializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
176✔
4110
  SDecoder decoder = {0};
176✔
4111
  int32_t  code = 0;
176✔
4112
  int32_t  lino;
4113
  tDecoderInit(&decoder, buf, bufLen);
176✔
4114

4115
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
176!
4116
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
176!
4117
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
352!
4118
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->funcType));
352!
4119
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->scriptType));
352!
4120
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->outputType));
352!
4121
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->outputLen));
352!
4122
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->bufSize));
352!
4123
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->codeLen));
352!
4124
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->signature));
352!
4125

4126
  if (pReq->codeLen > 0) {
176✔
4127
    pReq->pCode = taosMemoryCalloc(1, pReq->codeLen);
174!
4128
    if (pReq->pCode == NULL) {
174!
4129
      TAOS_CHECK_EXIT(terrno);
×
4130
    }
4131
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCode));
174!
4132
  }
4133

4134
  int32_t commentSize = 0;
176✔
4135
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &commentSize));
176!
4136
  if (commentSize > 0) {
176✔
4137
    pReq->pComment = taosMemoryCalloc(1, commentSize);
9!
4138
    if (pReq->pComment == NULL) {
9!
4139
      TAOS_CHECK_EXIT(terrno);
×
4140
    }
4141
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
9!
4142
  }
4143

4144
  if (!tDecodeIsEnd(&decoder)) {
176!
4145
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
352!
4146
  } else {
4147
    pReq->orReplace = false;
×
4148
  }
4149

4150
  tEndDecode(&decoder);
176✔
4151

4152
_exit:
176✔
4153
  tDecoderClear(&decoder);
176✔
4154
  return code;
176✔
4155
}
4156

4157
void tFreeSCreateFuncReq(SCreateFuncReq *pReq) {
358✔
4158
  taosMemoryFree(pReq->pCode);
358!
4159
  taosMemoryFree(pReq->pComment);
358!
4160
}
358✔
4161

4162
int32_t tSerializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
180✔
4163
  SEncoder encoder = {0};
180✔
4164
  int32_t  code = 0;
180✔
4165
  int32_t  lino;
4166
  int32_t  tlen;
4167
  tEncoderInit(&encoder, buf, bufLen);
180✔
4168

4169
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
180!
4170
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
360!
4171
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
360!
4172
  tEndEncode(&encoder);
180✔
4173

4174
_exit:
180✔
4175
  if (code) {
180!
4176
    tlen = code;
×
4177
  } else {
4178
    tlen = encoder.pos;
180✔
4179
  }
4180
  tEncoderClear(&encoder);
180✔
4181
  return tlen;
180✔
4182
}
4183

4184
int32_t tDeserializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
90✔
4185
  SDecoder decoder = {0};
90✔
4186
  int32_t  code = 0;
90✔
4187
  int32_t  lino;
4188
  tDecoderInit(&decoder, buf, bufLen);
90✔
4189

4190
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
90!
4191
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
90!
4192
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
180!
4193
  tEndDecode(&decoder);
90✔
4194

4195
_exit:
90✔
4196
  tDecoderClear(&decoder);
90✔
4197
  return code;
90✔
4198
}
4199

4200
int32_t tSerializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
3,508✔
4201
  SEncoder encoder = {0};
3,508✔
4202
  int32_t  code = 0;
3,508✔
4203
  int32_t  lino;
4204
  int32_t  tlen;
4205
  tEncoderInit(&encoder, buf, bufLen);
3,508✔
4206

4207
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,508!
4208
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
7,016!
4209
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreCodeComment));
7,016!
4210

4211
  if (pReq->numOfFuncs != (int32_t)taosArrayGetSize(pReq->pFuncNames)) {
3,508!
4212
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
4213
  }
4214
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
9,066✔
4215
    char *fname = taosArrayGet(pReq->pFuncNames, i);
5,558✔
4216
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, fname));
5,558!
4217
  }
4218

4219
  tEndEncode(&encoder);
3,508✔
4220

4221
_exit:
3,508✔
4222
  if (code) {
3,508!
4223
    tlen = code;
×
4224
  } else {
4225
    tlen = encoder.pos;
3,508✔
4226
  }
4227
  tEncoderClear(&encoder);
3,508✔
4228
  return tlen;
3,508✔
4229
}
4230

4231
int32_t tDeserializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
1,788✔
4232
  SDecoder decoder = {0};
1,788✔
4233
  int32_t  code = 0;
1,788✔
4234
  int32_t  lino;
4235
  tDecoderInit(&decoder, buf, bufLen);
1,788✔
4236

4237
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,788!
4238
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
3,576!
4239
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->ignoreCodeComment));
3,576!
4240

4241
  pReq->pFuncNames = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN);
1,788✔
4242
  if (pReq->pFuncNames == NULL) {
1,788!
4243
    TAOS_CHECK_EXIT(terrno);
×
4244
  }
4245

4246
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
4,601✔
4247
    char fname[TSDB_FUNC_NAME_LEN] = {0};
2,813✔
4248
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fname));
2,813!
4249
    if (taosArrayPush(pReq->pFuncNames, fname) == NULL) {
5,626!
4250
      TAOS_CHECK_EXIT(terrno);
×
4251
    }
4252
  }
4253
  tEndDecode(&decoder);
1,788✔
4254

4255
_exit:
1,788✔
4256
  tDecoderClear(&decoder);
1,788✔
4257
  return code;
1,788✔
4258
}
4259

4260
void tFreeSRetrieveFuncReq(SRetrieveFuncReq *pReq) { taosArrayDestroy(pReq->pFuncNames); }
1,796✔
4261

4262
int32_t tSerializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
3,502✔
4263
  SEncoder encoder = {0};
3,502✔
4264
  int32_t  code = 0;
3,502✔
4265
  int32_t  lino;
4266
  int32_t  tlen;
4267
  tEncoderInit(&encoder, buf, bufLen);
3,502✔
4268

4269
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,502!
4270
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfFuncs));
7,004!
4271

4272
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncInfos)) {
3,502!
4273
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
4274
  }
4275
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
7,006✔
4276
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
3,504✔
4277

4278
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->name));
7,008!
4279
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->funcType));
7,008!
4280
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->scriptType));
7,008!
4281
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->outputType));
7,008!
4282
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->outputLen));
7,008!
4283
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->bufSize));
7,008!
4284
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pInfo->signature));
7,008!
4285
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->codeSize));
7,008!
4286
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->commentSize));
7,008!
4287
    if (pInfo->codeSize) {
3,504✔
4288
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pInfo->pCode, pInfo->codeSize));
1,948!
4289
    }
4290
    if (pInfo->commentSize) {
3,504✔
4291
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->pComment));
20!
4292
    }
4293
  }
4294

4295
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncExtraInfos)) {
3,502!
4296
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
4297
  }
4298
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
7,006✔
4299
    SFuncExtraInfo *extraInfo = taosArrayGet(pRsp->pFuncExtraInfos, i);
3,504✔
4300
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, extraInfo->funcVersion));
7,008!
4301
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, extraInfo->funcCreatedTime));
7,008!
4302
  }
4303

4304
  tEndEncode(&encoder);
3,502✔
4305

4306
_exit:
3,502✔
4307
  if (code) {
3,502!
4308
    tlen = code;
×
4309
  } else {
4310
    tlen = encoder.pos;
3,502✔
4311
  }
4312
  tEncoderClear(&encoder);
3,502✔
4313
  return tlen;
3,502✔
4314
}
4315

4316
int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
1,719✔
4317
  SDecoder decoder = {0};
1,719✔
4318
  int32_t  code = 0;
1,719✔
4319
  int32_t  lino;
4320
  tDecoderInit(&decoder, buf, bufLen);
1,719✔
4321

4322
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,719!
4323
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfFuncs));
3,438!
4324

4325
  pRsp->pFuncInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncInfo));
1,719✔
4326
  if (pRsp->pFuncInfos == NULL) {
1,719!
4327
    TAOS_CHECK_EXIT(terrno);
×
4328
  }
4329

4330
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
3,439✔
4331
    SFuncInfo fInfo = {0};
1,720✔
4332
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.name));
1,720!
4333
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.funcType));
1,720!
4334
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.scriptType));
1,720!
4335
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.outputType));
1,720!
4336
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.outputLen));
1,720!
4337
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.bufSize));
1,720!
4338
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &fInfo.signature));
1,720!
4339
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.codeSize));
1,720!
4340
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.commentSize));
1,720!
4341
    if (fInfo.codeSize) {
1,720✔
4342
      fInfo.pCode = taosMemoryCalloc(1, fInfo.codeSize);
455!
4343
      if (fInfo.pCode == NULL) {
455!
4344
        TAOS_CHECK_EXIT(terrno);
×
4345
      }
4346
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pCode));
455!
4347
    }
4348
    if (fInfo.commentSize) {
1,720✔
4349
      fInfo.pComment = taosMemoryCalloc(1, fInfo.commentSize);
5!
4350
      if (fInfo.pComment == NULL) {
5!
4351
        TAOS_CHECK_EXIT(terrno);
×
4352
      }
4353
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pComment));
5!
4354
    }
4355

4356
    if (taosArrayPush(pRsp->pFuncInfos, &fInfo) == NULL) {
3,440!
4357
      TAOS_CHECK_EXIT(terrno);
×
4358
    }
4359
  }
4360

4361
  pRsp->pFuncExtraInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncExtraInfo));
1,719✔
4362
  if (pRsp->pFuncExtraInfos == NULL) {
1,719!
4363
    TAOS_CHECK_EXIT(terrno);
×
4364
  }
4365
  if (tDecodeIsEnd(&decoder)) {
1,719!
4366
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
×
4367
      SFuncExtraInfo extraInfo = {0};
×
4368
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
×
4369
        TAOS_CHECK_EXIT(terrno);
×
4370
      }
4371
    }
4372
  } else {
4373
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
3,439✔
4374
      SFuncExtraInfo extraInfo = {0};
1,720✔
4375
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &extraInfo.funcVersion));
1,720!
4376
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &extraInfo.funcCreatedTime));
1,720!
4377
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
3,440!
4378
        TAOS_CHECK_EXIT(terrno);
×
4379
      }
4380
    }
4381
  }
4382
  tEndDecode(&decoder);
1,719✔
4383

4384
_exit:
1,719✔
4385
  tDecoderClear(&decoder);
1,719✔
4386
  return code;
1,719✔
4387
}
4388

4389
void tFreeSFuncInfo(SFuncInfo *pInfo) {
3,874✔
4390
  if (NULL == pInfo) {
3,874!
4391
    return;
×
4392
  }
4393

4394
  taosMemoryFree(pInfo->pCode);
3,874!
4395
  taosMemoryFree(pInfo->pComment);
3,874!
4396
}
4397

4398
void tFreeSRetrieveFuncRsp(SRetrieveFuncRsp *pRsp) {
1,793✔
4399
  int32_t size = taosArrayGetSize(pRsp->pFuncInfos);
1,793✔
4400
  for (int32_t i = 0; i < size; ++i) {
3,551✔
4401
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
1,758✔
4402
    tFreeSFuncInfo(pInfo);
1,758✔
4403
  }
4404
  taosArrayDestroy(pRsp->pFuncInfos);
1,793✔
4405
  taosArrayDestroy(pRsp->pFuncExtraInfos);
1,793✔
4406
}
1,793✔
4407

4408
int32_t tSerializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
748✔
4409
  int32_t code = 0;
748✔
4410
  int32_t lino;
4411
  int32_t headLen = sizeof(SMsgHead);
748✔
4412
  if (buf != NULL) {
748✔
4413
    buf = (char *)buf + headLen;
374✔
4414
    bufLen -= headLen;
374✔
4415
  }
4416

4417
  SEncoder encoder = {0};
748✔
4418
  tEncoderInit(&encoder, buf, bufLen);
748✔
4419

4420
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
748!
4421
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
1,496!
4422
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
1,496!
4423
  tEndEncode(&encoder);
748✔
4424

4425
_exit:
748✔
4426
  if (code) {
748!
4427
    tEncoderClear(&encoder);
×
4428
    return code;
×
4429
  } else {
4430
    int32_t tlen = encoder.pos;
748✔
4431
    tEncoderClear(&encoder);
748✔
4432

4433
    if (buf != NULL) {
748✔
4434
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
374✔
4435
      pHead->vgId = htonl(pReq->header.vgId);
374✔
4436
      pHead->contLen = htonl(tlen + headLen);
374✔
4437
    }
4438

4439
    return tlen + headLen;
748✔
4440
  }
4441
}
4442

4443
int32_t tDeserializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
297✔
4444
  int32_t headLen = sizeof(SMsgHead);
297✔
4445

4446
  int32_t   code = 0;
297✔
4447
  int32_t   lino;
4448
  SMsgHead *pHead = buf;
297✔
4449
  pHead->vgId = pReq->header.vgId;
297✔
4450
  pHead->contLen = pReq->header.contLen;
297✔
4451

4452
  SDecoder decoder = {0};
297✔
4453
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
297✔
4454

4455
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
297!
4456
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
297!
4457
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
297!
4458

4459
  tEndDecode(&decoder);
297✔
4460
_exit:
297✔
4461
  tDecoderClear(&decoder);
297✔
4462
  return code;
297✔
4463
}
4464

4465
int32_t tSerializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
596✔
4466
  SEncoder encoder = {0};
596✔
4467
  int32_t  code = 0;
596✔
4468
  int32_t  lino;
4469
  int32_t  tlen;
4470
  tEncoderInit(&encoder, buf, bufLen);
596✔
4471

4472
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
596!
4473
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
1,192!
4474
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->stbName));
1,192!
4475
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
1,192!
4476
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfTags));
1,192!
4477
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfColumns));
1,192!
4478
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->tableType));
1,192!
4479
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay1));
1,192!
4480
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay2));
1,192!
4481
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark1));
1,192!
4482
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark2));
1,192!
4483
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->ttl));
1,192!
4484

4485
  int32_t numOfFuncs = taosArrayGetSize(pRsp->pFuncs);
596✔
4486
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfFuncs));
596!
4487
  for (int32_t i = 0; i < numOfFuncs; ++i) {
596!
4488
    const char *pFunc = taosArrayGet(pRsp->pFuncs, i);
×
4489
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
×
4490
  }
4491

4492
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->commentLen));
1,192!
4493
  if (pRsp->commentLen > 0) {
596!
4494
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->pComment));
×
4495
  }
4496

4497
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
5,186✔
4498
    SSchema *pSchema = &pRsp->pSchemas[i];
4,590✔
4499
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
4,590!
4500
  }
4501

4502
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->tagsLen));
1,192!
4503
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pRsp->pTags, pRsp->tagsLen));
1,192!
4504

4505
  if (withExtSchema(pRsp->tableType)) {
596✔
4506
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
3,168✔
4507
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
2,670✔
4508
      TAOS_CHECK_EXIT(tEncodeSSchemaExt(&encoder, pSchemaExt));
2,670!
4509
    }
4510
  }
4511

4512
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->virtualStb));
1,192!
4513
  if (hasRefCol(pRsp->tableType)) {
596✔
4514
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
212✔
4515
      SColRef *pColRef = &pRsp->pColRefs[i];
176✔
4516
      TAOS_CHECK_EXIT(tEncodeSColRef(&encoder, pColRef));
176!
4517
    }
4518
  }
4519

4520
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->keep));
1,192!
4521

4522
  tEndEncode(&encoder);
596✔
4523

4524
_exit:
596✔
4525
  if (code) {
596!
4526
    tlen = code;
×
4527
  } else {
4528
    tlen = encoder.pos;
596✔
4529
  }
4530
  tEncoderClear(&encoder);
596✔
4531
  return tlen;
596✔
4532
}
4533

4534
int32_t tDeserializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
374✔
4535
  SDecoder decoder = {0};
374✔
4536
  int32_t  code = 0;
374✔
4537
  int32_t  lino;
4538
  tDecoderInit(&decoder, buf, bufLen);
374✔
4539

4540
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
374!
4541
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
374!
4542
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->stbName));
374!
4543
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
374!
4544
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfTags));
748!
4545
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfColumns));
748!
4546
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->tableType));
748!
4547
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay1));
748!
4548
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay2));
748!
4549
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark1));
748!
4550
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark2));
748!
4551
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->ttl));
748!
4552

4553
  int32_t numOfFuncs = 0;
374✔
4554
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFuncs));
374!
4555
  if (numOfFuncs > 0) {
374!
4556
    pRsp->pFuncs = taosArrayInit(numOfFuncs, TSDB_FUNC_NAME_LEN);
×
4557
    if (NULL == pRsp->pFuncs) {
×
4558
      TAOS_CHECK_EXIT(terrno);
×
4559
    }
4560
  }
4561
  for (int32_t i = 0; i < numOfFuncs; ++i) {
374!
4562
    char pFunc[TSDB_FUNC_NAME_LEN];
4563
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
×
4564
    if (taosArrayPush(pRsp->pFuncs, pFunc) == NULL) {
×
4565
      TAOS_CHECK_EXIT(terrno);
×
4566
    }
4567
  }
4568

4569
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->commentLen));
748!
4570
  if (pRsp->commentLen > 0) {
374!
4571
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pRsp->pComment));
×
4572
  } else {
4573
    pRsp->pComment = NULL;
374✔
4574
  }
4575

4576
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
374✔
4577
  pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
374!
4578
  if (pRsp->pSchemas == NULL) {
374!
4579
    TAOS_CHECK_EXIT(terrno);
×
4580
  }
4581

4582
  for (int32_t i = 0; i < totalCols; ++i) {
3,578✔
4583
    SSchema *pSchema = &pRsp->pSchemas[i];
3,204✔
4584
    TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
3,204!
4585
  }
4586

4587
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->tagsLen));
748!
4588
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pRsp->pTags, NULL));
748!
4589

4590
  if (!tDecodeIsEnd(&decoder)) {
374!
4591
    if (withExtSchema(pRsp->tableType) && pRsp->numOfColumns > 0) {
374!
4592
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
323!
4593
      if (pRsp->pSchemaExt == NULL) {
323!
4594
        TAOS_CHECK_EXIT(terrno);
×
4595
      }
4596

4597
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
2,218✔
4598
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
1,895✔
4599
        TAOS_CHECK_EXIT(tDecodeSSchemaExt(&decoder, pSchemaExt));
1,895!
4600
      }
4601
    } else {
4602
      pRsp->pSchemaExt = NULL;
51✔
4603
    }
4604
  }
4605

4606
  if (!tDecodeIsEnd(&decoder)) {
374!
4607
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->virtualStb));
748!
4608
    if (hasRefCol(pRsp->tableType) && pRsp->numOfColumns > 0) {
374!
4609
      pRsp->pColRefs = taosMemoryMalloc(sizeof(SColRef) * pRsp->numOfColumns);
20!
4610
      if (pRsp->pColRefs == NULL) {
20!
4611
        TAOS_CHECK_EXIT(terrno);
×
4612
      }
4613

4614
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
148✔
4615
        SColRef *pColRef = &pRsp->pColRefs[i];
128✔
4616
        TAOS_CHECK_EXIT(tDecodeSColRef(&decoder, pColRef));
128!
4617
      }
4618
    } else {
4619
      pRsp->pColRefs = NULL;
354✔
4620
    }
4621
  }
4622

4623
  if (!tDecodeIsEnd(&decoder)) {
374!
4624
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->keep));
748!
4625
  } else {
4626
    pRsp->keep = 0;
×
4627
  }
4628

4629
  tEndDecode(&decoder);
374✔
4630

4631
_exit:
374✔
4632
  tDecoderClear(&decoder);
374✔
4633
  return code;
374✔
4634
}
4635

4636
void tFreeSTableCfgRsp(STableCfgRsp *pRsp) {
672✔
4637
  if (NULL == pRsp) {
672!
4638
    return;
×
4639
  }
4640

4641
  taosMemoryFreeClear(pRsp->pComment);
672!
4642
  taosMemoryFreeClear(pRsp->pSchemas);
672!
4643
  taosMemoryFreeClear(pRsp->pSchemaExt);
672!
4644
  taosMemoryFreeClear(pRsp->pColRefs);
672!
4645
  taosMemoryFreeClear(pRsp->pTags);
672!
4646

4647
  taosArrayDestroy(pRsp->pFuncs);
672✔
4648
}
4649

4650
int32_t tSerializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
11,573✔
4651
  SEncoder encoder = {0};
11,573✔
4652
  int32_t  code = 0;
11,573✔
4653
  int32_t  lino;
4654
  int32_t  tlen;
4655

4656
  tEncoderInit(&encoder, buf, bufLen);
11,573✔
4657

4658
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,574!
4659
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
23,148!
4660
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfVgroups));
23,148!
4661
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
23,148!
4662
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
23,148!
4663
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
23,148!
4664
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
23,148!
4665
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
23,148!
4666
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
23,148!
4667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
23,148!
4668
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
23,148!
4669
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
23,148!
4670
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
23,148!
4671
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
23,148!
4672
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
23,148!
4673
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
23,148!
4674
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
23,148!
4675
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
23,148!
4676
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
23,148!
4677
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
23,148!
4678
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
23,148!
4679
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->schemaless));
23,148!
4680
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
23,148!
4681
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
23,148!
4682
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
23,148!
4683
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
23,148!
4684
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
23,148!
4685
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
23,148!
4686
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
23,148!
4687
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreExist));
23,148!
4688
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
23,148!
4689
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
11,628✔
4690
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
54✔
4691
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
108!
4692
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
108!
4693
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
108!
4694
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
108!
4695
  }
4696
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
23,148!
4697
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
23,148!
4698

4699
  ENCODESQL();
34,700!
4700

4701
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
23,148!
4702
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
23,148!
4703
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
23,148!
4704
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
23,148!
4705
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
23,148!
4706
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeListStr));
23,148!
4707

4708
  // auto-compact parameters
4709
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
23,148!
4710
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
23,148!
4711
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
23,148!
4712
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
23,148!
4713

4714
  tEndEncode(&encoder);
11,574✔
4715

4716
_exit:
11,574✔
4717
  if (code) {
11,574!
4718
    tlen = code;
×
4719
  } else {
4720
    tlen = encoder.pos;
11,574✔
4721
  }
4722
  tEncoderClear(&encoder);
11,574✔
4723
  return tlen;
11,573✔
4724
}
4725

4726
int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
6,059✔
4727
  SDecoder decoder = {0};
6,059✔
4728
  int32_t  code = 0;
6,059✔
4729
  int32_t  lino;
4730
  tDecoderInit(&decoder, buf, bufLen);
6,059✔
4731

4732
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6,059!
4733
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
6,059!
4734
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfVgroups));
12,118!
4735
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
12,118!
4736
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
12,118!
4737
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
12,118!
4738
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
12,118!
4739
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
12,118!
4740
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
12,118!
4741
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
12,118!
4742
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
12,118!
4743
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
12,118!
4744
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
12,118!
4745
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
12,118!
4746
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
12,118!
4747
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
12,118!
4748
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
12,118!
4749
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
12,118!
4750
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
12,118!
4751
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
12,118!
4752
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
12,118!
4753
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->schemaless));
12,118!
4754
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
12,118!
4755
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
12,118!
4756
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
12,118!
4757
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
12,118!
4758
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
12,118!
4759
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
12,118!
4760
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
12,118!
4761
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreExist));
12,118!
4762
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
12,118!
4763
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
6,059✔
4764
  if (pReq->pRetensions == NULL) {
6,059!
4765
    TAOS_CHECK_EXIT(terrno);
×
4766
  }
4767

4768
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
6,083✔
4769
    SRetention rentension = {0};
24✔
4770
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
24!
4771
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
24!
4772
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
24!
4773
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
24!
4774
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
48!
4775
      TAOS_CHECK_EXIT(terrno);
×
4776
    }
4777
  }
4778

4779
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
12,118!
4780

4781
  if (!tDecodeIsEnd(&decoder)) {
6,059!
4782
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
12,118!
4783
  } else {
4784
    pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
4785
  }
4786

4787
  DECODESQL();
18,167!
4788

4789
  if (!tDecodeIsEnd(&decoder)) {
6,059!
4790
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
12,118!
4791
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
12,118!
4792
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
12,118!
4793
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
12,118!
4794
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
12,118!
4795
  } else {
4796
    pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
4797
    pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
4798
    pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
4799
    pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
4800
    pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
4801
  }
4802

4803
  if (!tDecodeIsEnd(&decoder)) {
6,059!
4804
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeListStr));
6,059!
4805
  }
4806

4807
  if (!tDecodeIsEnd(&decoder)) {
6,059!
4808
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
12,118!
4809
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
12,118!
4810
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
12,118!
4811
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
12,118!
4812
  } else {
4813
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4814
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4815
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4816
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4817
  }
4818

4819
  tEndDecode(&decoder);
6,059✔
4820

4821
_exit:
6,059✔
4822
  tDecoderClear(&decoder);
6,059✔
4823
  return code;
6,059✔
4824
}
4825

4826
void tFreeSCreateDbReq(SCreateDbReq *pReq) {
11,979✔
4827
  taosArrayDestroy(pReq->pRetensions);
11,979✔
4828
  pReq->pRetensions = NULL;
11,979✔
4829
  FREESQL();
11,979!
4830
}
11,979✔
4831

4832
int32_t tSerializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
726✔
4833
  SEncoder encoder = {0};
726✔
4834
  int32_t  code = 0;
726✔
4835
  int32_t  lino;
4836
  int32_t  tlen;
4837

4838
  tEncoderInit(&encoder, buf, bufLen);
726✔
4839

4840
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
726!
4841
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
1,452!
4842
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
1,452!
4843
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
1,452!
4844
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
1,452!
4845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
1,452!
4846
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
1,452!
4847
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
1,452!
4848
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
1,452!
4849
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
1,452!
4850
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
1,452!
4851
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
1,452!
4852
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
1,452!
4853
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
1,452!
4854
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
1,452!
4855
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
1,452!
4856

4857
  // 1st modification
4858
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
1,452!
4859
  // 2nd modification
4860
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
1,452!
4861
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
1,452!
4862
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
1,452!
4863

4864
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
1,452!
4865
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
1,452!
4866

4867
  ENCODESQL();
2,178!
4868
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
1,452!
4869
  // auto compact config
4870
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
1,452!
4871
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
1,452!
4872
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
1,452!
4873
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
1,452!
4874
  tEndEncode(&encoder);
726✔
4875

4876
_exit:
726✔
4877
  if (code) {
726!
4878
    tlen = code;
×
4879
  } else {
4880
    tlen = encoder.pos;
726✔
4881
  }
4882
  tEncoderClear(&encoder);
726✔
4883
  return tlen;
726✔
4884
}
4885

4886
int32_t tDeserializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
409✔
4887
  SDecoder decoder = {0};
409✔
4888
  int32_t  code = 0;
409✔
4889
  int32_t  lino;
4890
  tDecoderInit(&decoder, buf, bufLen);
409✔
4891

4892
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
409!
4893
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
409!
4894
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
818!
4895
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
818!
4896
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
818!
4897
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
818!
4898
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
818!
4899
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
818!
4900
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
818!
4901
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
818!
4902
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
818!
4903
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
818!
4904
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
818!
4905
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
818!
4906
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
818!
4907
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
818!
4908

4909
  // 1st modification
4910
  if (!tDecodeIsEnd(&decoder)) {
409!
4911
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
818!
4912
  } else {
4913
    pReq->minRows = -1;
×
4914
  }
4915

4916
  // 2nd modification
4917
  if (!tDecodeIsEnd(&decoder)) {
409!
4918
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
818!
4919
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
818!
4920
  } else {
4921
    pReq->walRetentionPeriod = -1;
×
4922
    pReq->walRetentionSize = -1;
×
4923
  }
4924
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
409✔
4925
  if (!tDecodeIsEnd(&decoder)) {
409!
4926
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
818!
4927
  }
4928

4929
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
409✔
4930
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
409✔
4931
  if (!tDecodeIsEnd(&decoder)) {
409!
4932
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
818!
4933
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
818!
4934
  }
4935

4936
  DECODESQL();
1,227!
4937
  pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
409✔
4938
  if (!tDecodeIsEnd(&decoder)) {
409!
4939
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
818!
4940
  }
4941

4942
  // auto compact config
4943
  if (!tDecodeIsEnd(&decoder)) {
409!
4944
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
818!
4945
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
818!
4946
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
818!
4947
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
818!
4948
  } else {
4949
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4950
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4951
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4952
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4953
  }
4954
  tEndDecode(&decoder);
409✔
4955

4956
_exit:
409✔
4957
  tDecoderClear(&decoder);
409✔
4958
  return code;
409✔
4959
}
4960

4961
void tFreeSAlterDbReq(SAlterDbReq *pReq) { FREESQL(); }
772!
4962

4963
int32_t tSerializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
8,306✔
4964
  SEncoder encoder = {0};
8,306✔
4965
  int32_t  code = 0;
8,306✔
4966
  int32_t  lino;
4967
  int32_t  tlen;
4968
  tEncoderInit(&encoder, buf, bufLen);
8,306✔
4969

4970
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8,306!
4971
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
16,612!
4972
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreNotExists));
16,612!
4973
  ENCODESQL();
24,902!
4974
  tEndEncode(&encoder);
8,306✔
4975

4976
_exit:
8,306✔
4977
  if (code) {
8,306!
4978
    tlen = code;
×
4979
  } else {
4980
    tlen = encoder.pos;
8,306✔
4981
  }
4982
  tEncoderClear(&encoder);
8,306✔
4983
  return tlen;
8,306✔
4984
}
4985

4986
int32_t tDeserializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
4,696✔
4987
  SDecoder decoder = {0};
4,696✔
4988
  int32_t  code = 0;
4,696✔
4989
  int32_t  lino;
4990
  tDecoderInit(&decoder, buf, bufLen);
4,696✔
4991

4992
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,696!
4993
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4,696!
4994
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreNotExists));
9,392!
4995
  DECODESQL();
14,080!
4996
  tEndDecode(&decoder);
4,696✔
4997

4998
_exit:
4,696✔
4999
  tDecoderClear(&decoder);
4,696✔
5000
  return code;
4,696✔
5001
}
5002

5003
void tFreeSDropDbReq(SDropDbReq *pReq) { FREESQL(); }
8,841!
5004

5005
int32_t tSerializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
9,214✔
5006
  SEncoder encoder = {0};
9,214✔
5007
  int32_t  code = 0;
9,214✔
5008
  int32_t  lino;
5009
  int32_t  tlen;
5010
  tEncoderInit(&encoder, buf, bufLen);
9,214✔
5011

5012
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
9,214!
5013
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->db));
18,428!
5014
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->uid));
18,428!
5015
  tEndEncode(&encoder);
9,214✔
5016

5017
_exit:
9,214✔
5018
  if (code) {
9,214!
5019
    tlen = code;
×
5020
  } else {
5021
    tlen = encoder.pos;
9,214✔
5022
  }
5023
  tEncoderClear(&encoder);
9,214✔
5024
  return tlen;
9,214✔
5025
}
5026

5027
int32_t tDeserializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
4,056✔
5028
  SDecoder decoder = {0};
4,056✔
5029
  int32_t  code = 0;
4,056✔
5030
  int32_t  lino;
5031
  tDecoderInit(&decoder, buf, bufLen);
4,056✔
5032

5033
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,056!
5034
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->db));
4,056!
5035
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->uid));
8,112!
5036
  tEndDecode(&decoder);
4,056✔
5037

5038
_exit:
4,056✔
5039
  tDecoderClear(&decoder);
4,056✔
5040
  return code;
4,056✔
5041
}
5042

5043
int32_t tSerializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
320,665✔
5044
  SEncoder encoder = {0};
320,665✔
5045
  int32_t  code = 0;
320,665✔
5046
  int32_t  lino;
5047
  int32_t  tlen;
5048
  tEncoderInit(&encoder, buf, bufLen);
320,665✔
5049

5050
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
320,807!
5051
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
641,686!
5052
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbId));
641,686!
5053
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
641,686!
5054
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTable));
641,686!
5055
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stateTs));
641,686!
5056
  tEndEncode(&encoder);
320,843✔
5057

5058
_exit:
320,950✔
5059
  if (code) {
320,950!
5060
    tlen = code;
×
5061
  } else {
5062
    tlen = encoder.pos;
320,950✔
5063
  }
5064
  tEncoderClear(&encoder);
320,950✔
5065
  return tlen;
320,905✔
5066
}
5067

5068
int32_t tDeserializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
3,567,627✔
5069
  SDecoder decoder = {0};
3,567,627✔
5070
  int32_t  code = 0;
3,567,627✔
5071
  int32_t  lino;
5072
  tDecoderInit(&decoder, buf, bufLen);
3,567,627✔
5073

5074
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,567,648!
5075
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
3,567,662!
5076
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbId));
7,135,259!
5077
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
7,135,228!
5078
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTable));
7,135,179!
5079
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stateTs));
7,135,141!
5080
  tEndDecode(&decoder);
3,567,565✔
5081

5082
_exit:
3,567,568✔
5083
  tDecoderClear(&decoder);
3,567,568✔
5084
  return code;
3,567,654✔
5085
}
5086

5087
int32_t tSerializeSVSubTablesReq(void *buf, int32_t bufLen, SVSubTablesReq *pReq) {
48✔
5088
  SEncoder encoder = {0};
48✔
5089
  int32_t  code = 0;
48✔
5090
  int32_t  lino;
5091
  int32_t  tlen;
5092
  tEncoderInit(&encoder, buf, bufLen);
48✔
5093

5094
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
48!
5095
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
96!
5096
  tEndEncode(&encoder);
48✔
5097

5098
_exit:
48✔
5099
  if (code) {
48!
5100
    tlen = code;
×
5101
  } else {
5102
    tlen = encoder.pos;
48✔
5103
  }
5104
  tEncoderClear(&encoder);
48✔
5105
  return tlen;
48✔
5106
}
5107

5108
int32_t tDeserializeSVSubTablesReq(void *buf, int32_t bufLen, SVSubTablesReq *pReq) {
×
5109
  SDecoder decoder = {0};
×
5110
  int32_t  code = 0;
×
5111
  int32_t  lino;
5112
  tDecoderInit(&decoder, buf, bufLen);
×
5113

5114
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5115
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
×
5116
  tEndDecode(&decoder);
×
5117

5118
_exit:
×
5119
  tDecoderClear(&decoder);
×
5120
  return code;
×
5121
}
5122

5123
int32_t tSerializeSVSubTablesRspImpl(SEncoder *pEncoder, SVSubTablesRsp *pRsp) {
72✔
5124
  int32_t code = 0;
72✔
5125
  int32_t lino;
5126
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
144!
5127
  int32_t numOfTables = taosArrayGetSize(pRsp->pTables);
72✔
5128
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, numOfTables));
72!
5129
  for (int32_t i = 0; i < numOfTables; ++i) {
108✔
5130
    SVCTableRefCols *pTb = (SVCTableRefCols *)taosArrayGetP(pRsp->pTables, i);
36✔
5131
    TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTb->uid));
72!
5132
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTb->numOfSrcTbls));
72!
5133
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTb->numOfColRefs));
72!
5134
    for (int32_t n = 0; n < pTb->numOfColRefs; ++n) {
324✔
5135
      SRefColInfo *pCol = pTb->refCols + n;
288✔
5136
      TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pCol->colId));
576!
5137
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refDbName));
576!
5138
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refTableName));
576!
5139
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refColName));
576!
5140
    }
5141
  }
5142

5143
_exit:
72✔
5144

5145
  return code;
72✔
5146
}
5147

5148
int32_t tSerializeSVSubTablesRsp(void *buf, int32_t bufLen, SVSubTablesRsp *pRsp) {
×
5149
  SEncoder encoder = {0};
×
5150
  int32_t  code = 0;
×
5151
  int32_t  lino;
5152
  int32_t  tlen;
5153
  tEncoderInit(&encoder, buf, bufLen);
×
5154

5155
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5156
  TAOS_CHECK_EXIT(tSerializeSVSubTablesRspImpl(&encoder, pRsp));
×
5157

5158
  tEndEncode(&encoder);
×
5159

5160
_exit:
×
5161
  if (code) {
×
5162
    tlen = code;
×
5163
  } else {
5164
    tlen = encoder.pos;
×
5165
  }
5166
  tEncoderClear(&encoder);
×
5167
  return tlen;
×
5168
}
5169

5170
int32_t tDeserializeSVSubTablesRspImpl(SDecoder *pDecoder, SVSubTablesRsp *pRsp) {
24✔
5171
  int32_t         code = 0;
24✔
5172
  int32_t         lino;
5173
  SVCTableRefCols tb = {0};
24✔
5174
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
48!
5175
  int32_t numOfTables = 0;
24✔
5176
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &numOfTables));
24!
5177
  if (numOfTables > 0) {
24✔
5178
    pRsp->pTables = taosArrayInit(numOfTables, POINTER_BYTES);
6✔
5179
    if (NULL == pRsp->pTables) {
6!
5180
      code = terrno;
×
5181
      return code;
×
5182
    }
5183

5184
    for (int32_t i = 0; i < numOfTables; ++i) {
12✔
5185
      TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &tb.uid));
6!
5186
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &tb.numOfSrcTbls));
6!
5187
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &tb.numOfColRefs));
6!
5188
      if (tb.numOfColRefs > 0) {
6!
5189
        SVCTableRefCols *pTb = taosMemoryCalloc(1, sizeof(tb) + tb.numOfColRefs * sizeof(SRefColInfo));
6!
5190
        if (NULL == pTb) {
6!
5191
          code = terrno;
×
5192
          return code;
×
5193
        }
5194
        if (NULL == taosArrayPush(pRsp->pTables, &pTb)) {
12!
5195
          code = terrno;
×
5196
          taosMemoryFree(pTb);
×
5197
          return code;
×
5198
        }
5199

5200
        pTb->uid = tb.uid;
6✔
5201
        pTb->numOfSrcTbls = tb.numOfSrcTbls;
6✔
5202
        pTb->numOfColRefs = tb.numOfColRefs;
6✔
5203
        pTb->refCols = (SRefColInfo *)(pTb + 1);
6✔
5204
        for (int32_t n = 0; n < tb.numOfColRefs; ++n) {
78✔
5205
          TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &pTb->refCols[n].colId));
144!
5206
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refDbName));
72!
5207
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refTableName));
72!
5208
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refColName));
72!
5209
        }
5210
      }
5211
    }
5212
  }
5213

5214
_exit:
24✔
5215

5216
  return code;
24✔
5217
}
5218

5219
int32_t tDeserializeSVSubTablesRsp(void *buf, int32_t bufLen, SVSubTablesRsp *pRsp) {
24✔
5220
  SDecoder decoder = {0};
24✔
5221
  int32_t  code = 0;
24✔
5222
  int32_t  lino;
5223
  tDecoderInit(&decoder, buf, bufLen);
24✔
5224

5225
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
24!
5226
  TAOS_CHECK_EXIT(tDeserializeSVSubTablesRspImpl(&decoder, pRsp));
24!
5227

5228
  tEndDecode(&decoder);
24✔
5229

5230
_exit:
24✔
5231

5232
  tDecoderClear(&decoder);
24✔
5233
  return code;
24✔
5234
}
5235

5236
void tFreeSVCTableRefCols(void *pParam) {
18✔
5237
  SVCTableRefCols *pCols = *(SVCTableRefCols **)pParam;
18✔
5238
  if (NULL == pCols) {
18!
5239
    return;
×
5240
  }
5241

5242
  taosMemoryFree(pCols);
18!
5243
}
5244

5245
void tDestroySVSubTablesRsp(void *rsp) {
10,048✔
5246
  if (NULL == rsp) {
10,048!
5247
    return;
×
5248
  }
5249

5250
  SVSubTablesRsp *pRsp = (SVSubTablesRsp *)rsp;
10,048✔
5251

5252
  taosArrayDestroyEx(pRsp->pTables, tFreeSVCTableRefCols);
10,048✔
5253
}
5254

5255
int32_t tSerializeSVStbRefDbsReq(void *buf, int32_t bufLen, SVStbRefDbsReq *pReq) {
19,976✔
5256
  SEncoder encoder = {0};
19,976✔
5257
  int32_t  code = 0;
19,976✔
5258
  int32_t  lino;
5259
  int32_t  tlen;
5260
  tEncoderInit(&encoder, buf, bufLen);
19,976✔
5261

5262
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
19,976!
5263
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
39,952!
5264
  tEndEncode(&encoder);
19,976✔
5265

5266
_exit:
19,976✔
5267
  if (code) {
19,976!
5268
    tlen = code;
×
5269
  } else {
5270
    tlen = encoder.pos;
19,976✔
5271
  }
5272
  tEncoderClear(&encoder);
19,976✔
5273
  return tlen;
19,976✔
5274
}
5275

5276
int32_t tDeserializeSVStbRefDbsReq(void *buf, int32_t bufLen, SVStbRefDbsReq *pReq) {
130✔
5277
  SDecoder decoder = {0};
130✔
5278
  int32_t  code = 0;
130✔
5279
  int32_t  lino;
5280
  tDecoderInit(&decoder, buf, bufLen);
130✔
5281

5282
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
130!
5283
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
264!
5284
  tEndDecode(&decoder);
132✔
5285

5286
_exit:
132✔
5287
  tDecoderClear(&decoder);
132✔
5288
  return code;
132✔
5289
}
5290

5291
int32_t tSerializeSVStbRefDbsRspImpl(SEncoder *pEncoder, SVStbRefDbsRsp *pRsp) {
264✔
5292
  int32_t code = 0;
264✔
5293
  int32_t lino;
5294
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
528!
5295
  int32_t numOfDbs = taosArrayGetSize(pRsp->pDbs);
264✔
5296
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, numOfDbs));
264!
5297
  for (int32_t i = 0; i < numOfDbs; ++i) {
396✔
5298
    char *pDbName = (char *)taosArrayGetP(pRsp->pDbs, i);
132✔
5299
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pDbName));
132!
5300
  }
5301

5302
_exit:
264✔
5303

5304
  return code;
264✔
5305
}
5306

5307
int32_t tSerializeSVStbRefDbsRsp(void *buf, int32_t bufLen, SVStbRefDbsRsp *pRsp) {
264✔
5308
  SEncoder encoder = {0};
264✔
5309
  int32_t  code = 0;
264✔
5310
  int32_t  lino;
5311
  int32_t  tlen;
5312
  tEncoderInit(&encoder, buf, bufLen);
264✔
5313

5314
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
264!
5315
  TAOS_CHECK_EXIT(tSerializeSVStbRefDbsRspImpl(&encoder, pRsp));
264!
5316

5317
  tEndEncode(&encoder);
264✔
5318

5319
_exit:
264✔
5320
  if (code) {
264!
5321
    tlen = code;
×
5322
  } else {
5323
    tlen = encoder.pos;
264✔
5324
  }
5325
  tEncoderClear(&encoder);
264✔
5326
  return tlen;
264✔
5327
}
5328

5329
int32_t tDeserializeSVStbRefDbsRspImpl(SDecoder *pDecoder, SVStbRefDbsRsp *pRsp) {
9,987✔
5330
  int32_t code = 0;
9,987✔
5331
  int32_t lino;
5332
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
19,973!
5333
  int32_t numOfDbs = 0;
9,986✔
5334
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &numOfDbs));
9,986!
5335
  if (numOfDbs > 0) {
9,986✔
5336
    pRsp->pDbs = taosArrayInit(numOfDbs, sizeof(void *));
9,832✔
5337
    if (NULL == pRsp->pDbs) {
9,832!
5338
      code = terrno;
×
5339
      return code;
×
5340
    }
5341

5342
    for (int32_t i = 0; i < numOfDbs; ++i) {
34,228✔
5343
      char *tbName;
5344
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &tbName));
24,395!
5345
      if (taosArrayPush(pRsp->pDbs, &tbName) == NULL) {
48,791!
5346
        TAOS_CHECK_EXIT(terrno);
×
5347
      }
5348
    }
5349
  }
5350

5351
_exit:
9,989✔
5352

5353
  return code;
9,989✔
5354
}
5355

5356
int32_t tDeserializeSVStbRefDbsRsp(void *buf, int32_t bufLen, SVStbRefDbsRsp *pRsp) {
9,986✔
5357
  SDecoder decoder = {0};
9,986✔
5358
  int32_t  code = 0;
9,986✔
5359
  int32_t  lino;
5360
  tDecoderInit(&decoder, buf, bufLen);
9,986✔
5361

5362
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,987!
5363
  TAOS_CHECK_EXIT(tDeserializeSVStbRefDbsRspImpl(&decoder, pRsp));
9,986!
5364

5365
  tEndDecode(&decoder);
9,987✔
5366

5367
_exit:
9,987✔
5368

5369
  tDecoderClear(&decoder);
9,987✔
5370
  return code;
9,986✔
5371
}
5372

5373
void tDestroySVStbRefDbsRsp(void *rsp) {
10,120✔
5374
  if (NULL == rsp) {
10,120!
5375
    return;
×
5376
  }
5377

5378
  SVStbRefDbsRsp *pRsp = (SVStbRefDbsRsp *)rsp;
10,120✔
5379

5380
  taosArrayDestroyP(pRsp->pDbs, NULL);
10,120✔
5381
  pRsp->pDbs = NULL;
10,120✔
5382
}
5383

5384
int32_t tSerializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
24,244✔
5385
  SEncoder encoder = {0};
24,244✔
5386
  int32_t  code = 0;
24,244✔
5387
  int32_t  lino;
5388
  int32_t  tlen;
5389

5390
  tEncoderInit(&encoder, buf, bufLen);
24,244✔
5391

5392
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
24,244!
5393
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
48,488!
5394
  tEndEncode(&encoder);
24,244✔
5395

5396
_exit:
24,244✔
5397
  if (code) {
24,244!
5398
    tlen = code;
×
5399
  } else {
5400
    tlen = encoder.pos;
24,244✔
5401
  }
5402
  tEncoderClear(&encoder);
24,244✔
5403
  return tlen;
24,244✔
5404
}
5405

5406
int32_t tDeserializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
11,887✔
5407
  SDecoder decoder = {0};
11,887✔
5408
  int32_t  code = 0;
11,887✔
5409
  int32_t  lino;
5410
  tDecoderInit(&decoder, buf, bufLen);
11,887✔
5411

5412
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,887!
5413
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->rowNum));
23,774!
5414
  tEndDecode(&decoder);
11,887✔
5415

5416
_exit:
11,887✔
5417
  tDecoderClear(&decoder);
11,887✔
5418
  return code;
11,887✔
5419
}
5420

5421
int32_t tSerializeSDnodeListReq(void *buf, int32_t bufLen, SDnodeListReq *pReq) {
914✔
5422
  SEncoder encoder = {0};
914✔
5423
  int32_t  code = 0;
914✔
5424
  int32_t  lino;
5425
  int32_t  tlen;
5426
  tEncoderInit(&encoder, buf, bufLen);
914✔
5427

5428
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
914!
5429
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
1,828!
5430
  tEndEncode(&encoder);
914✔
5431

5432
_exit:
914✔
5433
  if (code) {
914!
5434
    tlen = code;
×
5435
  } else {
5436
    tlen = encoder.pos;
914✔
5437
  }
5438
  tEncoderClear(&encoder);
914✔
5439
  return tlen;
914✔
5440
}
5441

5442
int32_t tSerializeSServerVerReq(void *buf, int32_t bufLen, SServerVerReq *pReq) {
2✔
5443
  SEncoder encoder = {0};
2✔
5444
  int32_t  code = 0;
2✔
5445
  int32_t  lino;
5446
  int32_t  tlen;
5447
  tEncoderInit(&encoder, buf, bufLen);
2✔
5448

5449
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5450
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
4!
5451
  tEndEncode(&encoder);
2✔
5452

5453
_exit:
2✔
5454
  if (code) {
2!
5455
    tlen = code;
×
5456
  } else {
5457
    tlen = encoder.pos;
2✔
5458
  }
5459
  tEncoderClear(&encoder);
2✔
5460
  return tlen;
2✔
5461
}
5462

5463
int32_t tSerializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
2✔
5464
  SEncoder encoder = {0};
2✔
5465
  int32_t  code = 0;
2✔
5466
  int32_t  lino;
5467
  int32_t  tlen;
5468
  tEncoderInit(&encoder, buf, bufLen);
2✔
5469

5470
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5471
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->ver));
4!
5472
  tEndEncode(&encoder);
2✔
5473

5474
_exit:
2✔
5475
  if (code) {
2!
5476
    tlen = code;
×
5477
  } else {
5478
    tlen = encoder.pos;
2✔
5479
  }
5480
  tEncoderClear(&encoder);
2✔
5481
  return tlen;
2✔
5482
}
5483

5484
int32_t tDeserializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
1✔
5485
  SDecoder decoder = {0};
1✔
5486
  int32_t  code = 0;
1✔
5487
  int32_t  lino;
5488
  tDecoderInit(&decoder, buf, bufLen);
1✔
5489

5490
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
5491
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->ver));
1!
5492

5493
  tEndDecode(&decoder);
1✔
5494
_exit:
1✔
5495
  tDecoderClear(&decoder);
1✔
5496
  return code;
1✔
5497
}
5498

5499
int32_t tSerializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
23,776✔
5500
  SEncoder encoder = {0};
23,776✔
5501
  int32_t  code = 0;
23,776✔
5502
  int32_t  lino;
5503
  int32_t  tlen;
5504
  tEncoderInit(&encoder, buf, bufLen);
23,776✔
5505

5506
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
23,776!
5507
  int32_t num = taosArrayGetSize(pRsp->qnodeList);
23,776✔
5508
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
23,776!
5509
  for (int32_t i = 0; i < num; ++i) {
46,808✔
5510
    SQueryNodeLoad *pLoad = taosArrayGet(pRsp->qnodeList, i);
23,032✔
5511
    TAOS_CHECK_EXIT(tEncodeSQueryNodeLoad(&encoder, pLoad));
23,032!
5512
  }
5513
  tEndEncode(&encoder);
23,776✔
5514

5515
_exit:
23,776✔
5516
  if (code) {
23,776!
5517
    tlen = code;
×
5518
  } else {
5519
    tlen = encoder.pos;
23,776✔
5520
  }
5521
  tEncoderClear(&encoder);
23,776✔
5522
  return tlen;
23,776✔
5523
}
5524

5525
int32_t tDeserializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
12,122✔
5526
  SDecoder decoder = {0};
12,122✔
5527
  int32_t  code = 0;
12,122✔
5528
  int32_t  lino;
5529
  tDecoderInit(&decoder, buf, bufLen);
12,122✔
5530

5531
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12,122!
5532
  int32_t num = 0;
12,122✔
5533
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
12,122!
5534
  if (NULL == pRsp->qnodeList) {
12,122!
5535
    pRsp->qnodeList = taosArrayInit(num, sizeof(SQueryNodeLoad));
×
5536
    if (NULL == pRsp->qnodeList) {
×
5537
      TAOS_CHECK_EXIT(terrno);
×
5538
    }
5539
  }
5540

5541
  for (int32_t i = 0; i < num; ++i) {
23,676✔
5542
    SQueryNodeLoad load = {0};
11,554✔
5543
    TAOS_CHECK_EXIT(tDecodeSQueryNodeLoad(&decoder, &load));
11,554!
5544
    if (taosArrayPush(pRsp->qnodeList, &load) == NULL) {
23,108!
5545
      TAOS_CHECK_EXIT(terrno);
×
5546
    }
5547
  }
5548
  tEndDecode(&decoder);
12,122✔
5549

5550
_exit:
12,122✔
5551
  tDecoderClear(&decoder);
12,122✔
5552
  return code;
12,122✔
5553
}
5554

5555
void tFreeSQnodeListRsp(SQnodeListRsp *pRsp) { taosArrayDestroy(pRsp->qnodeList); }
11,888✔
5556

5557
int32_t tSerializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
15,280✔
5558
  SEncoder encoder = {0};
15,280✔
5559
  int32_t  code = 0;
15,280✔
5560
  int32_t  lino;
5561
  int32_t  tlen;
5562
  tEncoderInit(&encoder, buf, bufLen);
15,280✔
5563

5564
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
15,280!
5565
  int32_t num = taosArrayGetSize(pRsp->dnodeList);
15,280✔
5566
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
15,280!
5567
  for (int32_t i = 0; i < num; ++i) {
31,232✔
5568
    SDNodeAddr *pAddr = taosArrayGet(pRsp->dnodeList, i);
15,952✔
5569
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pAddr->nodeId));
31,904!
5570
    TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, &pAddr->epSet));
15,952!
5571
  }
5572
  tEndEncode(&encoder);
15,280✔
5573

5574
_exit:
15,280✔
5575
  if (code) {
15,280!
5576
    tlen = code;
×
5577
  } else {
5578
    tlen = encoder.pos;
15,280✔
5579
  }
5580
  tEncoderClear(&encoder);
15,280✔
5581
  return tlen;
15,280✔
5582
}
5583

5584
int32_t tDeserializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
448✔
5585
  SDecoder decoder = {0};
448✔
5586
  int32_t  code = 0;
448✔
5587
  int32_t  lino;
5588
  tDecoderInit(&decoder, buf, bufLen);
448✔
5589

5590
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
448!
5591
  int32_t num = 0;
448✔
5592
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
448!
5593
  if (NULL == pRsp->dnodeList) {
448!
5594
    pRsp->dnodeList = taosArrayInit(num, sizeof(SDNodeAddr));
448✔
5595
    if (NULL == pRsp->dnodeList) {
448!
5596
      TAOS_CHECK_EXIT(terrno);
×
5597
    }
5598
  }
5599

5600
  for (int32_t i = 0; i < num; ++i) {
1,546✔
5601
    SDNodeAddr addr = {0};
1,098✔
5602
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &addr.nodeId));
1,098!
5603
    TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &addr.epSet));
1,098!
5604
    if (taosArrayPush(pRsp->dnodeList, &addr) == NULL) {
2,196!
5605
      TAOS_CHECK_EXIT(terrno);
×
5606
    }
5607
  }
5608
  tEndDecode(&decoder);
448✔
5609

5610
_exit:
448✔
5611
  tDecoderClear(&decoder);
448✔
5612
  return code;
448✔
5613
}
5614

5615
void tFreeSDnodeListRsp(SDnodeListRsp *pRsp) { taosArrayDestroy(pRsp->dnodeList); }
7,640✔
5616

5617
int32_t tSerializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
236✔
5618
  SEncoder encoder = {0};
236✔
5619
  int32_t  code = 0;
236✔
5620
  int32_t  lino;
5621
  int32_t  tlen;
5622
  tEncoderInit(&encoder, buf, bufLen);
236✔
5623

5624
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
236!
5625
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
472!
5626
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.skey));
472!
5627
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.ekey));
472!
5628
  ENCODESQL();
708!
5629

5630
  // encode vgroup list
5631
  int32_t numOfVgroups = taosArrayGetSize(pReq->vgroupIds);
236✔
5632
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfVgroups));
236!
5633
  if (numOfVgroups > 0) {
236✔
5634
    for (int32_t i = 0; i < numOfVgroups; ++i) {
24✔
5635
      int64_t vgid = *(int64_t *)taosArrayGet(pReq->vgroupIds, i);
16✔
5636
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, vgid));
16!
5637
    }
5638
  }
5639

5640
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
472!
5641

5642
  tEndEncode(&encoder);
236✔
5643

5644
_exit:
236✔
5645
  if (code) {
236!
5646
    tlen = code;
×
5647
  } else {
5648
    tlen = encoder.pos;
236✔
5649
  }
5650
  tEncoderClear(&encoder);
236✔
5651
  return tlen;
236✔
5652
}
5653

5654
int32_t tDeserializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
38✔
5655
  SDecoder decoder = {0};
38✔
5656
  int32_t  code = 0;
38✔
5657
  int32_t  lino;
5658
  tDecoderInit(&decoder, buf, bufLen);
38✔
5659

5660
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
38!
5661
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
38!
5662
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.skey));
76!
5663
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.ekey));
76!
5664
  DECODESQL();
114!
5665

5666
  // decode vgroup list
5667
  if (!tDecodeIsEnd(&decoder)) {
38!
5668
    int32_t numOfVgroups = 0;
38✔
5669
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgroups));
38!
5670
    if (numOfVgroups > 0) {
38✔
5671
      pReq->vgroupIds = taosArrayInit(numOfVgroups, sizeof(int64_t));
4✔
5672
      if (NULL == pReq->vgroupIds) {
4!
5673
        TAOS_CHECK_EXIT(terrno);
×
5674
      }
5675

5676
      for (int32_t i = 0; i < numOfVgroups; ++i) {
12✔
5677
        int64_t vgid;
5678
        TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &vgid));
8!
5679
        if (taosArrayPush(pReq->vgroupIds, &vgid) == NULL) {
16!
5680
          TAOS_CHECK_EXIT(terrno);
×
5681
        }
5682
      }
5683
    }
5684
  }
5685

5686
  if (!tDecodeIsEnd(&decoder)) {
38!
5687
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
76!
5688
  } else {
5689
    pReq->metaOnly = false;
×
5690
  }
5691
  tEndDecode(&decoder);
38✔
5692

5693
_exit:
38✔
5694
  tDecoderClear(&decoder);
38✔
5695
  return code;
38✔
5696
}
5697

5698
void tFreeSCompactDbReq(SCompactDbReq *pReq) {
157✔
5699
  FREESQL();
157!
5700
  taosArrayDestroy(pReq->vgroupIds);
157✔
5701
  pReq->vgroupIds = NULL;
157✔
5702
}
157✔
5703

5704
int32_t tSerializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
48✔
5705
  SEncoder encoder = {0};
48✔
5706
  int32_t  code = 0;
48✔
5707
  int32_t  lino;
5708
  int32_t  tlen;
5709
  tEncoderInit(&encoder, buf, bufLen);
48✔
5710

5711
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
48!
5712
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->compactId));
96!
5713
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->bAccepted));
96!
5714
  tEndEncode(&encoder);
48✔
5715

5716
_exit:
48✔
5717
  if (code) {
48!
5718
    tlen = code;
×
5719
  } else {
5720
    tlen = encoder.pos;
48✔
5721
  }
5722
  tEncoderClear(&encoder);
48✔
5723
  return tlen;
48✔
5724
}
5725

5726
int32_t tDeserializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
96✔
5727
  SDecoder decoder = {0};
96✔
5728
  int32_t  code = 0;
96✔
5729
  int32_t  lino;
5730
  tDecoderInit(&decoder, buf, bufLen);
96✔
5731

5732
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
96!
5733
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->compactId));
192!
5734
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->bAccepted));
192!
5735
  tEndDecode(&decoder);
96✔
5736

5737
_exit:
96✔
5738
  tDecoderClear(&decoder);
96✔
5739
  return code;
96✔
5740
}
5741

5742
int32_t tSerializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
4✔
5743
  SEncoder encoder = {0};
4✔
5744
  int32_t  code = 0;
4✔
5745
  int32_t  lino;
5746
  int32_t  tlen;
5747
  tEncoderInit(&encoder, buf, bufLen);
4✔
5748

5749
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
5750
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
8!
5751
  ENCODESQL();
8!
5752

5753
  tEndEncode(&encoder);
4✔
5754

5755
_exit:
4✔
5756
  if (code) {
4!
5757
    tlen = code;
×
5758
  } else {
5759
    tlen = encoder.pos;
4✔
5760
  }
5761
  tEncoderClear(&encoder);
4✔
5762
  return tlen;
4✔
5763
}
5764

5765
int32_t tDeserializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
2✔
5766
  SDecoder decoder = {0};
2✔
5767
  int32_t  code = 0;
2✔
5768
  int32_t  lino;
5769
  tDecoderInit(&decoder, buf, bufLen);
2✔
5770

5771
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
5772
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
4!
5773
  DECODESQL();
4!
5774

5775
  tEndDecode(&decoder);
2✔
5776

5777
_exit:
2✔
5778
  tDecoderClear(&decoder);
2✔
5779
  return code;
2✔
5780
}
5781

5782
void tFreeSKillCompactReq(SKillCompactReq *pReq) { FREESQL(); }
2!
5783

5784
int32_t tSerializeSUseDbRspImp(SEncoder *pEncoder, const SUseDbRsp *pRsp) {
7,185,463✔
5785
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
14,370,926!
5786
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->uid));
14,370,926!
5787
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgVersion));
14,370,926!
5788
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgNum));
14,370,926!
5789
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashPrefix));
14,370,926!
5790
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashSuffix));
14,370,926!
5791
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->hashMethod));
14,370,926!
5792

5793
  for (int32_t i = 0; i < pRsp->vgNum; ++i) {
50,481,694✔
5794
    SVgroupInfo *pVgInfo = taosArrayGet(pRsp->pVgroupInfos, i);
43,296,612✔
5795
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->vgId));
86,463,334!
5796
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashBegin));
86,463,334!
5797
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashEnd));
86,463,334!
5798
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
43,231,667!
5799
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->numOfTable));
86,592,462!
5800
  }
5801

5802
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->errCode));
14,370,164!
5803
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->stateTs));
14,370,164!
5804
  return 0;
7,185,082✔
5805
}
5806

5807
int32_t tSerializeSUseDbRsp(void *buf, int32_t bufLen, const SUseDbRsp *pRsp) {
7,138,479✔
5808
  SEncoder encoder = {0};
7,138,479✔
5809
  int32_t  code = 0;
7,138,479✔
5810
  int32_t  lino;
5811
  int32_t  tlen;
5812
  tEncoderInit(&encoder, buf, bufLen);
7,138,479✔
5813

5814
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,138,633!
5815
  TAOS_CHECK_EXIT(tSerializeSUseDbRspImp(&encoder, pRsp));
7,138,850!
5816
  tEndEncode(&encoder);
7,138,935✔
5817

5818
_exit:
7,138,897✔
5819
  if (code) {
7,138,897!
5820
    tlen = code;
×
5821
  } else {
5822
    tlen = encoder.pos;
7,138,897✔
5823
  }
5824
  tEncoderClear(&encoder);
7,138,897✔
5825
  return tlen;
7,138,850✔
5826
}
5827

5828
int32_t tSerializeSDbHbRspImp(SEncoder *pEncoder, const SDbHbRsp *pRsp) {
31,148✔
5829
  if (pRsp->useDbRsp) {
31,148✔
5830
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
9,624!
5831
    TAOS_CHECK_RETURN(tSerializeSUseDbRspImp(pEncoder, pRsp->useDbRsp));
9,624!
5832
  } else {
5833
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
21,524!
5834
  }
5835

5836
  if (pRsp->cfgRsp) {
31,148✔
5837
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
19,394!
5838
    TAOS_CHECK_RETURN(tSerializeSDbCfgRspImpl(pEncoder, pRsp->cfgRsp));
19,394!
5839
  } else {
5840
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
11,754!
5841
  }
5842

5843
  if (pRsp->pTsmaRsp) {
31,148✔
5844
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
24,906!
5845
    TAOS_CHECK_RETURN(tEncodeTableTSMAInfoRsp(pEncoder, pRsp->pTsmaRsp));
24,906!
5846
  } else {
5847
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
6,242!
5848
  }
5849
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->dbTsmaVersion));
62,296!
5850
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
62,296!
5851
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
62,296!
5852
  return 0;
31,148✔
5853
}
5854

5855
int32_t tSerializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
55,076✔
5856
  SEncoder encoder = {0};
55,076✔
5857
  int32_t  code = 0;
55,076✔
5858
  int32_t  lino;
5859
  int32_t  tlen;
5860
  tEncoderInit(&encoder, buf, bufLen);
55,076✔
5861

5862
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
55,076!
5863

5864
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
55,076✔
5865
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
55,076!
5866
  for (int32_t i = 0; i < numOfBatch; ++i) {
86,224✔
5867
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
31,148✔
5868
    TAOS_CHECK_EXIT(tSerializeSDbHbRspImp(&encoder, pDbRsp));
31,148!
5869
  }
5870
  tEndEncode(&encoder);
55,076✔
5871

5872
_exit:
55,076✔
5873
  if (code) {
55,076!
5874
    tlen = code;
×
5875
  } else {
5876
    tlen = encoder.pos;
55,076✔
5877
  }
5878
  tEncoderClear(&encoder);
55,076✔
5879
  return tlen;
55,076✔
5880
}
5881

5882
int32_t tDeserializeSUseDbRspImp(SDecoder *pDecoder, SUseDbRsp *pRsp) {
176,022✔
5883
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->db));
176,022!
5884
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->uid));
352,040!
5885
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgVersion));
352,039!
5886
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgNum));
352,042!
5887
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashPrefix));
352,043!
5888
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashSuffix));
352,041!
5889
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->hashMethod));
352,041!
5890

5891
  if (pRsp->vgNum > 0) {
176,021✔
5892
    pRsp->pVgroupInfos = taosArrayInit(pRsp->vgNum, sizeof(SVgroupInfo));
165,270✔
5893
    if (pRsp->pVgroupInfos == NULL) {
165,266!
5894
      TAOS_CHECK_RETURN(terrno);
×
5895
    }
5896

5897
    for (int32_t i = 0; i < pRsp->vgNum; ++i) {
577,943✔
5898
      SVgroupInfo vgInfo = {0};
412,670✔
5899
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.vgId));
412,697!
5900
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashBegin));
412,680!
5901
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashEnd));
412,667!
5902
      TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &vgInfo.epSet));
412,667!
5903
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.numOfTable));
412,672!
5904
      if (taosArrayPush(pRsp->pVgroupInfos, &vgInfo) == NULL) {
825,348!
5905
        TAOS_CHECK_RETURN(terrno);
×
5906
      }
5907
    }
5908
  }
5909

5910
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->errCode));
352,045!
5911
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->stateTs));
352,043!
5912
  return 0;
176,022✔
5913
}
5914

5915
int32_t tDeserializeSUseDbRsp(void *buf, int32_t bufLen, SUseDbRsp *pRsp) {
159,820✔
5916
  SDecoder decoder = {0};
159,820✔
5917
  int32_t  code = 0;
159,820✔
5918
  int32_t  lino;
5919
  tDecoderInit(&decoder, buf, bufLen);
159,820✔
5920

5921
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
159,829✔
5922
  TAOS_CHECK_EXIT(tDeserializeSUseDbRspImp(&decoder, pRsp));
159,829!
5923
  tEndDecode(&decoder);
159,828✔
5924

5925
_exit:
159,830✔
5926
  tDecoderClear(&decoder);
159,830✔
5927
  return code;
159,826✔
5928
}
5929

5930
int32_t tDeserializeSDbHbRspImp(SDecoder *decoder, SDbHbRsp *pRsp) {
4,978✔
5931
  int8_t flag = 0;
4,978✔
5932
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
4,978!
5933
  if (flag) {
4,978✔
5934
    pRsp->useDbRsp = taosMemoryCalloc(1, sizeof(SUseDbRsp));
3,730!
5935
    if (NULL == pRsp->useDbRsp) {
3,730!
5936
      TAOS_CHECK_RETURN(terrno);
×
5937
    }
5938
    TAOS_CHECK_RETURN(tDeserializeSUseDbRspImp(decoder, pRsp->useDbRsp));
3,730!
5939
  }
5940
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
4,978!
5941
  if (flag) {
4,978✔
5942
    pRsp->cfgRsp = taosMemoryCalloc(1, sizeof(SDbCfgRsp));
718!
5943
    if (NULL == pRsp->cfgRsp) {
718!
5944
      TAOS_CHECK_RETURN(terrno);
×
5945
    }
5946
    TAOS_CHECK_RETURN(tDeserializeSDbCfgRspImpl(decoder, pRsp->cfgRsp));
718!
5947
  }
5948
  if (!tDecodeIsEnd(decoder)) {
4,978!
5949
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
4,978!
5950
    if (flag) {
4,978✔
5951
      pRsp->pTsmaRsp = taosMemoryCalloc(1, sizeof(STableTSMAInfoRsp));
2,794!
5952
      if (!pRsp->pTsmaRsp) {
2,794!
5953
        TAOS_CHECK_RETURN(terrno);
×
5954
      }
5955
      TAOS_CHECK_RETURN(tDecodeTableTSMAInfoRsp(decoder, pRsp->pTsmaRsp));
2,794!
5956
    }
5957
  }
5958
  if (!tDecodeIsEnd(decoder)) {
4,978!
5959
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->dbTsmaVersion));
9,956!
5960
  }
5961
  if (!tDecodeIsEnd(decoder)) {
4,978!
5962
    TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
4,978!
5963
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
9,956!
5964
  }
5965

5966
  return 0;
4,978✔
5967
}
5968

5969
int32_t tDeserializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
13,281✔
5970
  SDecoder decoder = {0};
13,281✔
5971
  int32_t  code = 0;
13,281✔
5972
  int32_t  lino;
5973
  tDecoderInit(&decoder, buf, bufLen);
13,281✔
5974

5975
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
13,281!
5976

5977
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
13,281✔
5978
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
13,281!
5979

5980
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SDbHbRsp));
13,281✔
5981
  if (pRsp->pArray == NULL) {
13,281!
5982
    TAOS_CHECK_EXIT(terrno);
×
5983
  }
5984

5985
  for (int32_t i = 0; i < numOfBatch; ++i) {
18,259✔
5986
    SDbHbRsp rsp = {0};
4,978✔
5987
    TAOS_CHECK_EXIT(tDeserializeSDbHbRspImp(&decoder, &rsp));
4,978!
5988

5989
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
9,956!
5990
      TAOS_CHECK_EXIT(terrno);
×
5991
    }
5992
  }
5993
  tEndDecode(&decoder);
13,281✔
5994

5995
_exit:
13,281✔
5996
  tDecoderClear(&decoder);
13,281✔
5997
  return code;
13,281✔
5998
}
5999

6000
void tFreeSUsedbRsp(SUseDbRsp *pRsp) { taosArrayDestroy(pRsp->pVgroupInfos); }
3,736,060✔
6001

6002
void tFreeSDbHbRsp(SDbHbRsp *pDbRsp) {
20,552✔
6003
  if (NULL == pDbRsp) {
20,552!
6004
    return;
×
6005
  }
6006

6007
  if (pDbRsp->useDbRsp) {
20,552✔
6008
    tFreeSUsedbRsp(pDbRsp->useDbRsp);
8,542✔
6009
    taosMemoryFree(pDbRsp->useDbRsp);
8,542!
6010
  }
6011

6012
  if (pDbRsp->cfgRsp) {
20,552✔
6013
    tFreeSDbCfgRsp(pDbRsp->cfgRsp);
9,697✔
6014
    taosMemoryFree(pDbRsp->cfgRsp);
9,697!
6015
  }
6016
  if (pDbRsp->pTsmaRsp) {
20,552✔
6017
    tFreeTableTSMAInfoRsp(pDbRsp->pTsmaRsp);
15,247✔
6018
    taosMemoryFree(pDbRsp->pTsmaRsp);
15,247!
6019
  }
6020
}
6021

6022
void tFreeSDbHbBatchRsp(SDbHbBatchRsp *pRsp) {
40,819✔
6023
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
40,819✔
6024
  for (int32_t i = 0; i < numOfBatch; ++i) {
61,371✔
6025
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
20,552✔
6026
    tFreeSDbHbRsp(pDbRsp);
20,552✔
6027
  }
6028

6029
  taosArrayDestroy(pRsp->pArray);
40,819✔
6030
}
40,819✔
6031

6032
int32_t tSerializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
27,658✔
6033
  SEncoder encoder = {0};
27,658✔
6034
  int32_t  code = 0;
27,658✔
6035
  int32_t  lino;
6036
  int32_t  tlen;
6037
  tEncoderInit(&encoder, buf, bufLen);
27,658✔
6038

6039
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
27,658!
6040

6041
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
27,658✔
6042
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
27,658!
6043
  for (int32_t i = 0; i < numOfBatch; ++i) {
55,776✔
6044
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
28,118✔
6045
    TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pUserAuthRsp));
28,118!
6046
  }
6047
  tEndEncode(&encoder);
27,658✔
6048

6049
_exit:
27,658✔
6050
  if (code) {
27,658!
6051
    tlen = code;
×
6052
  } else {
6053
    tlen = encoder.pos;
27,658✔
6054
  }
6055
  tEncoderClear(&encoder);
27,658✔
6056
  return tlen;
27,658✔
6057
}
6058

6059
int32_t tDeserializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
3,625✔
6060
  SDecoder decoder = {0};
3,625✔
6061
  int32_t  code = 0;
3,625✔
6062
  int32_t  lino;
6063
  tDecoderInit(&decoder, buf, bufLen);
3,625✔
6064

6065
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,625!
6066

6067
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
3,625✔
6068
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
3,625!
6069

6070
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SGetUserAuthRsp));
3,625✔
6071
  if (pRsp->pArray == NULL) {
3,625!
6072
    TAOS_CHECK_EXIT(terrno);
×
6073
  }
6074

6075
  for (int32_t i = 0; i < numOfBatch; ++i) {
7,499✔
6076
    SGetUserAuthRsp rsp = {0};
3,874✔
6077
    TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, &rsp));
3,874!
6078
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
7,748!
6079
      TAOS_CHECK_EXIT(terrno);
×
6080
    }
6081
  }
6082
  tEndDecode(&decoder);
3,625✔
6083

6084
_exit:
3,625✔
6085
  tDecoderClear(&decoder);
3,625✔
6086
  return code;
3,625✔
6087
}
6088

6089
void tFreeSUserAuthBatchRsp(SUserAuthBatchRsp *pRsp) {
140,282✔
6090
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
140,282✔
6091
  for (int32_t i = 0; i < numOfBatch; ++i) {
154,341✔
6092
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
14,059✔
6093
    tFreeSGetUserAuthRsp(pUserAuthRsp);
14,059✔
6094
  }
6095

6096
  taosArrayDestroy(pRsp->pArray);
140,282✔
6097
}
140,285✔
6098

6099
int32_t tSerializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
13,522✔
6100
  SEncoder encoder = {0};
13,522✔
6101
  int32_t  code = 0;
13,522✔
6102
  int32_t  lino;
6103
  int32_t  tlen;
6104
  tEncoderInit(&encoder, buf, bufLen);
13,522✔
6105

6106
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
13,522!
6107
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
27,044!
6108
  tEndEncode(&encoder);
13,522✔
6109

6110
_exit:
13,522✔
6111
  if (code) {
13,522!
6112
    tlen = code;
×
6113
  } else {
6114
    tlen = encoder.pos;
13,522✔
6115
  }
6116
  tEncoderClear(&encoder);
13,522✔
6117
  return tlen;
13,521✔
6118
}
6119

6120
int32_t tDeserializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
74,620✔
6121
  SDecoder decoder = {0};
74,620✔
6122
  int32_t  code = 0;
74,620✔
6123
  int32_t  lino;
6124
  tDecoderInit(&decoder, buf, bufLen);
74,620✔
6125

6126
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
74,620!
6127
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
74,621!
6128
  tEndDecode(&decoder);
74,621✔
6129

6130
_exit:
74,621✔
6131
  tDecoderClear(&decoder);
74,621✔
6132
  return code;
74,621✔
6133
}
6134

6135
int32_t tSerializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
34✔
6136
  SEncoder encoder = {0};
34✔
6137
  int32_t  code = 0;
34✔
6138
  int32_t  lino;
6139
  int32_t  tlen;
6140
  tEncoderInit(&encoder, buf, bufLen);
34✔
6141

6142
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
34!
6143
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
68!
6144
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxSpeed));
68!
6145
  tEndEncode(&encoder);
34✔
6146

6147
_exit:
34✔
6148
  if (code) {
34!
6149
    tlen = code;
×
6150
  } else {
6151
    tlen = encoder.pos;
34✔
6152
  }
6153
  tEncoderClear(&encoder);
34✔
6154
  return tlen;
34✔
6155
}
6156

6157
int32_t tDeserializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
10✔
6158
  SDecoder decoder = {0};
10✔
6159
  int32_t  code = 0;
10✔
6160
  int32_t  lino;
6161
  tDecoderInit(&decoder, buf, bufLen);
10✔
6162

6163
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
6164
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
10!
6165
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxSpeed));
20!
6166
  tEndDecode(&decoder);
10✔
6167

6168
_exit:
10✔
6169
  tDecoderClear(&decoder);
10✔
6170
  return code;
10✔
6171
}
6172

6173
int32_t tSerializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
142✔
6174
  SEncoder encoder = {0};
142✔
6175
  int32_t  code = 0;
142✔
6176
  int32_t  lino;
6177
  int32_t  tlen;
6178
  tEncoderInit(&encoder, buf, bufLen);
142✔
6179

6180
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
142!
6181
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
284!
6182
  tEndEncode(&encoder);
142✔
6183

6184
_exit:
142✔
6185
  if (code) {
142!
6186
    tlen = code;
×
6187
  } else {
6188
    tlen = encoder.pos;
142✔
6189
  }
6190
  tEncoderClear(&encoder);
142✔
6191
  return tlen;
142✔
6192
}
6193

6194
int32_t tDeserializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
139✔
6195
  SDecoder decoder = {0};
139✔
6196
  int32_t  code = 0;
139✔
6197
  int32_t  lino;
6198
  tDecoderInit(&decoder, buf, bufLen);
139✔
6199

6200
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
139!
6201
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
280!
6202

6203
  tEndDecode(&decoder);
140✔
6204

6205
_exit:
140✔
6206
  tDecoderClear(&decoder);
140✔
6207
  return code;
140✔
6208
}
6209

6210
int32_t tSerializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
12✔
6211
  SEncoder encoder = {0};
12✔
6212
  int32_t  code = 0;
12✔
6213
  int32_t  lino;
6214
  int32_t  tlen;
6215
  tEncoderInit(&encoder, buf, bufLen);
12✔
6216

6217
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
6218
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
24!
6219
  tEndEncode(&encoder);
12✔
6220

6221
_exit:
12✔
6222
  if (code) {
12!
6223
    tlen = code;
×
6224
  } else {
6225
    tlen = encoder.pos;
12✔
6226
  }
6227
  tEncoderClear(&encoder);
12✔
6228
  return tlen;
12✔
6229
}
6230

6231
int32_t tDeserializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
×
6232
  SDecoder decoder = {0};
×
6233
  int32_t  code = 0;
×
6234
  int32_t  lino;
6235
  tDecoderInit(&decoder, buf, bufLen);
×
6236

6237
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6238
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
6239
  tEndDecode(&decoder);
×
6240

6241
_exit:
×
6242
  tDecoderClear(&decoder);
×
6243
  return code;
×
6244
}
6245

6246
int32_t tSerializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
6247
  SEncoder encoder = {0};
×
6248
  int32_t  code = 0;
×
6249
  int32_t  lino;
6250
  int32_t  tlen;
6251
  tEncoderInit(&encoder, buf, bufLen);
×
6252

6253
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6254
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
×
6255
  tEndEncode(&encoder);
×
6256

6257
_exit:
×
6258
  if (code) {
×
6259
    tlen = code;
×
6260
  } else {
6261
    tlen = encoder.pos;
×
6262
  }
6263
  tEncoderClear(&encoder);
×
6264
  return tlen;
×
6265
}
6266

6267
int32_t tDeserializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
6268
  SDecoder decoder = {0};
×
6269
  int32_t  code = 0;
×
6270
  int32_t  lino;
6271
  tDecoderInit(&decoder, buf, bufLen);
×
6272

6273
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6274
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
×
6275

6276
  tEndDecode(&decoder);
×
6277

6278
_exit:
×
6279
  tDecoderClear(&decoder);
×
6280
  return code;
×
6281
}
6282

6283
int32_t tSerializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
78,561✔
6284
  SEncoder encoder = {0};
78,561✔
6285
  int32_t  code = 0;
78,561✔
6286
  int32_t  lino;
6287
  int32_t  tlen;
6288
  tEncoderInit(&encoder, buf, bufLen);
78,561✔
6289

6290
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
78,561!
6291
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestampSec));
157,122!
6292
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttlDropMaxCount));
157,122!
6293
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->nUids));
157,122!
6294
  for (int32_t i = 0; i < pReq->nUids; ++i) {
78,831✔
6295
    tb_uid_t *pTbUid = taosArrayGet(pReq->pTbUids, i);
270✔
6296
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, *pTbUid));
540!
6297
  }
6298
  tEndEncode(&encoder);
78,561✔
6299

6300
_exit:
78,561✔
6301
  if (code) {
78,561!
6302
    tlen = code;
×
6303
  } else {
6304
    tlen = encoder.pos;
78,561✔
6305
  }
6306
  tEncoderClear(&encoder);
78,561✔
6307
  return tlen;
78,561✔
6308
}
6309

6310
int32_t tDeserializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
69,967✔
6311
  SDecoder decoder = {0};
69,967✔
6312
  int32_t  code = 0;
69,967✔
6313
  int32_t  lino;
6314
  tDecoderInit(&decoder, buf, bufLen);
69,967✔
6315

6316
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
70,030!
6317
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestampSec));
140,620!
6318
  pReq->ttlDropMaxCount = INT32_MAX;
70,272✔
6319
  pReq->nUids = 0;
70,272✔
6320
  pReq->pTbUids = NULL;
70,272✔
6321
  if (!tDecodeIsEnd(&decoder)) {
70,272!
6322
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttlDropMaxCount));
140,539!
6323
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->nUids));
140,441!
6324

6325
    if (pReq->nUids > 0) {
70,188✔
6326
      pReq->pTbUids = taosArrayInit(pReq->nUids, sizeof(tb_uid_t));
33✔
6327
      if (pReq->pTbUids == NULL) {
33!
UNCOV
6328
        TAOS_CHECK_EXIT(terrno);
×
6329
      }
6330
    }
6331

6332
    tb_uid_t tbUid = 0;
70,196✔
6333
    for (int32_t i = 0; i < pReq->nUids; ++i) {
70,331✔
6334
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &tbUid));
135!
6335
      if (taosArrayPush(pReq->pTbUids, &tbUid) == NULL) {
270!
6336
        TAOS_CHECK_EXIT(terrno);
×
6337
      }
6338
    }
6339
  }
6340
  tEndDecode(&decoder);
70,182✔
6341

6342
_exit:
70,134✔
6343
  tDecoderClear(&decoder);
70,134✔
6344
  return code;
70,181✔
6345
}
6346

6347
int32_t tSerializeSDbCfgRspImpl(SEncoder *encoder, const SDbCfgRsp *pRsp) {
166,953✔
6348
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pRsp->db));
333,906!
6349
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->dbId));
333,906!
6350
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cfgVersion));
333,906!
6351
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfVgroups));
333,906!
6352
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfStables));
333,906!
6353
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->buffer));
333,906!
6354
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cacheSize));
333,906!
6355
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pageSize));
333,906!
6356
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pages));
333,906!
6357
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysPerFile));
333,906!
6358
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep0));
333,906!
6359
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep1));
333,906!
6360
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep2));
333,906!
6361
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->minRows));
333,906!
6362
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->maxRows));
333,906!
6363
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walFsyncPeriod));
333,906!
6364
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashPrefix));
333,906!
6365
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashSuffix));
333,906!
6366
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->walLevel));
333,906!
6367
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->precision));
333,906!
6368
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compression));
333,906!
6369
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->replications));
333,906!
6370
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->strict));
333,906!
6371
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->cacheLast));
333,906!
6372
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->tsdbPageSize));
333,906!
6373
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRetentionPeriod));
333,906!
6374
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRollPeriod));
333,906!
6375
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walRetentionSize));
333,906!
6376
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walSegmentSize));
333,906!
6377
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfRetensions));
333,906!
6378
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
166,977✔
6379
    SRetention *pRetension = taosArrayGet(pRsp->pRetensions, i);
24✔
6380
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->freq));
48!
6381
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->keep));
48!
6382
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->freqUnit));
48!
6383
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->keepUnit));
48!
6384
  }
6385
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->schemaless));
333,906!
6386
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->sstTrigger));
333,906!
6387
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->keepTimeOffset));
333,906!
6388
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->withArbitrator));
333,906!
6389
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->encryptAlgorithm));
333,906!
6390
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3ChunkSize));
333,906!
6391
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3KeepLocal));
333,906!
6392
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->s3Compact));
333,906!
6393
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->hashMethod));
333,906!
6394
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactInterval));
333,906!
6395
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactStartTime));
333,906!
6396
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactEndTime));
333,906!
6397
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compactTimeOffset));
333,906!
6398

6399
  return 0;
166,953✔
6400
}
6401

6402
int32_t tSerializeSDbCfgRsp(void *buf, int32_t bufLen, const SDbCfgRsp *pRsp) {
147,556✔
6403
  SEncoder encoder = {0};
147,556✔
6404
  int32_t  code = 0;
147,556✔
6405
  int32_t  lino;
6406
  int32_t  tlen;
6407
  tEncoderInit(&encoder, buf, bufLen);
147,556✔
6408

6409
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
147,557!
6410
  TAOS_CHECK_EXIT(tSerializeSDbCfgRspImpl(&encoder, pRsp));
147,559!
6411
  tEndEncode(&encoder);
147,558✔
6412

6413
_exit:
147,558✔
6414
  if (code) {
147,558!
6415
    tlen = code;
×
6416
  } else {
6417
    tlen = encoder.pos;
147,558✔
6418
  }
6419
  tEncoderClear(&encoder);
147,558✔
6420
  return tlen;
147,557✔
6421
}
6422

6423
int32_t tDeserializeSDbCfgRspImpl(SDecoder *decoder, SDbCfgRsp *pRsp) {
6,643✔
6424
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
6,643!
6425
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
13,286!
6426
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cfgVersion));
13,286!
6427
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfVgroups));
13,286!
6428
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfStables));
13,286!
6429
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->buffer));
13,286!
6430
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cacheSize));
13,286!
6431
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pageSize));
13,286!
6432
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pages));
13,286!
6433
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysPerFile));
13,286!
6434
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep0));
13,286!
6435
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep1));
13,286!
6436
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep2));
13,286!
6437
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->minRows));
13,286!
6438
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->maxRows));
13,286!
6439
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walFsyncPeriod));
13,286!
6440
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashPrefix));
13,286!
6441
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashSuffix));
13,286!
6442
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->walLevel));
13,286!
6443
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->precision));
13,286!
6444
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compression));
13,286!
6445
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->replications));
13,286!
6446
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->strict));
13,286!
6447
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->cacheLast));
13,286!
6448
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->tsdbPageSize));
13,286!
6449
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRetentionPeriod));
13,285!
6450
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRollPeriod));
13,284!
6451
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walRetentionSize));
13,284!
6452
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walSegmentSize));
13,284!
6453
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfRetensions));
13,284!
6454
  if (pRsp->numOfRetensions > 0) {
6,642✔
6455
    pRsp->pRetensions = taosArrayInit(pRsp->numOfRetensions, sizeof(SRetention));
3✔
6456
    if (pRsp->pRetensions == NULL) {
3!
6457
      TAOS_CHECK_RETURN(terrno);
×
6458
    }
6459
  }
6460

6461
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
6,651✔
6462
    SRetention rentension = {0};
9✔
6463
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.freq));
9!
6464
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.keep));
9!
6465
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.freqUnit));
9!
6466
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.keepUnit));
9!
6467
    if (taosArrayPush(pRsp->pRetensions, &rentension) == NULL) {
18!
6468
      TAOS_CHECK_RETURN(terrno);
×
6469
    }
6470
  }
6471
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->schemaless));
13,284!
6472
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->sstTrigger));
13,284!
6473
  if (!tDecodeIsEnd(decoder)) {
6,642!
6474
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->keepTimeOffset));
13,284!
6475
  } else {
6476
    pRsp->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
6477
  }
6478
  if (!tDecodeIsEnd(decoder)) {
6,642!
6479
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->withArbitrator));
13,284!
6480
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->encryptAlgorithm));
13,284!
6481
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3ChunkSize));
13,284!
6482
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3KeepLocal));
13,284!
6483
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->s3Compact));
13,285!
6484
  } else {
6485
    pRsp->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
6486
    pRsp->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
6487
    pRsp->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
6488
    pRsp->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
6489
    pRsp->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
6490
  }
6491
  if (!tDecodeIsEnd(decoder)) {
6,643!
6492
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->hashMethod));
13,286!
6493
  } else {
6494
    pRsp->hashMethod = 1;  // default value
×
6495
  }
6496
  if (!tDecodeIsEnd(decoder)) {
6,643!
6497
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactInterval));
13,286!
6498
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactStartTime));
13,286!
6499
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactEndTime));
13,285!
6500
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compactTimeOffset));
13,284!
6501
  } else {
6502
    pRsp->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
6503
    pRsp->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
6504
    pRsp->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
6505
    pRsp->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
6506
  }
6507

6508
  return 0;
6,642✔
6509
}
6510

6511
int32_t tDeserializeSDbCfgRsp(void *buf, int32_t bufLen, SDbCfgRsp *pRsp) {
5,924✔
6512
  SDecoder decoder = {0};
5,924✔
6513
  int32_t  code = 0;
5,924✔
6514
  int32_t  lino;
6515
  tDecoderInit(&decoder, buf, bufLen);
5,924✔
6516

6517
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,925!
6518
  TAOS_CHECK_EXIT(tDeserializeSDbCfgRspImpl(&decoder, pRsp));
5,925!
6519
  tEndDecode(&decoder);
5,924✔
6520

6521
_exit:
5,924✔
6522
  tDecoderClear(&decoder);
5,924✔
6523
  return code;
5,925✔
6524
}
6525

6526
void tFreeSDbCfgRsp(SDbCfgRsp *pRsp) {
84,316✔
6527
  if (NULL == pRsp) {
84,316!
6528
    return;
×
6529
  }
6530

6531
  taosArrayDestroy(pRsp->pRetensions);
84,316✔
6532
}
6533

6534
int32_t tSerializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
2✔
6535
  SEncoder encoder = {0};
2✔
6536
  int32_t  code = 0;
2✔
6537
  int32_t  lino;
6538
  int32_t  tlen;
6539
  tEncoderInit(&encoder, buf, bufLen);
2✔
6540

6541
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
6542
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->indexFName));
4!
6543
  tEndEncode(&encoder);
2✔
6544

6545
_exit:
2✔
6546
  if (code) {
2!
6547
    tlen = code;
×
6548
  } else {
6549
    tlen = encoder.pos;
2✔
6550
  }
6551
  tEncoderClear(&encoder);
2✔
6552
  return tlen;
2✔
6553
}
6554

6555
int32_t tDeserializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
×
6556
  SDecoder decoder = {0};
×
6557
  int32_t  code = 0;
×
6558
  int32_t  lino;
6559
  tDecoderInit(&decoder, buf, bufLen);
×
6560

6561
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6562
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->indexFName));
×
6563
  tEndDecode(&decoder);
×
6564

6565
_exit:
×
6566
  tDecoderClear(&decoder);
×
6567
  return code;
×
6568
}
6569

6570
int32_t tSerializeSUserIndexRsp(void *buf, int32_t bufLen, const SUserIndexRsp *pRsp) {
×
6571
  SEncoder encoder = {0};
×
6572
  int32_t  code = 0;
×
6573
  int32_t  lino;
6574
  int32_t  tlen;
6575
  tEncoderInit(&encoder, buf, bufLen);
×
6576

6577
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6578
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
×
6579
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tblFName));
×
6580
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->colName));
×
6581
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexType));
×
6582
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexExts));
×
6583
  tEndEncode(&encoder);
×
6584

6585
_exit:
×
6586
  if (code) {
×
6587
    tlen = code;
×
6588
  } else {
6589
    tlen = encoder.pos;
×
6590
  }
6591
  tEncoderClear(&encoder);
×
6592
  return tlen;
×
6593
}
6594

6595
int32_t tDeserializeSUserIndexRsp(void *buf, int32_t bufLen, SUserIndexRsp *pRsp) {
×
6596
  SDecoder decoder = {0};
×
6597
  int32_t  code = 0;
×
6598
  int32_t  lino;
6599
  tDecoderInit(&decoder, buf, bufLen);
×
6600

6601
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6602
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
×
6603
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tblFName));
×
6604
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->colName));
×
6605
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexType));
×
6606
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexExts));
×
6607
  tEndDecode(&decoder);
×
6608

6609
_exit:
×
6610
  tDecoderClear(&decoder);
×
6611
  return code;
×
6612
}
6613

6614
int32_t tSerializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
2,834✔
6615
  SEncoder encoder = {0};
2,834✔
6616
  int32_t  code = 0;
2,834✔
6617
  int32_t  lino;
6618
  int32_t  tlen;
6619
  tEncoderInit(&encoder, buf, bufLen);
2,834✔
6620

6621
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,834!
6622
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbFName));
5,668!
6623
  tEndEncode(&encoder);
2,834✔
6624

6625
_exit:
2,834✔
6626
  if (code) {
2,834!
6627
    tlen = code;
×
6628
  } else {
6629
    tlen = encoder.pos;
2,834✔
6630
  }
6631
  tEncoderClear(&encoder);
2,834✔
6632
  return tlen;
2,834✔
6633
}
6634

6635
int32_t tDeserializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
1,173✔
6636
  SDecoder decoder = {0};
1,173✔
6637
  int32_t  code = 0;
1,173✔
6638
  int32_t  lino;
6639
  tDecoderInit(&decoder, buf, bufLen);
1,173✔
6640

6641
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,173!
6642
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbFName));
1,173!
6643
  tEndDecode(&decoder);
1,173✔
6644

6645
_exit:
1,173✔
6646
  tDecoderClear(&decoder);
1,173✔
6647
  return code;
1,173✔
6648
}
6649

6650
int32_t tSerializeSTableIndexInfo(SEncoder *pEncoder, STableIndexInfo *pInfo) {
6✔
6651
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->intervalUnit));
12!
6652
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->slidingUnit));
12!
6653
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->interval));
12!
6654
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->offset));
12!
6655
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->sliding));
12!
6656
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->dstTbUid));
12!
6657
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pInfo->dstVgId));
12!
6658
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pInfo->epSet));
6!
6659
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->expr));
12!
6660
  return 0;
6✔
6661
}
6662

6663
int32_t tSerializeSTableIndexRsp(void *buf, int32_t bufLen, const STableIndexRsp *pRsp) {
2✔
6664
  SEncoder encoder = {0};
2✔
6665
  int32_t  code = 0;
2✔
6666
  int32_t  lino;
6667
  int32_t  tlen;
6668
  tEncoderInit(&encoder, buf, bufLen);
2✔
6669

6670
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
6671
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
4!
6672
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
4!
6673
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pRsp->suid));
4!
6674
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->version));
4!
6675
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->indexSize));
4!
6676
  int32_t num = taosArrayGetSize(pRsp->pIndex);
2✔
6677
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
2!
6678
  if (num > 0) {
2!
6679
    for (int32_t i = 0; i < num; ++i) {
8✔
6680
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pRsp->pIndex, i);
6✔
6681
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
6!
6682
    }
6683
  }
6684
  tEndEncode(&encoder);
2✔
6685

6686
_exit:
2✔
6687
  if (code) {
2!
6688
    tlen = code;
×
6689
  } else {
6690
    tlen = encoder.pos;
2✔
6691
  }
6692
  tEncoderClear(&encoder);
2✔
6693
  return tlen;
2✔
6694
}
6695

6696
void tFreeSerializeSTableIndexRsp(STableIndexRsp *pRsp) {
1,173✔
6697
  if (pRsp->pIndex != NULL) {
1,173!
6698
    tFreeSTableIndexRsp(pRsp);
1,173✔
6699
    pRsp->pIndex = NULL;
1,173✔
6700
  }
6701
}
1,173✔
6702

6703
int32_t tDeserializeSTableIndexInfo(SDecoder *pDecoder, STableIndexInfo *pInfo) {
3✔
6704
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->intervalUnit));
6!
6705
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->slidingUnit));
6!
6706
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->interval));
6!
6707
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->offset));
6!
6708
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->sliding));
6!
6709
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->dstTbUid));
6!
6710
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pInfo->dstVgId));
6!
6711
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pInfo->epSet));
3!
6712
  TAOS_CHECK_RETURN(tDecodeCStrAlloc(pDecoder, &pInfo->expr));
6!
6713
  return 0;
3✔
6714
}
6715

6716
int32_t tDeserializeSTableIndexRsp(void *buf, int32_t bufLen, STableIndexRsp *pRsp) {
1✔
6717
  SDecoder decoder = {0};
1✔
6718
  int32_t  code = 0;
1✔
6719
  int32_t  lino;
6720
  tDecoderInit(&decoder, buf, bufLen);
1✔
6721

6722
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
6723
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
1!
6724
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
1!
6725
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->suid));
2!
6726
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->version));
2!
6727
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->indexSize));
2!
6728
  int32_t num = 0;
1✔
6729
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1!
6730
  if (num > 0) {
1!
6731
    pRsp->pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
1✔
6732
    if (NULL == pRsp->pIndex) {
1!
6733
      TAOS_CHECK_EXIT(terrno);
×
6734
    }
6735
    STableIndexInfo info;
6736
    for (int32_t i = 0; i < num; ++i) {
4✔
6737
      TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
3!
6738
      if (NULL == taosArrayPush(pRsp->pIndex, &info)) {
6!
6739
        taosMemoryFree(info.expr);
×
6740
        TAOS_CHECK_EXIT(terrno);
×
6741
      }
6742
    }
6743
  }
6744
  tEndDecode(&decoder);
1✔
6745

6746
_exit:
1✔
6747
  tDecoderClear(&decoder);
1✔
6748
  return code;
1✔
6749
}
6750

6751
void tFreeSTableIndexInfo(void *info) {
9✔
6752
  if (NULL == info) {
9!
6753
    return;
×
6754
  }
6755

6756
  STableIndexInfo *pInfo = (STableIndexInfo *)info;
9✔
6757

6758
  taosMemoryFree(pInfo->expr);
9!
6759
}
6760

6761
int32_t tSerializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
364✔
6762
  SEncoder encoder = {0};
364✔
6763
  int32_t  code = 0;
364✔
6764
  int32_t  lino;
6765
  int32_t  tlen;
6766
  tEncoderInit(&encoder, buf, bufLen);
364✔
6767

6768
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
364!
6769
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->opType));
728!
6770
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->valLen));
728!
6771
  if (pReq->valLen > 0) {
364✔
6772
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->val, pReq->valLen));
44!
6773
  }
6774
  tEndEncode(&encoder);
364✔
6775

6776
_exit:
364✔
6777
  if (code) {
364!
6778
    tlen = code;
×
6779
  } else {
6780
    tlen = encoder.pos;
364✔
6781
  }
6782
  tEncoderClear(&encoder);
364✔
6783
  return tlen;
364✔
6784
}
6785

6786
int32_t tDeserializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
36✔
6787
  SDecoder decoder = {0};
36✔
6788
  int32_t  code = 0;
36✔
6789
  int32_t  lino;
6790
  tDecoderInit(&decoder, buf, bufLen);
36✔
6791

6792
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
36!
6793
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->opType));
72!
6794
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->valLen));
72!
6795

6796
  if (pReq->valLen > 0) {
36✔
6797
    pReq->val = taosMemoryCalloc(1, pReq->valLen + 1);
20!
6798
    if (pReq->val == NULL) {
20!
6799
      TAOS_CHECK_EXIT(terrno);
×
6800
    }
6801
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->val));
20!
6802
  }
6803

6804
  tEndDecode(&decoder);
36✔
6805
_exit:
36✔
6806
  tDecoderClear(&decoder);
36✔
6807
  return code;
36✔
6808
}
6809

6810
void tFreeSShowVariablesReq(SShowVariablesReq *pReq) {
218✔
6811
  if (NULL != pReq && NULL != pReq->val) {
218!
6812
    taosMemoryFree(pReq->val);
31!
6813
    pReq->val = NULL;
31✔
6814
  }
6815
}
218✔
6816

6817
int32_t tEncodeSVariablesInfo(SEncoder *pEncoder, SVariablesInfo *pInfo) {
3,088✔
6818
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->name));
6,176!
6819
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->value));
6,176!
6820
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->scope));
6,176!
6821
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->category));
6,176!
6822
  return 0;
3,088✔
6823
}
6824

6825
int32_t tDecodeSVariablesInfo(SDecoder *pDecoder, SVariablesInfo *pInfo) {
15,560✔
6826
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->name));
15,560!
6827
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->value));
15,560!
6828
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->scope));
15,560!
6829
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->category));
15,560!
6830
  return 0;
15,560✔
6831
}
6832

6833
int32_t tSerializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
72✔
6834
  SEncoder encoder = {0};
72✔
6835
  int32_t  code = 0;
72✔
6836
  int32_t  lino;
6837
  int32_t  tlen;
6838
  tEncoderInit(&encoder, buf, bufLen);
72✔
6839

6840
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
72!
6841
  int32_t varNum = taosArrayGetSize(pRsp->variables);
72✔
6842
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, varNum));
72!
6843
  for (int32_t i = 0; i < varNum; ++i) {
3,160✔
6844
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
3,088✔
6845
    TAOS_CHECK_EXIT(tEncodeSVariablesInfo(&encoder, pInfo));
3,088!
6846
  }
6847

6848
  for (int32_t i = 0; i < varNum; ++i) {
3,160✔
6849
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
3,088✔
6850
    TAOS_CHECK_RETURN(tEncodeCStr(&encoder, pInfo->info));
6,176!
6851
  }
6852

6853
  tEndEncode(&encoder);
72✔
6854

6855
_exit:
72✔
6856
  if (code) {
72!
6857
    tlen = code;
×
6858
  } else {
6859
    tlen = encoder.pos;
72✔
6860
  }
6861
  tEncoderClear(&encoder);
72✔
6862
  return tlen;
72✔
6863
}
6864

6865
int32_t tDeserializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
178✔
6866
  SDecoder decoder = {0};
178✔
6867
  int32_t  code = 0;
178✔
6868
  int32_t  lino;
6869
  tDecoderInit(&decoder, buf, bufLen);
178✔
6870

6871
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
178!
6872
  int32_t varNum = 0;
178✔
6873
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &varNum));
178!
6874
  if (varNum > 0) {
178✔
6875
    pRsp->variables = taosArrayInit(varNum, sizeof(SVariablesInfo));
174✔
6876
    if (NULL == pRsp->variables) {
174!
6877
      TAOS_CHECK_EXIT(terrno);
×
6878
    }
6879
    for (int32_t i = 0; i < varNum; ++i) {
15,734✔
6880
      SVariablesInfo info = {0};
15,560✔
6881
      TAOS_CHECK_EXIT(tDecodeSVariablesInfo(&decoder, &info));
15,560!
6882
      if (NULL == taosArrayPush(pRsp->variables, &info)) {
31,120!
6883
        TAOS_CHECK_EXIT(terrno);
×
6884
      }
6885
    }
6886

6887
    if (!tDecodeIsEnd(&decoder)) {
174!
6888
      for (int32_t i = 0; i < varNum; ++i) {
15,734✔
6889
        SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
15,560✔
6890
        TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pInfo->info));
15,560!
6891
      }
6892
    }
6893
  }
6894

6895
  tEndDecode(&decoder);
178✔
6896
_exit:
178✔
6897
  tDecoderClear(&decoder);
178✔
6898
  return code;
178✔
6899
}
6900

6901
void tFreeSShowVariablesRsp(SShowVariablesRsp *pRsp) {
214✔
6902
  if (NULL == pRsp) {
214!
6903
    return;
×
6904
  }
6905

6906
  taosArrayDestroy(pRsp->variables);
214✔
6907
}
6908

6909
int32_t tSerializeSShowReq(void *buf, int32_t bufLen, SShowReq *pReq) {
4✔
6910
  SEncoder encoder = {0};
4✔
6911
  int32_t  code = 0;
4✔
6912
  int32_t  lino;
6913
  int32_t  tlen;
6914
  tEncoderInit(&encoder, buf, bufLen);
4✔
6915

6916
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
6917
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
8!
6918
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
8!
6919
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->payloadLen));
8!
6920
  if (pReq->payloadLen > 0) {
4!
6921
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->payload, pReq->payloadLen));
×
6922
  }
6923
  tEndEncode(&encoder);
4✔
6924

6925
_exit:
4✔
6926
  if (code) {
4!
6927
    tlen = code;
×
6928
  } else {
6929
    tlen = encoder.pos;
4✔
6930
  }
6931
  tEncoderClear(&encoder);
4✔
6932
  return tlen;
4✔
6933
}
6934

6935
void tFreeSShowReq(SShowReq *pReq) { taosMemoryFreeClear(pReq->payload); }
2!
6936

6937
int32_t tSerializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
496,474✔
6938
  SEncoder encoder = {0};
496,474✔
6939
  int32_t  code = 0;
496,474✔
6940
  int32_t  lino;
6941
  int32_t  tlen;
6942
  tEncoderInit(&encoder, buf, bufLen);
496,474✔
6943

6944
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
496,611!
6945
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->showId));
993,104!
6946
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
993,104!
6947
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tb));
993,104!
6948
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->filterTb));
993,104!
6949
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
993,104!
6950
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactId));
993,104!
6951
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withFull));
993,104!
6952
  tEndEncode(&encoder);
496,552✔
6953

6954
_exit:
496,310✔
6955
  if (code) {
496,310!
6956
    tlen = code;
×
6957
  } else {
6958
    tlen = encoder.pos;
496,310✔
6959
  }
6960
  tEncoderClear(&encoder);
496,310✔
6961
  return tlen;
495,988✔
6962
}
6963

6964
int32_t tDeserializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
248,642✔
6965
  SDecoder decoder = {0};
248,642✔
6966
  int32_t  code = 0;
248,642✔
6967
  int32_t  lino;
6968

6969
  tDecoderInit(&decoder, buf, bufLen);
248,642✔
6970

6971
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
248,642!
6972
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->showId));
497,532!
6973
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
248,750!
6974
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tb));
248,706!
6975
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->filterTb));
248,732✔
6976
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
248,730!
6977
  if (!tDecodeIsEnd(&decoder)) {
248,667!
6978
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactId));
497,463!
6979
  } else {
6980
    pReq->compactId = -1;
×
6981
  }
6982
  if (!tDecodeIsEnd(&decoder)) {
248,640!
6983
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->withFull));
497,392!
6984
  }
6985
  tEndDecode(&decoder);
248,626✔
6986
_exit:
248,673✔
6987
  tDecoderClear(&decoder);
248,673✔
6988
  return code;
248,697✔
6989
}
6990

6991
static int32_t tEncodeSTableMetaRsp(SEncoder *pEncoder, STableMetaRsp *pRsp) {
7,978,525✔
6992
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->tbName));
15,957,050!
6993
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->stbName));
15,957,050!
6994
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->dbFName));
15,957,050!
6995
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
15,957,050!
6996
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfTags));
15,957,050!
6997
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColumns));
15,957,050!
6998
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->precision));
15,957,050!
6999
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->tableType));
15,957,050!
7000
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->sversion));
15,957,050!
7001
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->tversion));
15,957,050!
7002
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->suid));
15,957,050!
7003
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->tuid));
15,957,050!
7004
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgId));
15,957,050!
7005
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
291,528,769✔
7006
    SSchema *pSchema = &pRsp->pSchemas[i];
283,550,244✔
7007
    TAOS_CHECK_RETURN(tEncodeSSchema(pEncoder, pSchema));
283,550,244!
7008
  }
7009

7010
  if (withExtSchema(pRsp->tableType)) {
7,978,525✔
7011
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
182,738,707✔
7012
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
175,328,025✔
7013
      TAOS_CHECK_RETURN(tEncodeSSchemaExt(pEncoder, pSchemaExt));
175,328,025!
7014
    }
7015
  }
7016

7017
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->virtualStb));
15,959,402!
7018
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColRefs));
15,959,402!
7019
  if (hasRefCol(pRsp->tableType)) {
7,979,701✔
7020
    for (int32_t i = 0; i < pRsp->numOfColRefs; ++i) {
9,766✔
7021
      SColRef *pColRef = &pRsp->pColRefs[i];
8,662✔
7022
      TAOS_CHECK_RETURN(tEncodeSColRef(pEncoder, pColRef));
8,662!
7023
    }
7024
  }
7025
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->rversion));
15,958,288!
7026

7027
  return 0;
7,979,144✔
7028
}
7029

7030
static int32_t tDecodeSTableMetaRsp(SDecoder *pDecoder, STableMetaRsp *pRsp) {
351,347✔
7031
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->tbName));
351,347!
7032
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->stbName));
351,360!
7033
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->dbFName));
351,387!
7034
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->dbId));
702,733!
7035
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfTags));
702,693!
7036
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColumns));
702,633!
7037
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->precision));
702,594!
7038
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->tableType));
702,591!
7039
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->sversion));
702,550!
7040
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->tversion));
702,521!
7041
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->suid));
702,531!
7042
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->tuid));
702,542!
7043
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgId));
702,550!
7044

7045
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
351,276✔
7046
  if (totalCols > 0) {
351,276✔
7047
    pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
152,700!
7048
    if (pRsp->pSchemas == NULL) {
152,703!
7049
      TAOS_CHECK_RETURN(terrno);
×
7050
    }
7051

7052
    for (int32_t i = 0; i < totalCols; ++i) {
4,230,936✔
7053
      SSchema *pSchema = &pRsp->pSchemas[i];
4,078,236✔
7054
      TAOS_CHECK_RETURN(tDecodeSSchema(pDecoder, pSchema));
4,078,233!
7055
    }
7056
  } else {
7057
    pRsp->pSchemas = NULL;
198,576✔
7058
  }
7059

7060
  if (!tDecodeIsEnd(pDecoder)) {
351,276✔
7061
    if (withExtSchema(pRsp->tableType) && pRsp->numOfColumns > 0) {
351,233✔
7062
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
147,830!
7063
      if (pRsp->pSchemaExt == NULL) {
147,829!
7064
        TAOS_CHECK_RETURN(terrno);
×
7065
      }
7066

7067
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
3,687,638✔
7068
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
3,539,822✔
7069
        TAOS_CHECK_RETURN(tDecodeSSchemaExt(pDecoder, pSchemaExt));
3,539,809!
7070
      }
7071
    } else {
7072
      pRsp->pSchemaExt = NULL;
203,453✔
7073
    }
7074
  }
7075
  if (!tDecodeIsEnd(pDecoder)) {
351,312✔
7076
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->virtualStb));
702,553!
7077
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColRefs));
702,557!
7078
    if (hasRefCol(pRsp->tableType) && pRsp->numOfColRefs > 0) {
351,275!
7079
      pRsp->pColRefs = taosMemoryMalloc(sizeof(SColRef) * pRsp->numOfColRefs);
1,173!
7080
      if (pRsp->pColRefs == NULL) {
1,173!
7081
        TAOS_CHECK_RETURN(terrno);
×
7082
      }
7083

7084
      for (int32_t i = 0; i < pRsp->numOfColRefs; ++i) {
12,607✔
7085
        SColRef *pColRef = &pRsp->pColRefs[i];
11,434✔
7086
        TAOS_CHECK_RETURN(tDecodeSColRef(pDecoder, pColRef));
11,434!
7087
      }
7088
    } else {
7089
      pRsp->pColRefs = NULL;
350,090✔
7090
    }
7091
  }
7092
  if (!tDecodeIsEnd(pDecoder)) {
351,304✔
7093
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->rversion));
702,513!
7094
  }
7095

7096
  return 0;
351,325✔
7097
}
7098

7099
int32_t tSerializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
7,513,751✔
7100
  SEncoder encoder = {0};
7,513,751✔
7101
  int32_t  code = 0;
7,513,751✔
7102
  int32_t  lino;
7103
  int32_t  tlen;
7104
  tEncoderInit(&encoder, buf, bufLen);
7,513,751✔
7105

7106
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,514,483!
7107
  TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pRsp));
7,515,511!
7108
  tEndEncode(&encoder);
7,514,711✔
7109

7110
_exit:
7,514,907✔
7111
  if (code) {
7,514,907!
7112
    tlen = code;
×
7113
  } else {
7114
    tlen = encoder.pos;
7,514,907✔
7115
  }
7116
  tEncoderClear(&encoder);
7,514,907✔
7117
  return tlen;
7,514,842✔
7118
}
7119

7120
int32_t tSerializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
61,110✔
7121
  SEncoder encoder = {0};
61,110✔
7122
  int32_t  code = 0;
61,110✔
7123
  int32_t  lino;
7124
  int32_t  tlen;
7125

7126
  tEncoderInit(&encoder, buf, bufLen);
61,110✔
7127

7128
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
61,110!
7129

7130
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
61,110✔
7131
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
61,110!
7132
  for (int32_t i = 0; i < numOfMeta; ++i) {
63,268✔
7133
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
2,158✔
7134
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pMetaRsp));
2,158!
7135
  }
7136

7137
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
61,110✔
7138
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfIndex));
61,110!
7139
  for (int32_t i = 0; i < numOfIndex; ++i) {
61,110!
7140
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
7141
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->tbName));
×
7142
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->dbFName));
×
7143
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, pIndexRsp->suid));
×
7144
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->version));
×
7145
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->indexSize));
×
7146
    int32_t num = taosArrayGetSize(pIndexRsp->pIndex);
×
7147
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
7148
    for (int32_t j = 0; j < num; ++j) {
×
7149
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pIndexRsp->pIndex, j);
×
7150
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
×
7151
    }
7152
  }
7153

7154
  tEndEncode(&encoder);
61,110✔
7155

7156
_exit:
61,110✔
7157
  if (code) {
61,110!
7158
    tlen = code;
×
7159
  } else {
7160
    tlen = encoder.pos;
61,110✔
7161
  }
7162
  tEncoderClear(&encoder);
61,110✔
7163
  return tlen;
61,110✔
7164
}
7165

7166
int32_t tDeserializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
124,257✔
7167
  SDecoder decoder = {0};
124,257✔
7168
  int32_t  code = 0;
124,257✔
7169
  int32_t  lino;
7170

7171
  tDecoderInit(&decoder, buf, bufLen);
124,257✔
7172

7173
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
124,257!
7174
  TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, pRsp));
124,259!
7175

7176
  tEndDecode(&decoder);
124,253✔
7177
_exit:
124,256✔
7178
  tDecoderClear(&decoder);
124,256✔
7179
  return code;
124,256✔
7180
}
7181

7182
int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
9,045✔
7183
  SDecoder decoder = {0};
9,045✔
7184
  int32_t  code = 0;
9,045✔
7185
  int32_t  lino;
7186

7187
  tDecoderInit(&decoder, buf, bufLen);
9,045✔
7188

7189
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,045!
7190

7191
  int32_t numOfMeta = 0;
9,045✔
7192
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
9,045!
7193
  pRsp->pMetaRsp = taosArrayInit(numOfMeta, sizeof(STableMetaRsp));
9,045✔
7194
  if (pRsp->pMetaRsp == NULL) {
9,045!
7195
    TAOS_CHECK_EXIT(terrno);
×
7196
  }
7197

7198
  for (int32_t i = 0; i < numOfMeta; ++i) {
9,678✔
7199
    STableMetaRsp tableMetaRsp = {0};
633✔
7200
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, &tableMetaRsp));
633!
7201
    if (taosArrayPush(pRsp->pMetaRsp, &tableMetaRsp) == NULL) {
1,266!
7202
      taosMemoryFree(tableMetaRsp.pSchemas);
×
7203
      taosMemoryFree(tableMetaRsp.pSchemaExt);
×
7204
      taosMemoryFree(tableMetaRsp.pColRefs);
×
7205
      TAOS_CHECK_EXIT(terrno);
×
7206
    }
7207
  }
7208

7209
  int32_t numOfIndex = 0;
9,045✔
7210
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfIndex));
9,045!
7211

7212
  pRsp->pIndexRsp = taosArrayInit(numOfIndex, sizeof(STableIndexRsp));
9,045✔
7213
  if (pRsp->pIndexRsp == NULL) {
9,045!
7214
    TAOS_CHECK_EXIT(terrno);
×
7215
  }
7216

7217
  for (int32_t i = 0; i < numOfIndex; ++i) {
9,045!
7218
    STableIndexRsp tableIndexRsp = {0};
×
7219
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.tbName));
×
7220
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.dbFName));
×
7221
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &tableIndexRsp.suid));
×
7222
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.version));
×
7223
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.indexSize));
×
7224
    int32_t num = 0;
×
7225
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
7226
    if (num > 0) {
×
7227
      tableIndexRsp.pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
×
7228
      if (NULL == tableIndexRsp.pIndex) {
×
7229
        TAOS_CHECK_EXIT(terrno);
×
7230
      }
7231
      STableIndexInfo info;
7232
      for (int32_t j = 0; j < num; ++j) {
×
7233
        TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
×
7234
        if (NULL == taosArrayPush(tableIndexRsp.pIndex, &info)) {
×
7235
          taosMemoryFree(info.expr);
×
7236
          TAOS_CHECK_EXIT(terrno);
×
7237
        }
7238
      }
7239
    }
7240
    if (taosArrayPush(pRsp->pIndexRsp, &tableIndexRsp) == NULL) {
×
7241
      taosArrayDestroyEx(tableIndexRsp.pIndex, tFreeSTableIndexInfo);
×
7242
      TAOS_CHECK_EXIT(terrno);
×
7243
    }
7244
  }
7245

7246
  tEndDecode(&decoder);
9,045✔
7247

7248
_exit:
9,045✔
7249
  tDecoderClear(&decoder);
9,045✔
7250
  return code;
9,045✔
7251
}
7252

7253
void tFreeSTableMetaRsp(void *pRsp) {
2,058,298✔
7254
  if (NULL == pRsp) {
2,058,298!
7255
    return;
×
7256
  }
7257

7258
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemas);
2,058,298!
7259
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemaExt);
2,058,294!
7260
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pColRefs);
2,058,289!
7261
}
7262

7263
void tFreeSTableIndexRsp(void *info) {
1,174✔
7264
  if (NULL == info) {
1,174!
7265
    return;
×
7266
  }
7267

7268
  STableIndexRsp *pInfo = (STableIndexRsp *)info;
1,174✔
7269

7270
  taosArrayDestroyEx(pInfo->pIndex, tFreeSTableIndexInfo);
1,174✔
7271
}
7272

7273
void tFreeSSTbHbRsp(SSTbHbRsp *pRsp) {
39,599✔
7274
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
39,599✔
7275
  for (int32_t i = 0; i < numOfMeta; ++i) {
41,312✔
7276
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
1,712✔
7277
    tFreeSTableMetaRsp(pMetaRsp);
1,712✔
7278
  }
7279

7280
  taosArrayDestroy(pRsp->pMetaRsp);
39,600✔
7281

7282
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
39,600✔
7283
  for (int32_t i = 0; i < numOfIndex; ++i) {
39,600!
7284
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
7285
    tFreeSTableIndexRsp(pIndexRsp);
×
7286
  }
7287

7288
  taosArrayDestroy(pRsp->pIndexRsp);
39,600✔
7289
}
39,600✔
7290

7291
int32_t tSerializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
373,270✔
7292
  int32_t headLen = sizeof(SMsgHead);
373,270✔
7293
  int32_t code = 0;
373,270✔
7294
  int32_t lino;
7295
  if (buf != NULL) {
373,270✔
7296
    buf = (char *)buf + headLen;
186,657✔
7297
    bufLen -= headLen;
186,657✔
7298
  }
7299

7300
  SEncoder encoder = {0};
373,270✔
7301
  tEncoderInit(&encoder, buf, bufLen);
373,270✔
7302

7303
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
373,300!
7304
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
746,630!
7305
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
746,630!
7306
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->option));
746,630!
7307
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->autoCreateCtb));
746,630!
7308
  tEndEncode(&encoder);
373,315✔
7309

7310
_exit:
373,298✔
7311
  if (code) {
373,298!
7312
    tEncoderClear(&encoder);
×
7313
    return code;
×
7314
  } else {
7315
    int32_t tlen = encoder.pos;
373,298✔
7316
    tEncoderClear(&encoder);
373,298✔
7317

7318
    if (buf != NULL) {
373,296✔
7319
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
186,658✔
7320
      pHead->vgId = htonl(pReq->header.vgId);
186,658✔
7321
      pHead->contLen = htonl(tlen + headLen);
186,658✔
7322
    }
7323

7324
    return tlen + headLen;
373,296✔
7325
  }
7326
}
7327

7328
int32_t tDeserializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
3,843,381✔
7329
  int32_t   headLen = sizeof(SMsgHead);
3,843,381✔
7330
  int32_t   code = 0;
3,843,381✔
7331
  int32_t   lino;
7332
  SMsgHead *pHead = buf;
3,843,381✔
7333
  pHead->vgId = pReq->header.vgId;
3,843,381✔
7334
  pHead->contLen = pReq->header.contLen;
3,843,381✔
7335

7336
  SDecoder decoder = {0};
3,843,381✔
7337
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
3,843,381✔
7338

7339
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,843,299!
7340
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
3,844,153!
7341
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
3,843,865!
7342
  if (!tDecodeIsEnd(&decoder)) {
3,843,843✔
7343
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->option));
7,687,190!
7344
  } else {
7345
    pReq->option = 0;
231✔
7346
  }
7347
  if (!tDecodeIsEnd(&decoder)) {
3,843,809✔
7348
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->autoCreateCtb));
7,687,214!
7349
  } else {
7350
    pReq->autoCreateCtb = 0;
180✔
7351
  }
7352

7353
  tEndDecode(&decoder);
3,843,765✔
7354
_exit:
3,843,511✔
7355
  tDecoderClear(&decoder);
3,843,511✔
7356
  return code;
3,844,135✔
7357
}
7358

7359
int32_t tSerializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
724✔
7360
  SEncoder encoder = {0};
724✔
7361
  int32_t  code = 0;
724✔
7362
  int32_t  lino;
7363
  int32_t  tlen;
7364
  tEncoderInit(&encoder, buf, bufLen);
724✔
7365

7366
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
724!
7367
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
1,448!
7368
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
1,448!
7369
  ENCODESQL();
2,172!
7370
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
1,448!
7371

7372
  tEndEncode(&encoder);
724✔
7373

7374
_exit:
724✔
7375
  if (code) {
724!
7376
    tlen = code;
×
7377
  } else {
7378
    tlen = encoder.pos;
724✔
7379
  }
7380
  tEncoderClear(&encoder);
724✔
7381
  return tlen;
724✔
7382
}
7383

7384
int32_t tDeserializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
380✔
7385
  SDecoder decoder = {0};
380✔
7386
  int32_t  code = 0;
380✔
7387
  int32_t  lino;
7388

7389
  tDecoderInit(&decoder, buf, bufLen);
380✔
7390

7391
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
380!
7392
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
380!
7393
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
760!
7394
  DECODESQL();
1,140!
7395
  if (!tDecodeIsEnd(&decoder)) {
380!
7396
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
760!
7397
  }
7398
  tEndDecode(&decoder);
380✔
7399

7400
_exit:
380✔
7401
  tDecoderClear(&decoder);
380✔
7402
  return code;
380✔
7403
}
7404

7405
void tFreeSMDropTopicReq(SMDropTopicReq *pReq) { FREESQL(); }
742!
7406

7407
int32_t tSerializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
28✔
7408
  SEncoder encoder = {0};
28✔
7409
  int32_t  code = 0;
28✔
7410
  int32_t  lino;
7411
  int32_t  tlen;
7412
  tEncoderInit(&encoder, buf, bufLen);
28✔
7413

7414
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
28!
7415
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->topic));
56!
7416
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
56!
7417
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
56!
7418
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
56!
7419
  tEndEncode(&encoder);
28✔
7420

7421
_exit:
28✔
7422
  if (code) {
28!
7423
    tlen = code;
×
7424
  } else {
7425
    tlen = encoder.pos;
28✔
7426
  }
7427
  tEncoderClear(&encoder);
28✔
7428
  return tlen;
28✔
7429
}
7430

7431
int32_t tDeserializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
10✔
7432
  SDecoder decoder = {0};
10✔
7433
  int32_t  code = 0;
10✔
7434
  int32_t  lino;
7435
  tDecoderInit(&decoder, buf, bufLen);
10✔
7436

7437
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
7438
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->topic));
10!
7439
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
10!
7440
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
20!
7441
  if (!tDecodeIsEnd(&decoder)) {
10!
7442
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
20!
7443
  }
7444
  tEndDecode(&decoder);
10✔
7445

7446
_exit:
10✔
7447
  tDecoderClear(&decoder);
10✔
7448
  return code;
10✔
7449
}
7450

7451
int32_t tSerializeSCMCreateTopicReq(void *buf, int32_t bufLen, const SCMCreateTopicReq *pReq) {
1,136✔
7452
  SEncoder encoder = {0};
1,136✔
7453
  int32_t  code = 0;
1,136✔
7454
  int32_t  lino;
7455
  int32_t  tlen;
7456
  tEncoderInit(&encoder, buf, bufLen);
1,136✔
7457

7458
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,136!
7459
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
2,272!
7460
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
2,272!
7461
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->subType));
2,272!
7462
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withMeta));
2,272!
7463
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subDbName));
2,272!
7464
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
1,136✔
7465
  } else {
7466
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
968✔
7467
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subStbName));
184!
7468
    }
7469
    if (pReq->ast && strlen(pReq->ast) > 0) {
968!
7470
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->ast)));
1,832!
7471
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
1,832!
7472
    } else {
7473
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
52!
7474
    }
7475
  }
7476
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->sql)));
2,272!
7477
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
2,272!
7478

7479
  tEndEncode(&encoder);
1,136✔
7480

7481
_exit:
1,136✔
7482
  if (code) {
1,136!
7483
    tlen = code;
×
7484
  } else {
7485
    tlen = encoder.pos;
1,136✔
7486
  }
7487
  tEncoderClear(&encoder);
1,136✔
7488
  return tlen;
1,136✔
7489
}
7490

7491
int32_t tDeserializeSCMCreateTopicReq(void *buf, int32_t bufLen, SCMCreateTopicReq *pReq) {
569✔
7492
  int32_t  sqlLen = 0;
569✔
7493
  int32_t  astLen = 0;
569✔
7494
  int32_t  code = 0;
569✔
7495
  int32_t  lino;
7496
  SDecoder decoder = {0};
569✔
7497
  tDecoderInit(&decoder, buf, bufLen);
569✔
7498

7499
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
569!
7500
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
569!
7501
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
1,138!
7502
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->subType));
1,138!
7503
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withMeta));
1,138!
7504
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subDbName));
569!
7505
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
569✔
7506
  } else {
7507
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
492✔
7508
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subStbName));
36!
7509
    }
7510
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
492!
7511
    if (astLen > 0) {
492✔
7512
      pReq->ast = taosMemoryCalloc(1, astLen + 1);
472!
7513
      if (pReq->ast == NULL) {
472!
7514
        TAOS_CHECK_EXIT(terrno);
×
7515
      }
7516
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
472!
7517
    }
7518
  }
7519
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
569!
7520
  if (sqlLen > 0) {
569!
7521
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
569!
7522
    if (pReq->sql == NULL) {
569!
7523
      TAOS_CHECK_EXIT(terrno);
×
7524
    }
7525
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
569!
7526
  }
7527

7528
  tEndDecode(&decoder);
569✔
7529

7530
_exit:
569✔
7531
  tDecoderClear(&decoder);
569✔
7532
  return code;
569✔
7533
}
7534

7535
void tFreeSCMCreateTopicReq(SCMCreateTopicReq *pReq) {
1,245✔
7536
  taosMemoryFreeClear(pReq->sql);
1,245!
7537
  if (TOPIC_SUB_TYPE__DB != pReq->subType) {
1,245✔
7538
    taosMemoryFreeClear(pReq->ast);
1,084!
7539
  }
7540
}
1,245✔
7541

7542
int32_t tSerializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
66,120✔
7543
  SEncoder encoder = {0};
66,120✔
7544
  int32_t  code = 0;
66,120✔
7545
  int32_t  lino;
7546
  int32_t  tlen;
7547
  tEncoderInit(&encoder, buf, bufLen);
66,120✔
7548

7549
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
66,149!
7550
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->connType));
132,274!
7551
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pid));
132,274!
7552
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->app));
132,274!
7553
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
132,274!
7554
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
132,274!
7555
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->passwd, TSDB_PASSWORD_LEN));
132,274!
7556
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->startTime));
132,274!
7557
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sVer));
132,274!
7558
  tEndEncode(&encoder);
66,137✔
7559

7560
_exit:
66,141✔
7561
  if (code) {
66,141!
7562
    tlen = code;
×
7563
  } else {
7564
    tlen = encoder.pos;
66,141✔
7565
  }
7566
  tEncoderClear(&encoder);
66,141✔
7567
  return tlen;
66,137✔
7568
}
7569

7570
int32_t tDeserializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
104,072✔
7571
  SDecoder decoder = {0};
104,072✔
7572
  int32_t  code = 0;
104,072✔
7573
  int32_t  lino;
7574
  tDecoderInit(&decoder, buf, bufLen);
104,072✔
7575

7576
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
104,068!
7577
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->connType));
208,140!
7578
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pid));
208,137!
7579
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->app));
104,068!
7580
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
104,067!
7581
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
104,068!
7582
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->passwd));
104,066!
7583
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->startTime));
208,135!
7584
  // Check the client version from version 3.0.3.0
7585
  if (tDecodeIsEnd(&decoder)) {
104,067!
7586
    tDecoderClear(&decoder);
×
7587
    TAOS_CHECK_EXIT(TSDB_CODE_VERSION_NOT_COMPATIBLE);
×
7588
  }
7589
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sVer));
104,067!
7590
  tEndDecode(&decoder);
104,067✔
7591

7592
_exit:
104,066✔
7593
  tDecoderClear(&decoder);
104,066✔
7594
  return code;
104,066✔
7595
}
7596

7597
int32_t tSerializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
208,075✔
7598
  SEncoder encoder = {0};
208,075✔
7599
  int32_t  code = 0;
208,075✔
7600
  int32_t  lino;
7601
  int32_t  tlen;
7602
  tEncoderInit(&encoder, buf, bufLen);
208,075✔
7603

7604
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
208,076!
7605
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->acctId));
416,174!
7606
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->clusterId));
416,174!
7607
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->connId));
416,174!
7608
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeNum));
416,174!
7609
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->superUser));
416,174!
7610
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->sysInfo));
416,174!
7611
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->connType));
416,174!
7612
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, &pRsp->epSet));
208,087!
7613
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->svrTimestamp));
416,162!
7614
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sVer));
416,162!
7615
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sDetailVer));
416,162!
7616
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->passVer));
416,162!
7617
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->authVer));
416,162!
7618
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->whiteListVer));
416,162!
7619
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pRsp->monitorParas));
208,081!
7620
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->enableAuditDelete));
416,148!
7621
  tEndEncode(&encoder);
208,074✔
7622

7623
_exit:
208,074✔
7624
  if (code) {
208,074!
7625
    tlen = code;
×
7626
  } else {
7627
    tlen = encoder.pos;
208,074✔
7628
  }
7629
  tEncoderClear(&encoder);
208,074✔
7630
  return tlen;
208,084✔
7631
}
7632

7633
int32_t tDeserializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
32,986✔
7634
  SDecoder decoder = {0};
32,986✔
7635
  int32_t  code = 0;
32,986✔
7636
  int32_t  lino;
7637
  tDecoderInit(&decoder, buf, bufLen);
32,986✔
7638

7639
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
33,024!
7640
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->acctId));
66,056!
7641
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->clusterId));
66,055!
7642
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->connId));
66,048!
7643
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeNum));
66,038!
7644
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->superUser));
66,033!
7645
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->sysInfo));
66,029!
7646
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->connType));
66,032!
7647
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &pRsp->epSet));
33,018!
7648
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->svrTimestamp));
66,042!
7649
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sVer));
33,019!
7650
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sDetailVer));
33,020!
7651

7652
  if (!tDecodeIsEnd(&decoder)) {
33,015!
7653
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->passVer));
66,029!
7654
  } else {
7655
    pRsp->passVer = 0;
×
7656
  }
7657
  // since 3.0.7.0
7658
  if (!tDecodeIsEnd(&decoder)) {
33,014✔
7659
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->authVer));
66,018!
7660
  } else {
7661
    pRsp->authVer = 0;
5✔
7662
  }
7663

7664
  if (!tDecodeIsEnd(&decoder)) {
33,014✔
7665
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->whiteListVer));
66,020!
7666
  } else {
7667
    pRsp->whiteListVer = 0;
2✔
7668
  }
7669
  if (!tDecodeIsEnd(&decoder)) {
33,010!
7670
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pRsp->monitorParas));
33,012!
7671
  }
7672
  if (!tDecodeIsEnd(&decoder)) {
33,019!
7673
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->enableAuditDelete));
66,049!
7674
  } else {
7675
    pRsp->enableAuditDelete = 0;
×
7676
  }
7677
  tEndDecode(&decoder);
33,024✔
7678

7679
_exit:
33,018✔
7680
  tDecoderClear(&decoder);
33,018✔
7681
  return code;
33,017✔
7682
}
7683

7684
int32_t tSerializeSMTimerMsg(void *buf, int32_t bufLen, SMTimerReq *pReq) {
328,074✔
7685
  SEncoder encoder = {0};
328,074✔
7686
  int32_t  code = 0;
328,074✔
7687
  int32_t  lino;
7688
  int32_t  tlen;
7689
  tEncoderInit(&encoder, buf, bufLen);
328,074✔
7690

7691
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
328,074!
7692
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
656,148!
7693
  tEndEncode(&encoder);
328,074✔
7694

7695
_exit:
328,074✔
7696
  if (code) {
328,074!
7697
    tlen = code;
×
7698
  } else {
7699
    tlen = encoder.pos;
328,074✔
7700
  }
7701
  tEncoderClear(&encoder);
328,074✔
7702
  return tlen;
328,074✔
7703
}
7704

7705
int32_t tSerializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
4✔
7706
  SEncoder encoder = {0};
4✔
7707
  int32_t  code = 0;
4✔
7708
  int32_t  lino;
7709
  int32_t  tlen;
7710
  tEncoderInit(&encoder, buf, bufLen);
4✔
7711

7712
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
7713

7714
  int32_t size = taosArrayGetSize(pMsg->pList);
4✔
7715
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
4!
7716

7717
  for (int32_t i = 0; i < size; i++) {
8✔
7718
    SOrphanTask *pTask = taosArrayGet(pMsg->pList, i);
4✔
7719
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pTask->streamId));
8!
7720
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->taskId));
8!
7721
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->nodeId));
8!
7722
  }
7723

7724
  tEndEncode(&encoder);
4✔
7725

7726
_exit:
4✔
7727
  if (code) {
4!
7728
    tlen = code;
×
7729
  } else {
7730
    tlen = encoder.pos;
4✔
7731
  }
7732
  tEncoderClear(&encoder);
4✔
7733
  return tlen;
4✔
7734
}
7735

7736
int32_t tDeserializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
2✔
7737
  SDecoder decoder = {0};
2✔
7738
  int32_t  code = 0;
2✔
7739
  int32_t  lino;
7740
  tDecoderInit(&decoder, buf, bufLen);
2✔
7741

7742
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
7743

7744
  int32_t num = 0;
2✔
7745
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
2!
7746

7747
  if (num > 0) {
2!
7748
    pMsg->pList = taosArrayInit(num, sizeof(SOrphanTask));
2✔
7749
    if (NULL == pMsg->pList) {
2!
7750
      TAOS_CHECK_EXIT(terrno);
×
7751
    }
7752
    for (int32_t i = 0; i < num; ++i) {
4✔
7753
      SOrphanTask info = {0};
2✔
7754
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &info.streamId));
2!
7755
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.taskId));
2!
7756
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.nodeId));
2!
7757

7758
      if (taosArrayPush(pMsg->pList, &info) == NULL) {
4!
7759
        TAOS_CHECK_EXIT(terrno);
×
7760
      }
7761
    }
7762
  }
7763

7764
  tEndDecode(&decoder);
2✔
7765
_exit:
2✔
7766
  tDecoderClear(&decoder);
2✔
7767
  return code;
2✔
7768
}
7769

7770
void tDestroyDropOrphanTaskMsg(SMStreamDropOrphanMsg *pMsg) {
2✔
7771
  if (pMsg == NULL) {
2!
7772
    return;
×
7773
  }
7774

7775
  taosArrayDestroy(pMsg->pList);
2✔
7776
}
7777

7778
int32_t tEncodeSReplica(SEncoder *pEncoder, SReplica *pReplica) {
464,190✔
7779
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReplica->id));
928,380!
7780
  TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pReplica->port));
928,380!
7781
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReplica->fqdn));
928,380!
7782
  return 0;
464,190✔
7783
}
7784

7785
int32_t tDecodeSReplica(SDecoder *pDecoder, SReplica *pReplica) {
324,325✔
7786
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReplica->id));
648,547!
7787
  TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pReplica->port));
648,241!
7788
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReplica->fqdn));
324,019!
7789
  return 0;
324,633✔
7790
}
7791

7792
int32_t tSerializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
25,864✔
7793
  SEncoder encoder = {0};
25,864✔
7794
  int32_t  code = 0;
25,864✔
7795
  int32_t  lino;
7796
  int32_t  tlen;
7797
  tEncoderInit(&encoder, buf, bufLen);
25,864✔
7798

7799
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
25,864!
7800
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
51,728!
7801
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
51,728!
7802
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
51,728!
7803
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
51,728!
7804
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
51,728!
7805
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
51,728!
7806
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
51,728!
7807
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
51,728!
7808
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
51,728!
7809
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
51,728!
7810
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
51,728!
7811
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
51,728!
7812
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
51,728!
7813
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
51,728!
7814
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
51,728!
7815
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
51,728!
7816
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashBegin));
51,728!
7817
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashEnd));
51,728!
7818
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->hashMethod));
51,728!
7819
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
51,728!
7820
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
51,728!
7821
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
51,728!
7822
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
51,728!
7823
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
51,728!
7824
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
51,728!
7825
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
51,728!
7826
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
155,184✔
7827
    SReplica *pReplica = &pReq->replicas[i];
129,320✔
7828
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
129,320!
7829
  }
7830
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
51,728!
7831
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
25,918✔
7832
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
54✔
7833
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
108!
7834
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
108!
7835
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
108!
7836
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
108!
7837
  }
7838

7839
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isTsma));
51,728!
7840
  if (pReq->isTsma) {
25,864!
7841
    uint32_t tsmaLen = (uint32_t)(htonl(((SMsgHead *)pReq->pTsma)->contLen));
×
7842
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pTsma, tsmaLen));
×
7843
  }
7844
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
51,728!
7845
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
51,728!
7846
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
51,728!
7847
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
51,728!
7848
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sstTrigger));
51,728!
7849
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
51,728!
7850
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
51,728!
7851
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
51,728!
7852
  for (int32_t i = 0; i < 6; ++i) {
181,048✔
7853
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
310,368!
7854
  }
7855
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
51,728!
7856
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
51,728!
7857
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
284,504✔
7858
    SReplica *pReplica = &pReq->learnerReplicas[i];
258,640✔
7859
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
258,640!
7860
  }
7861
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
51,728!
7862
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
51,728!
7863
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
51,728!
7864
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
51,728!
7865
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
51,728!
7866
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
51,728!
7867

7868
  tEndEncode(&encoder);
25,864✔
7869

7870
_exit:
25,864✔
7871
  if (code) {
25,864!
7872
    tlen = code;
×
7873
  } else {
7874
    tlen = encoder.pos;
25,864✔
7875
  }
7876
  tEncoderClear(&encoder);
25,864✔
7877
  return tlen;
25,864✔
7878
}
7879

7880
int32_t tDeserializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
13,055✔
7881
  SDecoder decoder = {0};
13,055✔
7882
  int32_t  code = 0;
13,055✔
7883
  int32_t  lino;
7884

7885
  tDecoderInit(&decoder, buf, bufLen);
13,055✔
7886

7887
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
13,064!
7888
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
26,106!
7889
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
13,050!
7890
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
26,111!
7891
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
26,106!
7892
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
26,123!
7893
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
26,121!
7894
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
26,114!
7895
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
26,110!
7896
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
26,111!
7897
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
26,106!
7898
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
26,085!
7899
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
26,087!
7900
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
26,105!
7901
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
26,101!
7902
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
26,089!
7903
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
26,075!
7904
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashBegin));
26,081!
7905
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashEnd));
26,094!
7906
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->hashMethod));
26,087!
7907
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
26,082!
7908
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
26,085!
7909
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
26,084!
7910
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
26,084!
7911
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
26,079!
7912
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
26,063!
7913
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
26,061!
7914
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
78,105✔
7915
    SReplica *pReplica = &pReq->replicas[i];
64,984✔
7916
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
64,984!
7917
  }
7918
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
26,182!
7919
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
13,061✔
7920
  if (pReq->pRetensions == NULL) {
13,039!
7921
    TAOS_CHECK_EXIT(terrno);
×
7922
  }
7923

7924
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
13,072✔
7925
    SRetention rentension = {0};
27✔
7926
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
27!
7927
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
27!
7928
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
27!
7929
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
27!
7930
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
54!
7931
      TAOS_CHECK_EXIT(terrno);
×
7932
    }
7933
  }
7934

7935
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isTsma));
26,065!
7936
  if (pReq->isTsma) {
13,020!
7937
    TAOS_CHECK_EXIT(tDecodeBinary(&decoder, (uint8_t **)&pReq->pTsma, NULL));
×
7938
  }
7939

7940
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
26,021!
7941
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
26,013!
7942
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
26,043!
7943
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
26,054!
7944
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sstTrigger));
26,033!
7945
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
26,021!
7946
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
26,019!
7947
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
26,020!
7948
  for (int32_t i = 0; i < 6; ++i) {
90,637✔
7949
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
155,256!
7950
  }
7951
  if (!tDecodeIsEnd(&decoder)) {
13,006✔
7952
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
25,966!
7953
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
25,979!
7954
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
143,159✔
7955
      SReplica *pReplica = &pReq->learnerReplicas[i];
129,988✔
7956
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
129,988!
7957
    }
7958
  }
7959
  if (!tDecodeIsEnd(&decoder)) {
13,192✔
7960
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
26,118!
7961
  }
7962
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
13,186✔
7963
  if (!tDecodeIsEnd(&decoder)) {
13,186✔
7964
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
26,101!
7965
  }
7966
  pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
13,169✔
7967
  pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
13,169✔
7968
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
13,169✔
7969
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
13,169✔
7970
  if (!tDecodeIsEnd(&decoder)) {
13,169✔
7971
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
26,063!
7972
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
26,028!
7973
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
26,019!
7974
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
26,018!
7975
  }
7976

7977
  tEndDecode(&decoder);
13,133✔
7978

7979
_exit:
13,006✔
7980
  tDecoderClear(&decoder);
13,006✔
7981
  return code;
13,016✔
7982
}
7983

7984
int32_t tFreeSCreateVnodeReq(SCreateVnodeReq *pReq) {
13,074✔
7985
  taosArrayDestroy(pReq->pRetensions);
13,074✔
7986
  pReq->pRetensions = NULL;
13,074✔
7987
  return 0;
13,074✔
7988
}
7989

7990
int32_t tSerializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
104✔
7991
  SEncoder encoder = {0};
104✔
7992
  int32_t  code = 0;
104✔
7993
  int32_t  lino;
7994
  int32_t  tlen;
7995
  tEncoderInit(&encoder, buf, bufLen);
104✔
7996

7997
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
104!
7998

7999
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
208!
8000
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
208!
8001
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
208!
8002

8003
  tEndEncode(&encoder);
104✔
8004

8005
_exit:
104✔
8006
  if (code) {
104!
8007
    tlen = code;
×
8008
  } else {
8009
    tlen = encoder.pos;
104✔
8010
  }
8011
  tEncoderClear(&encoder);
104✔
8012
  return tlen;
104✔
8013
}
8014

8015
int32_t tDeserializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
56✔
8016
  int32_t  headLen = sizeof(SMsgHead);
56✔
8017
  SDecoder decoder = {0};
56✔
8018
  int32_t  code = 0;
56✔
8019
  int32_t  lino;
8020
  tDecoderInit(&decoder, ((uint8_t *)buf) + headLen, bufLen - headLen);
56✔
8021

8022
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
56!
8023
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
112!
8024
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
112!
8025
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
112!
8026

8027
  tEndDecode(&decoder);
56✔
8028
_exit:
56✔
8029
  tDecoderClear(&decoder);
56✔
8030
  return code;
56✔
8031
}
8032

8033
int32_t tSerializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
112✔
8034
  SEncoder encoder = {0};
112✔
8035
  int32_t  code = 0;
112✔
8036
  int32_t  lino;
8037
  int32_t  tlen;
8038
  tEncoderInit(&encoder, buf, bufLen);
112✔
8039

8040
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
112!
8041
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
224!
8042
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
224!
8043
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
224!
8044
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numberFileset));
224!
8045
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->finished));
224!
8046
  // 1. add progress and remaining time
8047
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->progress));
224!
8048
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->remainingTime));
224!
8049

8050
  tEndEncode(&encoder);
112✔
8051

8052
_exit:
112✔
8053
  if (code) {
112!
8054
    tlen = code;
×
8055
  } else {
8056
    tlen = encoder.pos;
112✔
8057
  }
8058
  tEncoderClear(&encoder);
112✔
8059
  return tlen;
112✔
8060
}
8061
int32_t tDeserializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
52✔
8062
  SDecoder decoder = {0};
52✔
8063
  int32_t  code = 0;
52✔
8064
  int32_t  lino;
8065
  tDecoderInit(&decoder, buf, bufLen);
52✔
8066

8067
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
52!
8068
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
104!
8069
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
104!
8070
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
104!
8071
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numberFileset));
104!
8072
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->finished));
104!
8073
  // 1. decode progress and remaining time
8074
  if (!tDecodeIsEnd(&decoder)) {
52!
8075
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->progress));
104!
8076
    TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->remainingTime));
104!
8077
  } else {
8078
    pReq->progress = 0;
×
8079
    pReq->remainingTime = 0;
×
8080
  }
8081

8082
  tEndDecode(&decoder);
52✔
8083
_exit:
52✔
8084
  tDecoderClear(&decoder);
52✔
8085
  return code;
52✔
8086
}
8087

8088
int32_t tSerializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
35,846✔
8089
  SEncoder encoder = {0};
35,846✔
8090
  int32_t  code = 0;
35,846✔
8091
  int32_t  lino;
8092
  int32_t  tlen;
8093
  tEncoderInit(&encoder, buf, bufLen);
35,846✔
8094

8095
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
35,846!
8096
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
71,692!
8097
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
71,692!
8098
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
71,692!
8099
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
71,692!
8100
  for (int32_t i = 0; i < 8; ++i) {
322,614✔
8101
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
573,536!
8102
  }
8103
  tEndEncode(&encoder);
35,846✔
8104

8105
_exit:
35,846✔
8106
  if (code) {
35,846!
8107
    tlen = code;
×
8108
  } else {
8109
    tlen = encoder.pos;
35,846✔
8110
  }
8111
  tEncoderClear(&encoder);
35,846✔
8112
  return tlen;
35,846✔
8113
}
8114

8115
int32_t tDeserializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
5,450✔
8116
  SDecoder decoder = {0};
5,450✔
8117
  int32_t  code = 0;
5,450✔
8118
  int32_t  lino;
8119
  tDecoderInit(&decoder, buf, bufLen);
5,450✔
8120

8121
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,450!
8122
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
10,900!
8123
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
10,900!
8124
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
10,900!
8125
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
5,450!
8126
  for (int32_t i = 0; i < 8; ++i) {
49,050✔
8127
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
87,200!
8128
  }
8129
  tEndDecode(&decoder);
5,450✔
8130

8131
_exit:
5,450✔
8132
  tDecoderClear(&decoder);
5,450✔
8133
  return code;
5,450✔
8134
}
8135
int32_t tSerializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
4,292✔
8136
  SEncoder encoder = {0};
4,292✔
8137
  int32_t  code = 0;
4,292✔
8138
  int32_t  lino;
8139
  int32_t  tlen;
8140
  tEncoderInit(&encoder, buf, bufLen);
4,292✔
8141

8142
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,292!
8143
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
8,584!
8144
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
8,584!
8145
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stbUid));
8,584!
8146
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
8,584!
8147
  for (int32_t i = 0; i < 8; ++i) {
38,628✔
8148
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
68,672!
8149
  }
8150
  tEndEncode(&encoder);
4,292✔
8151

8152
_exit:
4,292✔
8153
  if (code) {
4,292!
8154
    tlen = code;
×
8155
  } else {
8156
    tlen = encoder.pos;
4,292✔
8157
  }
8158
  tEncoderClear(&encoder);
4,292✔
8159
  return tlen;
4,292✔
8160
}
8161

8162
int32_t tDeserializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
2,146✔
8163
  SDecoder decoder = {0};
2,146✔
8164
  int32_t  code = 0;
2,146✔
8165
  int32_t  lino;
8166
  tDecoderInit(&decoder, buf, bufLen);
2,146✔
8167

8168
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,146!
8169
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
2,146!
8170
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
2,146!
8171
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stbUid));
4,292!
8172
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
4,292!
8173
  for (int32_t i = 0; i < 8; ++i) {
19,314✔
8174
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
34,336!
8175
  }
8176
  tEndDecode(&decoder);
2,146✔
8177

8178
_exit:
2,146✔
8179
  tDecoderClear(&decoder);
2,146✔
8180
  return code;
2,146✔
8181
}
8182

8183
int32_t tSerializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
98✔
8184
  SEncoder encoder = {0};
98✔
8185
  int32_t  code = 0;
98✔
8186
  int32_t  lino;
8187
  int32_t  tlen;
8188
  tEncoderInit(&encoder, buf, bufLen);
98✔
8189

8190
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
98!
8191
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
196!
8192
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
196!
8193
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactStartTime));
196!
8194

8195
  // 1.1 add tw.skey and tw.ekey
8196
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.skey));
196!
8197
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.ekey));
196!
8198

8199
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
196!
8200
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
196!
8201

8202
  tEndEncode(&encoder);
98✔
8203

8204
_exit:
98✔
8205
  if (code) {
98!
8206
    tlen = code;
×
8207
  } else {
8208
    tlen = encoder.pos;
98✔
8209
  }
8210
  tEncoderClear(&encoder);
98✔
8211
  return tlen;
98✔
8212
}
8213

8214
int32_t tDeserializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
66✔
8215
  SDecoder decoder = {0};
66✔
8216
  int32_t  code = 0;
66✔
8217
  int32_t  lino;
8218
  tDecoderInit(&decoder, buf, bufLen);
66✔
8219

8220
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
66!
8221
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
132!
8222
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
66!
8223
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactStartTime));
132!
8224

8225
  // 1.1
8226
  if (tDecodeIsEnd(&decoder)) {
66!
8227
    pReq->tw.skey = TSKEY_MIN;
×
8228
    pReq->tw.ekey = TSKEY_MAX;
×
8229
  } else {
8230
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.skey));
132!
8231
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.ekey));
132!
8232
  }
8233

8234
  if (!tDecodeIsEnd(&decoder)) {
66!
8235
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
132!
8236
  }
8237

8238
  if (!tDecodeIsEnd(&decoder)) {
66!
8239
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
132!
8240
  } else {
8241
    pReq->metaOnly = false;
×
8242
  }
8243

8244
  tEndDecode(&decoder);
66✔
8245
_exit:
66✔
8246
  tDecoderClear(&decoder);
66✔
8247
  return code;
66✔
8248
}
8249

8250
int32_t tSerializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
4✔
8251
  SEncoder encoder = {0};
4✔
8252
  int32_t  code = 0;
4✔
8253
  int32_t  lino;
8254
  int32_t  tlen;
8255
  tEncoderInit(&encoder, buf, bufLen);
4✔
8256

8257
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
8258
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
8!
8259
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
8!
8260
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
8!
8261

8262
  tEndEncode(&encoder);
4✔
8263

8264
_exit:
4✔
8265
  if (code) {
4!
8266
    tlen = code;
×
8267
  } else {
8268
    tlen = encoder.pos;
4✔
8269
  }
8270
  tEncoderClear(&encoder);
4✔
8271
  return tlen;
4✔
8272
}
8273

8274
int32_t tDeserializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
2✔
8275
  int32_t  code = 0;
2✔
8276
  int32_t  lino;
8277
  SDecoder decoder = {0};
2✔
8278

8279
  tDecoderInit(&decoder, buf, bufLen);
2✔
8280

8281
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8282
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
4!
8283
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
4!
8284
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
4!
8285
  tEndDecode(&decoder);
2✔
8286

8287
_exit:
2✔
8288
  tDecoderClear(&decoder);
2✔
8289
  return code;
2✔
8290
}
8291

8292
int32_t tSerializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
1,474✔
8293
  int32_t  code = 0;
1,474✔
8294
  int32_t  lino;
8295
  int32_t  tlen;
8296
  SEncoder encoder = {0};
1,474✔
8297

8298
  tEncoderInit(&encoder, buf, bufLen);
1,474✔
8299

8300
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,474!
8301
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
2,948!
8302
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
2,948!
8303
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
2,948!
8304
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
2,948!
8305
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
2,948!
8306
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
2,948!
8307
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
2,948!
8308
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
2,948!
8309
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
2,948!
8310
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
2,948!
8311
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
2,948!
8312
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
2,948!
8313
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
2,948!
8314
  for (int32_t i = 0; i < 7; ++i) {
11,792✔
8315
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
20,636!
8316
  }
8317

8318
  // 1st modification
8319
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sttTrigger));
2,948!
8320
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
2,948!
8321
  // 2nd modification
8322
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
2,948!
8323
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
2,948!
8324
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
2,948!
8325

8326
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
2,948!
8327
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
2,948!
8328

8329
  tEndEncode(&encoder);
1,474✔
8330

8331
_exit:
1,474✔
8332
  if (code) {
1,474!
8333
    tlen = code;
×
8334
  } else {
8335
    tlen = encoder.pos;
1,474✔
8336
  }
8337
  tEncoderClear(&encoder);
1,474✔
8338
  return tlen;
1,474✔
8339
}
8340

8341
int32_t tDeserializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
1,075✔
8342
  SDecoder decoder = {0};
1,075✔
8343
  int32_t  code = 0;
1,075✔
8344
  int32_t  lino;
8345
  tDecoderInit(&decoder, buf, bufLen);
1,075✔
8346

8347
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,075!
8348
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
2,154!
8349
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
2,154!
8350
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
2,153!
8351
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
2,153!
8352
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
2,154!
8353
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
2,154!
8354
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
2,153!
8355
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
2,152!
8356
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
2,153!
8357
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
2,154!
8358
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
2,153!
8359
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
2,153!
8360
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
2,154!
8361
  for (int32_t i = 0; i < 7; ++i) {
8,609✔
8362
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
15,062!
8363
  }
8364

8365
  // 1st modification
8366
  if (tDecodeIsEnd(&decoder)) {
1,079!
8367
    pReq->sttTrigger = -1;
×
8368
    pReq->minRows = -1;
×
8369
  } else {
8370
    TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sttTrigger));
2,154!
8371
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
2,151!
8372
  }
8373

8374
  // 2n modification
8375
  if (tDecodeIsEnd(&decoder)) {
1,076!
8376
    pReq->walRetentionPeriod = -1;
×
8377
    pReq->walRetentionSize = -1;
×
8378
  } else {
8379
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
2,153!
8380
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
2,153!
8381
  }
8382
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
1,076✔
8383
  if (!tDecodeIsEnd(&decoder)) {
1,076!
8384
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
2,154!
8385
  }
8386

8387
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
1,076✔
8388
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
1,076✔
8389
  if (!tDecodeIsEnd(&decoder)) {
1,076!
8390
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal) < 0);
2,154!
8391
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact) < 0);
2,152!
8392
  }
8393

8394
  tEndDecode(&decoder);
1,074✔
8395

8396
_exit:
1,074✔
8397
  tDecoderClear(&decoder);
1,074✔
8398
  return code;
1,075✔
8399
}
8400

8401
int32_t tSerializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
4,622✔
8402
  SEncoder encoder = {0};
4,622✔
8403
  int32_t  code = 0;
4,622✔
8404
  int32_t  lino;
8405
  int32_t  tlen;
8406
  tEncoderInit(&encoder, buf, bufLen);
4,622✔
8407

8408
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,622!
8409
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
9,244!
8410
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
9,244!
8411
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
9,244!
8412
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
9,244!
8413
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
27,732✔
8414
    SReplica *pReplica = &pReq->replicas[i];
23,110✔
8415
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
23,110!
8416
  }
8417
  for (int32_t i = 0; i < 8; ++i) {
41,598✔
8418
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
73,952!
8419
  }
8420
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
9,244!
8421
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
9,244!
8422
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
50,842✔
8423
    SReplica *pReplica = &pReq->learnerReplicas[i];
46,220✔
8424
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
46,220!
8425
  }
8426
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
9,244!
8427
  tEndEncode(&encoder);
4,622✔
8428

8429
_exit:
4,622✔
8430
  if (code) {
4,622!
8431
    tlen = code;
×
8432
  } else {
8433
    tlen = encoder.pos;
4,622✔
8434
  }
8435
  tEncoderClear(&encoder);
4,622✔
8436
  return tlen;
4,622✔
8437
}
8438

8439
int32_t tDeserializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
8,410✔
8440
  SDecoder decoder = {0};
8,410✔
8441
  int32_t  code = 0;
8,410✔
8442
  int32_t  lino;
8443
  tDecoderInit(&decoder, buf, bufLen);
8,410✔
8444

8445
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8,410!
8446
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
16,820!
8447
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
16,820!
8448
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
16,820!
8449
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
16,820!
8450
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
50,460✔
8451
    SReplica *pReplica = &pReq->replicas[i];
42,050✔
8452
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
42,050!
8453
  }
8454
  for (int32_t i = 0; i < 8; ++i) {
75,690✔
8455
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
134,560!
8456
  }
8457
  if (!tDecodeIsEnd(&decoder)) {
8,410!
8458
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
16,820!
8459
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
16,820!
8460
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
92,510✔
8461
      SReplica *pReplica = &pReq->learnerReplicas[i];
84,100✔
8462
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
84,100!
8463
    }
8464
  }
8465
  if (!tDecodeIsEnd(&decoder)) {
8,410!
8466
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
16,820!
8467
  }
8468

8469
  tEndDecode(&decoder);
8,410✔
8470
_exit:
8,410✔
8471
  tDecoderClear(&decoder);
8,410✔
8472
  return code;
8,410✔
8473
}
8474

8475
int32_t tSerializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
232✔
8476
  SEncoder encoder = {0};
232✔
8477
  int32_t  code = 0;
232✔
8478
  int32_t  lino;
8479
  int32_t  tlen;
8480
  tEncoderInit(&encoder, buf, bufLen);
232✔
8481

8482
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
232!
8483
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
464!
8484
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->disable));
464!
8485

8486
  tEndEncode(&encoder);
232✔
8487

8488
_exit:
232✔
8489
  if (code) {
232!
8490
    tlen = code;
×
8491
  } else {
8492
    tlen = encoder.pos;
232✔
8493
  }
8494
  tEncoderClear(&encoder);
232✔
8495
  return tlen;
232✔
8496
}
8497

8498
int32_t tDeserializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
94✔
8499
  SDecoder decoder = {0};
94✔
8500
  int32_t  code = 0;
94✔
8501
  int32_t  lino;
8502
  tDecoderInit(&decoder, buf, bufLen);
94✔
8503

8504
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
94!
8505
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
188!
8506
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->disable));
188!
8507

8508
  tEndDecode(&decoder);
94✔
8509
_exit:
94✔
8510
  tDecoderClear(&decoder);
94✔
8511
  return code;
94✔
8512
}
8513

8514
int32_t tSerializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
232✔
8515
  SEncoder encoder = {0};
232✔
8516
  int32_t  code = 0;
232✔
8517
  int32_t  lino;
8518
  int32_t  tlen;
8519
  tEncoderInit(&encoder, buf, bufLen);
232✔
8520

8521
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
232!
8522
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->srcVgId));
464!
8523
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
464!
8524
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashBegin));
464!
8525
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashEnd));
464!
8526
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
464!
8527
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
464!
8528

8529
  tEndEncode(&encoder);
232✔
8530

8531
_exit:
232✔
8532
  if (code) {
232!
8533
    tlen = code;
×
8534
  } else {
8535
    tlen = encoder.pos;
232✔
8536
  }
8537
  tEncoderClear(&encoder);
232✔
8538
  return tlen;
232✔
8539
}
8540

8541
int32_t tDeserializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
92✔
8542
  SDecoder decoder = {0};
92✔
8543
  int32_t  code = 0;
92✔
8544
  int32_t  lino;
8545
  tDecoderInit(&decoder, buf, bufLen);
92✔
8546

8547
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
92!
8548
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->srcVgId));
184!
8549
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
184!
8550
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashBegin));
184!
8551
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashEnd));
184!
8552
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
184!
8553
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
184!
8554

8555
  tEndDecode(&decoder);
92✔
8556
_exit:
92✔
8557
  tDecoderClear(&decoder);
92✔
8558
  return code;
92✔
8559
}
8560

8561
int32_t tSerializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
2✔
8562
  SEncoder encoder = {0};
2✔
8563
  int32_t  code = 0;
2✔
8564
  int32_t  lino;
8565
  int32_t  tlen;
8566
  tEncoderInit(&encoder, buf, bufLen);
2✔
8567

8568
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
8569
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->queryStrId));
4!
8570
  tEndEncode(&encoder);
2✔
8571

8572
_exit:
2✔
8573
  if (code) {
2!
8574
    tlen = code;
×
8575
  } else {
8576
    tlen = encoder.pos;
2✔
8577
  }
8578
  tEncoderClear(&encoder);
2✔
8579
  return tlen;
2✔
8580
}
8581

8582
int32_t tDeserializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
1✔
8583
  SDecoder decoder = {0};
1✔
8584
  int32_t  code = 0;
1✔
8585
  int32_t  lino;
8586
  tDecoderInit(&decoder, buf, bufLen);
1✔
8587

8588
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
8589
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->queryStrId));
1!
8590
  tEndDecode(&decoder);
1✔
8591

8592
_exit:
1✔
8593
  tDecoderClear(&decoder);
1✔
8594
  return code;
1✔
8595
}
8596

8597
int32_t tSerializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
4✔
8598
  SEncoder encoder = {0};
4✔
8599
  int32_t  code = 0;
4✔
8600
  int32_t  lino;
8601
  int32_t  tlen;
8602
  tEncoderInit(&encoder, buf, bufLen);
4✔
8603

8604
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
8605
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->connId));
8!
8606
  tEndEncode(&encoder);
4✔
8607

8608
_exit:
4✔
8609
  if (code) {
4!
8610
    tlen = code;
×
8611
  } else {
8612
    tlen = encoder.pos;
4✔
8613
  }
8614
  tEncoderClear(&encoder);
4✔
8615
  return tlen;
4✔
8616
}
8617

8618
int32_t tDeserializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
2✔
8619
  SDecoder decoder = {0};
2✔
8620
  int32_t  code = 0;
2✔
8621
  int32_t  lino;
8622
  tDecoderInit(&decoder, buf, bufLen);
2✔
8623

8624
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8625
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->connId));
4!
8626
  tEndDecode(&decoder);
2✔
8627

8628
_exit:
2✔
8629
  tDecoderClear(&decoder);
2✔
8630
  return code;
2✔
8631
}
8632

8633
int32_t tSerializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
6✔
8634
  SEncoder encoder = {0};
6✔
8635
  int32_t  code = 0;
6✔
8636
  int32_t  lino;
8637
  int32_t  tlen;
8638
  tEncoderInit(&encoder, buf, bufLen);
6✔
8639

8640
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
8641
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->transId));
12!
8642
  tEndEncode(&encoder);
6✔
8643

8644
_exit:
6✔
8645
  if (code) {
6!
8646
    tlen = code;
×
8647
  } else {
8648
    tlen = encoder.pos;
6✔
8649
  }
8650
  tEncoderClear(&encoder);
6✔
8651
  return tlen;
6✔
8652
}
8653

8654
int32_t tDeserializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
3✔
8655
  SDecoder decoder = {0};
3✔
8656
  int32_t  code = 0;
3✔
8657
  int32_t  lino;
8658
  tDecoderInit(&decoder, buf, bufLen);
3✔
8659

8660
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
8661
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->transId));
6!
8662
  tEndDecode(&decoder);
3✔
8663

8664
_exit:
3✔
8665
  tDecoderClear(&decoder);
3✔
8666
  return code;
3✔
8667
}
8668

8669
int32_t tSerializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
44✔
8670
  SEncoder encoder = {0};
44✔
8671
  int32_t  code = 0;
44✔
8672
  int32_t  lino;
8673
  int32_t  tlen;
8674
  tEncoderInit(&encoder, buf, bufLen);
44✔
8675

8676
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
44!
8677
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
88!
8678
  ENCODESQL();
132!
8679
  tEndEncode(&encoder);
44✔
8680

8681
_exit:
44✔
8682
  if (code) {
44!
8683
    tlen = code;
×
8684
  } else {
8685
    tlen = encoder.pos;
44✔
8686
  }
8687
  tEncoderClear(&encoder);
44✔
8688
  return tlen;
44✔
8689
}
8690

8691
int32_t tDeserializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
30✔
8692
  SDecoder decoder = {0};
30✔
8693
  int32_t  code = 0;
30✔
8694
  int32_t  lino;
8695
  tDecoderInit(&decoder, buf, bufLen);
30✔
8696

8697
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
30!
8698
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
60!
8699
  DECODESQL();
90!
8700
  tEndDecode(&decoder);
30✔
8701

8702
_exit:
30✔
8703
  tDecoderClear(&decoder);
30✔
8704
  return code;
30✔
8705
}
8706

8707
void tFreeSBalanceVgroupReq(SBalanceVgroupReq *pReq) { FREESQL(); }
52!
8708

8709
int32_t tSerializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
2✔
8710
  SEncoder encoder = {0};
2✔
8711
  int32_t  code = 0;
2✔
8712
  int32_t  lino;
8713
  int32_t  tlen;
8714
  tEncoderInit(&encoder, buf, bufLen);
2✔
8715

8716
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
8717
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
4!
8718
  ENCODESQL();
6!
8719
  tEndEncode(&encoder);
2✔
8720

8721
_exit:
2✔
8722
  if (code) {
2!
8723
    tlen = code;
×
8724
  } else {
8725
    tlen = encoder.pos;
2✔
8726
  }
8727
  tEncoderClear(&encoder);
2✔
8728
  return tlen;
2✔
8729
}
8730

8731
int32_t tDeserializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
×
8732
  SDecoder decoder = {0};
×
8733
  int32_t  code = 0;
×
8734
  int32_t  lino;
8735
  tDecoderInit(&decoder, buf, bufLen);
×
8736

8737
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8738
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
×
8739
  DECODESQL();
×
8740
  tEndDecode(&decoder);
×
8741

8742
_exit:
×
8743
  tDecoderClear(&decoder);
×
8744
  return code;
×
8745
}
8746

8747
void tFreeSAssignLeaderReq(SAssignLeaderReq *pReq) { FREESQL(); }
1!
8748

8749
int32_t tSerializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
28✔
8750
  SEncoder encoder = {0};
28✔
8751
  int32_t  code = 0;
28✔
8752
  int32_t  lino;
8753
  int32_t  tlen;
8754
  tEncoderInit(&encoder, buf, bufLen);
28✔
8755

8756
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
28!
8757
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
56!
8758
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
56!
8759
  ENCODESQL();
84!
8760
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
56!
8761

8762
  tEndEncode(&encoder);
28✔
8763

8764
_exit:
28✔
8765
  if (code) {
28!
8766
    tlen = code;
×
8767
  } else {
8768
    tlen = encoder.pos;
28✔
8769
  }
8770
  tEncoderClear(&encoder);
28✔
8771
  return tlen;
28✔
8772
}
8773

8774
int32_t tDeserializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
10✔
8775
  SDecoder decoder = {0};
10✔
8776
  int32_t  code = 0;
10✔
8777
  int32_t  lino;
8778
  tDecoderInit(&decoder, buf, bufLen);
10✔
8779

8780
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
8781
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
20!
8782
  if (!tDecodeIsEnd(&decoder)) {
10!
8783
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
20!
8784
  }
8785
  DECODESQL();
30!
8786
  if (!tDecodeIsEnd(&decoder)) {
10!
8787
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
10!
8788
  }
8789

8790
  tEndDecode(&decoder);
10✔
8791

8792
_exit:
10✔
8793
  tDecoderClear(&decoder);
10✔
8794
  return code;
10✔
8795
}
8796

8797
void tFreeSBalanceVgroupLeaderReq(SBalanceVgroupLeaderReq *pReq) { FREESQL(); }
24!
8798

8799
int32_t tSerializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
8✔
8800
  SEncoder encoder = {0};
8✔
8801
  int32_t  code = 0;
8✔
8802
  int32_t  lino;
8803
  int32_t  tlen;
8804
  tEncoderInit(&encoder, buf, bufLen);
8✔
8805

8806
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
8807
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId1));
16!
8808
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId2));
16!
8809
  tEndEncode(&encoder);
8✔
8810

8811
_exit:
8✔
8812
  if (code) {
8!
8813
    tlen = code;
×
8814
  } else {
8815
    tlen = encoder.pos;
8✔
8816
  }
8817
  tEncoderClear(&encoder);
8✔
8818
  return tlen;
8✔
8819
}
8820

8821
int32_t tDeserializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
2✔
8822
  SDecoder decoder = {0};
2✔
8823
  int32_t  code = 0;
2✔
8824
  int32_t  lino;
8825
  tDecoderInit(&decoder, buf, bufLen);
2✔
8826

8827
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8828
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId1));
4!
8829
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId2));
4!
8830
  tEndDecode(&decoder);
2✔
8831

8832
_exit:
2✔
8833
  tDecoderClear(&decoder);
2✔
8834
  return code;
2✔
8835
}
8836

8837
int32_t tSerializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
174✔
8838
  SEncoder encoder = {0};
174✔
8839
  int32_t  code = 0;
174✔
8840
  int32_t  lino;
8841
  int32_t  tlen;
8842
  tEncoderInit(&encoder, buf, bufLen);
174✔
8843

8844
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
174!
8845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
348!
8846
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId1));
348!
8847
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId2));
348!
8848
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId3));
348!
8849
  ENCODESQL();
522!
8850
  tEndEncode(&encoder);
174✔
8851

8852
_exit:
174✔
8853
  if (code) {
174!
8854
    tlen = code;
×
8855
  } else {
8856
    tlen = encoder.pos;
174✔
8857
  }
8858
  tEncoderClear(&encoder);
174✔
8859
  return tlen;
174✔
8860
}
8861

8862
int32_t tDeserializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
148✔
8863
  SDecoder decoder = {0};
148✔
8864
  int32_t  code = 0;
148✔
8865
  int32_t  lino;
8866
  tDecoderInit(&decoder, buf, bufLen);
148✔
8867

8868
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
148!
8869
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
296!
8870
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId1));
296!
8871
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId2));
296!
8872
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId3));
296!
8873
  DECODESQL();
444!
8874
  tEndDecode(&decoder);
148✔
8875

8876
_exit:
148✔
8877
  tDecoderClear(&decoder);
148✔
8878
  return code;
148✔
8879
}
8880

8881
void tFreeSRedistributeVgroupReq(SRedistributeVgroupReq *pReq) { FREESQL(); }
235!
8882

8883
int32_t tSerializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
122✔
8884
  SEncoder encoder = {0};
122✔
8885
  int32_t  code = 0;
122✔
8886
  int32_t  lino;
8887
  int32_t  tlen;
8888
  tEncoderInit(&encoder, buf, bufLen);
122✔
8889

8890
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
122!
8891
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
244!
8892
  tEndEncode(&encoder);
122✔
8893

8894
_exit:
122✔
8895
  if (code) {
122!
8896
    tlen = code;
×
8897
  } else {
8898
    tlen = encoder.pos;
122✔
8899
  }
8900
  tEncoderClear(&encoder);
122✔
8901
  return tlen;
122✔
8902
}
8903

8904
int32_t tDeserializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
65✔
8905
  SDecoder decoder = {0};
65✔
8906
  int32_t  code = 0;
65✔
8907
  int32_t  lino;
8908
  tDecoderInit(&decoder, buf, bufLen);
65✔
8909

8910
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
65!
8911
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
130!
8912
  tEndDecode(&decoder);
65✔
8913

8914
_exit:
65✔
8915
  tDecoderClear(&decoder);
65✔
8916
  return code;
65✔
8917
}
8918

8919
int32_t tSerializeSForceBecomeFollowerReq(void *buf, int32_t bufLen, SForceBecomeFollowerReq *pReq) {
346✔
8920
  SEncoder encoder = {0};
346✔
8921
  int32_t  code = 0;
346✔
8922
  int32_t  lino;
8923
  int32_t  tlen;
8924
  tEncoderInit(&encoder, buf, bufLen);
346✔
8925

8926
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
346!
8927
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
692!
8928
  tEndEncode(&encoder);
346✔
8929

8930
_exit:
346✔
8931
  if (code) {
346!
8932
    tlen = code;
×
8933
  } else {
8934
    tlen = encoder.pos;
346✔
8935
  }
8936
  tEncoderClear(&encoder);
346✔
8937
  return tlen;
346✔
8938
}
8939

8940
int32_t tSerializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
460✔
8941
  SEncoder encoder = {0};
460✔
8942
  int32_t  code = 0;
460✔
8943
  int32_t  lino;
8944
  int32_t  tlen;
8945
  tEncoderInit(&encoder, buf, bufLen);
460✔
8946

8947
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
460!
8948
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
920!
8949
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
2,760✔
8950
    SReplica *pReplica = &pReq->replicas[i];
2,300✔
8951
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
2,300!
8952
  }
8953
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
920!
8954
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
5,060✔
8955
    SReplica *pReplica = &pReq->learnerReplicas[i];
4,600✔
8956
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
4,600!
8957
  }
8958
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastIndex));
920!
8959
  tEndEncode(&encoder);
460✔
8960

8961
_exit:
460✔
8962
  if (code) {
460!
8963
    tlen = code;
×
8964
  } else {
8965
    tlen = encoder.pos;
460✔
8966
  }
8967
  tEncoderClear(&encoder);
460✔
8968
  return tlen;
460✔
8969
}
8970

8971
int32_t tDeserializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
232✔
8972
  SDecoder decoder = {0};
232✔
8973
  int32_t  code = 0;
232✔
8974
  int32_t  lino;
8975
  tDecoderInit(&decoder, buf, bufLen);
232✔
8976

8977
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
232!
8978
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
464!
8979
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
1,392✔
8980
    SReplica *pReplica = &pReq->replicas[i];
1,160✔
8981
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
1,160!
8982
  }
8983
  if (!tDecodeIsEnd(&decoder)) {
232!
8984
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
464!
8985
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
2,552✔
8986
      SReplica *pReplica = &pReq->learnerReplicas[i];
2,320✔
8987
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
2,320!
8988
    }
8989
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastIndex));
464!
8990
  }
8991
  tEndDecode(&decoder);
232✔
8992

8993
_exit:
232✔
8994
  tDecoderClear(&decoder);
232✔
8995
  return code;
232✔
8996
}
8997

8998
int32_t tSerializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
142✔
8999
  SEncoder encoder = {0};
142✔
9000
  int32_t  code = 0;
142✔
9001
  int32_t  lino;
9002
  int32_t  tlen;
9003
  tEncoderInit(&encoder, buf, bufLen);
142✔
9004

9005
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
142!
9006
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
284!
9007
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
284!
9008
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
284!
9009

9010
  int32_t size = taosArrayGetSize(pReq->hbMembers);
142✔
9011
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
142!
9012
  for (int32_t i = 0; i < size; i++) {
350✔
9013
    SVArbHbReqMember *pMember = taosArrayGet(pReq->hbMembers, i);
208✔
9014
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
416!
9015
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
416!
9016
  }
9017

9018
  tEndEncode(&encoder);
142✔
9019

9020
_exit:
142✔
9021
  if (code) {
142!
9022
    tlen = code;
×
9023
  } else {
9024
    tlen = encoder.pos;
142✔
9025
  }
9026
  tEncoderClear(&encoder);
142✔
9027
  return tlen;
142✔
9028
}
9029

9030
int32_t tDeserializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
87✔
9031
  SDecoder decoder = {0};
87✔
9032
  int32_t  code = 0;
87✔
9033
  int32_t  lino;
9034
  tDecoderInit(&decoder, buf, bufLen);
87✔
9035

9036
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
87!
9037
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
174!
9038
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
87!
9039
    TAOS_CHECK_EXIT(terrno);
×
9040
  }
9041
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
87!
9042
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
174!
9043

9044
  if ((pReq->hbMembers = taosArrayInit(16, sizeof(SVArbHbReqMember))) == NULL) {
87!
9045
    TAOS_CHECK_EXIT(terrno);
×
9046
  }
9047
  int32_t size = 0;
87✔
9048
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
87!
9049
  for (int32_t i = 0; i < size; i++) {
207✔
9050
    SVArbHbReqMember member = {0};
120✔
9051
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.vgId));
120!
9052
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.hbSeq));
120!
9053
    if (taosArrayPush(pReq->hbMembers, &member) == NULL) {
240!
9054
      TAOS_CHECK_EXIT(terrno);
×
9055
    }
9056
  }
9057

9058
  tEndDecode(&decoder);
87✔
9059

9060
_exit:
87✔
9061
  tDecoderClear(&decoder);
87✔
9062
  return code;
87✔
9063
}
9064

9065
void tFreeSVArbHeartBeatReq(SVArbHeartBeatReq *pReq) {
87✔
9066
  if (!pReq) return;
87!
9067
  taosMemoryFree(pReq->arbToken);
87!
9068
  taosArrayDestroy(pReq->hbMembers);
87✔
9069
}
9070

9071
int32_t tSerializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
174✔
9072
  SEncoder encoder = {0};
174✔
9073
  int32_t  code = 0;
174✔
9074
  int32_t  lino;
9075
  int32_t  tlen;
9076
  tEncoderInit(&encoder, buf, bufLen);
174✔
9077

9078
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
174!
9079
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
348!
9080
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeId));
348!
9081
  int32_t sz = taosArrayGetSize(pRsp->hbMembers);
174✔
9082
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
174!
9083
  for (int32_t i = 0; i < sz; i++) {
414✔
9084
    SVArbHbRspMember *pMember = taosArrayGet(pRsp->hbMembers, i);
240✔
9085
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
480!
9086
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
480!
9087
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pMember->memberToken));
480!
9088
  }
9089
  tEndEncode(&encoder);
174✔
9090

9091
_exit:
174✔
9092
  if (code) {
174!
9093
    tlen = code;
×
9094
  } else {
9095
    tlen = encoder.pos;
174✔
9096
  }
9097
  tEncoderClear(&encoder);
174✔
9098
  return tlen;
174✔
9099
}
9100

9101
int32_t tDeserializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
71✔
9102
  SDecoder decoder = {0};
71✔
9103
  int32_t  code = 0;
71✔
9104
  int32_t  lino;
9105
  tDecoderInit(&decoder, buf, bufLen);
71✔
9106

9107
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
71!
9108
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
71!
9109
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeId));
142!
9110
  int32_t sz = 0;
71✔
9111
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
71!
9112
  if ((pRsp->hbMembers = taosArrayInit(sz, sizeof(SVArbHbRspMember))) == NULL) {
71!
9113
    TAOS_CHECK_EXIT(terrno);
×
9114
  }
9115
  for (int32_t i = 0; i < sz; i++) {
175✔
9116
    SVArbHbRspMember hbMember = {0};
104✔
9117
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.vgId));
104!
9118
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.hbSeq));
104!
9119
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, hbMember.memberToken));
104!
9120
    if (taosArrayPush(pRsp->hbMembers, &hbMember) == NULL) {
208!
9121
      TAOS_CHECK_EXIT(terrno);
×
9122
    }
9123
  }
9124
  tEndDecode(&decoder);
71✔
9125

9126
_exit:
71✔
9127
  tDecoderClear(&decoder);
71✔
9128
  return code;
71✔
9129
}
9130

9131
void tFreeSVArbHeartBeatRsp(SVArbHeartBeatRsp *pRsp) {
158✔
9132
  if (NULL == pRsp) {
158!
9133
    return;
×
9134
  }
9135
  taosArrayDestroy(pRsp->hbMembers);
158✔
9136
}
9137

9138
int32_t tSerializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
54✔
9139
  SEncoder encoder = {0};
54✔
9140
  int32_t  code = 0;
54✔
9141
  int32_t  lino;
9142
  int32_t  tlen;
9143
  tEncoderInit(&encoder, buf, bufLen);
54✔
9144

9145
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
54!
9146
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
108!
9147
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
108!
9148
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member0Token));
108!
9149
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member1Token));
108!
9150

9151
  tEndEncode(&encoder);
54✔
9152

9153
_exit:
54✔
9154
  if (code) {
54!
9155
    tlen = code;
×
9156
  } else {
9157
    tlen = encoder.pos;
54✔
9158
  }
9159
  tEncoderClear(&encoder);
54✔
9160
  return tlen;
54✔
9161
}
9162

9163
int32_t tDeserializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
45✔
9164
  SDecoder decoder = {0};
45✔
9165
  int32_t  code = 0;
45✔
9166
  int32_t  lino;
9167
  tDecoderInit(&decoder, buf, bufLen);
45✔
9168

9169
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
45!
9170
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
45!
9171
    TAOS_CHECK_EXIT(terrno);
×
9172
  }
9173
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
45!
9174
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
90!
9175
  if ((pReq->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
45!
9176
    TAOS_CHECK_EXIT(terrno);
×
9177
  }
9178
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member0Token));
45!
9179
  if ((pReq->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
45!
9180
    TAOS_CHECK_EXIT(terrno);
×
9181
  }
9182
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member1Token));
45!
9183

9184
  tEndDecode(&decoder);
45✔
9185

9186
_exit:
45✔
9187
  tDecoderClear(&decoder);
45✔
9188
  return code;
45✔
9189
}
9190

9191
void tFreeSVArbCheckSyncReq(SVArbCheckSyncReq *pRsp) {
45✔
9192
  if (NULL == pRsp) {
45!
9193
    return;
×
9194
  }
9195
  taosMemoryFreeClear(pRsp->arbToken);
45!
9196
  taosMemoryFreeClear(pRsp->member0Token);
45!
9197
  taosMemoryFreeClear(pRsp->member1Token);
45!
9198
}
9199

9200
int32_t tSerializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
20✔
9201
  SEncoder encoder = {0};
20✔
9202
  int32_t  code = 0;
20✔
9203
  int32_t  lino;
9204
  int32_t  tlen;
9205
  tEncoderInit(&encoder, buf, bufLen);
20✔
9206

9207
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
9208
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
40!
9209
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member0Token));
40!
9210
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member1Token));
40!
9211
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
40!
9212
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->errCode));
40!
9213

9214
  tEndEncode(&encoder);
20✔
9215

9216
_exit:
20✔
9217
  if (code) {
20!
9218
    tlen = code;
×
9219
  } else {
9220
    tlen = encoder.pos;
20✔
9221
  }
9222
  tEncoderClear(&encoder);
20✔
9223
  return tlen;
20✔
9224
}
9225

9226
int32_t tDeserializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
4✔
9227
  SDecoder decoder = {0};
4✔
9228
  int32_t  code = 0;
4✔
9229
  int32_t  lino;
9230
  tDecoderInit(&decoder, buf, bufLen);
4✔
9231

9232
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
9233
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
4!
9234
    TAOS_CHECK_EXIT(terrno);
×
9235
  }
9236
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
4!
9237
  if ((pRsp->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
4!
9238
    TAOS_CHECK_EXIT(terrno);
×
9239
  }
9240
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member0Token));
4!
9241
  if ((pRsp->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
4!
9242
    TAOS_CHECK_EXIT(terrno);
×
9243
  }
9244
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member1Token));
4!
9245
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
8!
9246
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->errCode));
8!
9247

9248
  tEndDecode(&decoder);
4✔
9249

9250
_exit:
4✔
9251
  tDecoderClear(&decoder);
4✔
9252
  return code;
4✔
9253
}
9254

9255
void tFreeSVArbCheckSyncRsp(SVArbCheckSyncRsp *pRsp) {
4✔
9256
  if (NULL == pRsp) {
4!
9257
    return;
×
9258
  }
9259
  taosMemoryFreeClear(pRsp->arbToken);
4!
9260
  taosMemoryFreeClear(pRsp->member0Token);
4!
9261
  taosMemoryFreeClear(pRsp->member1Token);
4!
9262
}
9263

9264
int32_t tSerializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
9265
  SEncoder encoder = {0};
×
9266
  int32_t  code = 0;
×
9267
  int32_t  lino;
9268
  int32_t  tlen;
9269
  tEncoderInit(&encoder, buf, bufLen);
×
9270

9271
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9272
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
×
9273
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
×
9274
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->memberToken));
×
9275
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
×
9276

9277
  tEndEncode(&encoder);
×
9278

9279
_exit:
×
9280
  if (code) {
×
9281
    tlen = code;
×
9282
  } else {
9283
    tlen = encoder.pos;
×
9284
  }
9285
  tEncoderClear(&encoder);
×
9286
  return tlen;
×
9287
}
9288

9289
int32_t tDeserializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
9290
  SDecoder decoder = {0};
×
9291
  int32_t  code = 0;
×
9292
  int32_t  lino;
9293
  tDecoderInit(&decoder, buf, bufLen);
×
9294

9295
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9296
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
9297
    TAOS_CHECK_EXIT(terrno);
×
9298
  }
9299
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
×
9300
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
×
9301
  if ((pReq->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
9302
    TAOS_CHECK_EXIT(terrno);
×
9303
  }
9304
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->memberToken));
×
9305
  if (!tDecodeIsEnd(&decoder)) {
×
9306
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
×
9307
  }
9308

9309
  tEndDecode(&decoder);
×
9310

9311
_exit:
×
9312
  tDecoderClear(&decoder);
×
9313
  return code;
×
9314
}
9315

9316
void tFreeSVArbSetAssignedLeaderReq(SVArbSetAssignedLeaderReq *pReq) {
×
9317
  if (NULL == pReq) {
×
9318
    return;
×
9319
  }
9320
  taosMemoryFreeClear(pReq->arbToken);
×
9321
  taosMemoryFreeClear(pReq->memberToken);
×
9322
}
9323

9324
int32_t tSerializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
9325
  SEncoder encoder = {0};
×
9326
  int32_t  code = 0;
×
9327
  int32_t  lino;
9328
  int32_t  tlen;
9329
  tEncoderInit(&encoder, buf, bufLen);
×
9330

9331
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9332
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
×
9333
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->memberToken));
×
9334
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
×
9335

9336
  tEndEncode(&encoder);
×
9337

9338
_exit:
×
9339
  if (code) {
×
9340
    tlen = code;
×
9341
  } else {
9342
    tlen = encoder.pos;
×
9343
  }
9344
  tEncoderClear(&encoder);
×
9345
  return tlen;
×
9346
}
9347

9348
int32_t tDeserializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
9349
  SDecoder decoder = {0};
×
9350
  int32_t  code = 0;
×
9351
  int32_t  lino;
9352
  tDecoderInit(&decoder, buf, bufLen);
×
9353

9354
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9355
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
9356
    TAOS_CHECK_EXIT(terrno);
×
9357
  }
9358
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
×
9359
  if ((pRsp->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
9360
    TAOS_CHECK_EXIT(terrno);
×
9361
  }
9362
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->memberToken));
×
9363
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
×
9364

9365
  tEndDecode(&decoder);
×
9366

9367
_exit:
×
9368
  tDecoderClear(&decoder);
×
9369
  return code;
×
9370
}
9371

9372
void tFreeSVArbSetAssignedLeaderRsp(SVArbSetAssignedLeaderRsp *pRsp) {
×
9373
  if (NULL == pRsp) {
×
9374
    return;
×
9375
  }
9376
  taosMemoryFreeClear(pRsp->arbToken);
×
9377
  taosMemoryFreeClear(pRsp->memberToken);
×
9378
}
9379

9380
int32_t tSerializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
28✔
9381
  SEncoder encoder = {0};
28✔
9382
  int32_t  code = 0;
28✔
9383
  int32_t  lino;
9384
  int32_t  tlen;
9385
  tEncoderInit(&encoder, buf, bufLen);
28✔
9386

9387
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
28!
9388

9389
  int32_t sz = taosArrayGetSize(pReq->updateArray);
28✔
9390
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
28!
9391

9392
  for (int32_t i = 0; i < sz; i++) {
64✔
9393
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
36✔
9394
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->vgId));
72!
9395
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->dbUid));
72!
9396
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
108✔
9397
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->members[j].dnodeId));
144!
9398
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->members[j].token));
144!
9399
    }
9400
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->isSync));
72!
9401
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->assignedLeader.dnodeId));
72!
9402
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->assignedLeader.token));
72!
9403
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->version));
72!
9404
  }
9405

9406
  for (int32_t i = 0; i < sz; i++) {
64✔
9407
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
36✔
9408
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->assignedLeader.acked));
72!
9409
  }
9410

9411
  for (int32_t i = 0; i < sz; i++) {
64✔
9412
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
36✔
9413
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->code));
72!
9414
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->updateTimeMs));
72!
9415
  }
9416

9417
  tEndEncode(&encoder);
28✔
9418

9419
_exit:
28✔
9420
  if (code) {
28!
9421
    tlen = code;
×
9422
  } else {
9423
    tlen = encoder.pos;
28✔
9424
  }
9425
  tEncoderClear(&encoder);
28✔
9426
  return tlen;
28✔
9427
}
9428

9429
int32_t tDeserializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
14✔
9430
  SDecoder decoder = {0};
14✔
9431
  int32_t  code = 0;
14✔
9432
  int32_t  lino;
9433
  tDecoderInit(&decoder, buf, bufLen);
14✔
9434

9435
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
14!
9436
  int32_t sz = 0;
14✔
9437
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
14!
9438

9439
  SArray *updateArray = taosArrayInit(sz, sizeof(SMArbUpdateGroup));
14✔
9440
  if (!updateArray) {
14!
9441
    TAOS_CHECK_EXIT(terrno);
×
9442
  }
9443

9444
  for (int32_t i = 0; i < sz; i++) {
32✔
9445
    SMArbUpdateGroup group = {0};
18✔
9446
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.vgId));
18!
9447
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.dbUid));
18!
9448
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
54✔
9449
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.members[j].dnodeId));
72!
9450
      if ((group.members[j].token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
36!
9451
        TAOS_CHECK_EXIT(terrno);
×
9452
      }
9453
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.members[j].token));
36!
9454
    }
9455
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &group.isSync));
18!
9456
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.assignedLeader.dnodeId));
18!
9457
    if ((group.assignedLeader.token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
18!
9458
      TAOS_CHECK_EXIT(terrno);
×
9459
    }
9460
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.assignedLeader.token));
18!
9461
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.version));
18!
9462
    group.assignedLeader.acked = false;
18✔
9463

9464
    if (taosArrayPush(updateArray, &group) == NULL) {
18!
9465
      TAOS_CHECK_EXIT(terrno);
×
9466
    }
9467
  }
9468

9469
  if (!tDecodeIsEnd(&decoder)) {
14!
9470
    for (int32_t i = 0; i < sz; i++) {
32✔
9471
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
18✔
9472
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pGroup->assignedLeader.acked));
36!
9473
    }
9474
  }
9475

9476
  if (!tDecodeIsEnd(&decoder)) {
14!
9477
    for (int32_t i = 0; i < sz; i++) {
32✔
9478
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
18✔
9479
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pGroup->code));
36!
9480
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pGroup->updateTimeMs));
36!
9481
    }
9482
  }
9483

9484
  pReq->updateArray = updateArray;
14✔
9485

9486
  tEndDecode(&decoder);
14✔
9487

9488
_exit:
14✔
9489
  tDecoderClear(&decoder);
14✔
9490
  return code;
14✔
9491
}
9492

9493
void tFreeSMArbUpdateGroupBatchReq(SMArbUpdateGroupBatchReq *pReq) {
14✔
9494
  if (NULL == pReq || NULL == pReq->updateArray) {
14!
9495
    return;
×
9496
  }
9497

9498
  int32_t sz = taosArrayGetSize(pReq->updateArray);
14✔
9499
  for (int32_t i = 0; i < sz; i++) {
32✔
9500
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
18✔
9501
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
54✔
9502
      taosMemoryFreeClear(pGroup->members[j].token);
36!
9503
    }
9504
    taosMemoryFreeClear(pGroup->assignedLeader.token);
18!
9505
  }
9506
  taosArrayDestroy(pReq->updateArray);
14✔
9507
}
9508

9509
int32_t tSerializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
6✔
9510
  SEncoder encoder = {0};
6✔
9511
  int32_t  code = 0;
6✔
9512
  int32_t  lino;
9513
  int32_t  tlen;
9514
  tEncoderInit(&encoder, buf, bufLen);
6✔
9515

9516
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
9517
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusCode));
12!
9518
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->details));
12!
9519

9520
  tEndEncode(&encoder);
6✔
9521

9522
_exit:
6✔
9523
  if (code) {
6!
9524
    tlen = code;
×
9525
  } else {
9526
    tlen = encoder.pos;
6✔
9527
  }
9528
  tEncoderClear(&encoder);
6✔
9529
  return tlen;
6✔
9530
}
9531

9532
int32_t tDeserializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
4✔
9533
  SDecoder decoder = {0};
4✔
9534
  int32_t  code = 0;
4✔
9535
  int32_t  lino;
9536
  tDecoderInit(&decoder, buf, bufLen);
4✔
9537

9538
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
9539
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusCode));
8!
9540
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->details));
4!
9541

9542
  tEndDecode(&decoder);
4✔
9543
_exit:
4✔
9544
  tDecoderClear(&decoder);
4✔
9545
  return code;
4✔
9546
}
9547

9548
int32_t tSerializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
1,156,042✔
9549
  SEncoder encoder = {0};
1,156,042✔
9550
  int32_t  code = 0;
1,156,042✔
9551
  int32_t  lino;
9552
  int32_t  tlen;
9553
  tEncoderInit(&encoder, buf, bufLen);
1,156,042✔
9554

9555
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,156,327!
9556
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfPlans));
2,312,678!
9557
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
3,880,422✔
9558
    SExplainExecInfo *info = &pRsp->subplanInfo[i];
2,724,083✔
9559
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->startupCost));
5,448,166!
9560
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->totalCost));
5,448,166!
9561
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, info->numOfRows));
5,448,166!
9562
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, info->verboseLen));
5,448,166!
9563
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, info->verboseInfo, info->verboseLen));
5,448,166!
9564
  }
9565

9566
  tEndEncode(&encoder);
1,156,339✔
9567

9568
_exit:
1,156,350✔
9569
  if (code) {
1,156,350!
9570
    tlen = code;
×
9571
  } else {
9572
    tlen = encoder.pos;
1,156,350✔
9573
  }
9574
  tEncoderClear(&encoder);
1,156,350✔
9575
  return tlen;
1,156,373✔
9576
}
9577

9578
int32_t tDeserializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
23,097✔
9579
  SDecoder decoder = {0};
23,097✔
9580
  int32_t  code = 0;
23,097✔
9581
  int32_t  lino;
9582
  tDecoderInit(&decoder, buf, bufLen);
23,097✔
9583

9584
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
23,097✔
9585
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfPlans));
46,176!
9586
  if (pRsp->numOfPlans > 0) {
23,088!
9587
    pRsp->subplanInfo = taosMemoryCalloc(pRsp->numOfPlans, sizeof(SExplainExecInfo));
23,088!
9588
    if (pRsp->subplanInfo == NULL) {
23,088!
9589
      TAOS_CHECK_EXIT(terrno);
×
9590
    }
9591
  }
9592
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
72,440✔
9593
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].startupCost));
98,708!
9594
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].totalCost));
98,707!
9595
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->subplanInfo[i].numOfRows));
98,708!
9596
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->subplanInfo[i].verboseLen));
98,708!
9597
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &pRsp->subplanInfo[i].verboseInfo, NULL));
98,706!
9598
  }
9599

9600
  tEndDecode(&decoder);
23,085✔
9601

9602
_exit:
23,098✔
9603
  tDecoderClear(&decoder);
23,098✔
9604
  return code;
23,098✔
9605
}
9606

9607
void tFreeSExplainRsp(SExplainRsp *pRsp) {
24,274✔
9608
  if (NULL == pRsp) {
24,274!
9609
    return;
×
9610
  }
9611

9612
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
74,793✔
9613
    SExplainExecInfo *pExec = pRsp->subplanInfo + i;
50,519✔
9614
    taosMemoryFree(pExec->verboseInfo);
50,519!
9615
  }
9616

9617
  taosMemoryFreeClear(pRsp->subplanInfo);
24,274!
9618
}
9619

9620
int32_t tSerializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
423,102✔
9621
  int32_t code = 0;
423,102✔
9622
  int32_t lino;
9623
  int32_t headLen = sizeof(SMsgHead);
423,102✔
9624
  if (buf != NULL) {
423,102✔
9625
    buf = (char *)buf + headLen;
211,564✔
9626
    bufLen -= headLen;
211,564✔
9627
  }
9628

9629
  SEncoder encoder = {0};
423,102✔
9630
  tEncoderInit(&encoder, buf, bufLen);
423,102✔
9631
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
423,123!
9632

9633
  int32_t num = taosArrayGetSize(pReq->pMsgs);
423,127✔
9634
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
423,125!
9635
  for (int32_t i = 0; i < num; ++i) {
1,262,962✔
9636
    SBatchMsg *pMsg = taosArrayGet(pReq->pMsgs, i);
839,845✔
9637
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
1,679,674!
9638
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgType));
1,679,674!
9639
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
1,679,674!
9640
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
1,679,674!
9641
  }
9642

9643
  tEndEncode(&encoder);
423,117✔
9644

9645
_exit:
423,128✔
9646
  if (code) {
423,128!
9647
    tEncoderClear(&encoder);
×
9648
    return code;
×
9649
  } else {
9650
    int32_t tlen = encoder.pos;
423,128✔
9651
    tEncoderClear(&encoder);
423,128✔
9652

9653
    if (buf != NULL) {
423,129✔
9654
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
211,573✔
9655
      pHead->vgId = htonl(pReq->header.vgId);
211,573✔
9656
      pHead->contLen = htonl(tlen + headLen);
211,573✔
9657
    }
9658

9659
    return tlen + headLen;
423,129✔
9660
  }
9661
}
9662

9663
int32_t tDeserializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
3,055,076✔
9664
  int32_t   headLen = sizeof(SMsgHead);
3,055,076✔
9665
  int32_t   code = 0;
3,055,076✔
9666
  int32_t   lino;
9667
  SMsgHead *pHead = buf;
3,055,076✔
9668
  pHead->vgId = pReq->header.vgId;
3,055,076✔
9669
  pHead->contLen = pReq->header.contLen;
3,055,076✔
9670

9671
  SDecoder decoder = {0};
3,055,076✔
9672
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
3,055,076✔
9673

9674
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,054,035!
9675

9676
  int32_t num = 0;
3,056,040✔
9677
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
3,055,574!
9678
  if (num <= 0) {
3,055,574!
9679
    pReq->pMsgs = NULL;
×
9680
    tEndDecode(&decoder);
×
9681
    tDecoderClear(&decoder);
×
9682
    return 0;
96✔
9683
  }
9684

9685
  pReq->pMsgs = taosArrayInit(num, sizeof(SBatchMsg));
3,055,574✔
9686
  if (NULL == pReq->pMsgs) {
3,055,098!
9687
    TAOS_CHECK_EXIT(terrno);
×
9688
  }
9689
  for (int32_t i = 0; i < num; ++i) {
12,401,303✔
9690
    SBatchMsg msg = {0};
9,347,001✔
9691
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
9,347,428!
9692
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgType));
9,347,323!
9693
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
9,347,325!
9694
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
9,346,811!
9695
    if (NULL == taosArrayPush(pReq->pMsgs, &msg)) {
18,692,989!
9696
      TAOS_CHECK_EXIT(terrno);
×
9697
    }
9698
  }
9699

9700
  tEndDecode(&decoder);
3,054,302✔
9701

9702
_exit:
3,055,172✔
9703
  tDecoderClear(&decoder);
3,055,172✔
9704
  return code;
3,055,667✔
9705
}
9706

9707
int32_t tSerializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
6,111,466✔
9708
  SEncoder encoder = {0};
6,111,466✔
9709
  int32_t  code = 0;
6,111,466✔
9710
  int32_t  lino;
9711
  int32_t  tlen;
9712
  tEncoderInit(&encoder, buf, bufLen);
6,111,466✔
9713
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,111,438!
9714

9715
  int32_t num = taosArrayGetSize(pRsp->pRsps);
6,111,604✔
9716
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
6,108,782!
9717
  for (int32_t i = 0; i < num; ++i) {
24,779,299✔
9718
    SBatchRspMsg *pMsg = taosArrayGet(pRsp->pRsps, i);
18,691,045✔
9719
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->reqType));
37,341,034!
9720
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
37,341,034!
9721
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
37,341,034!
9722
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->rspCode));
37,341,034!
9723
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
37,341,034!
9724
  }
9725

9726
  tEndEncode(&encoder);
6,088,254✔
9727

9728
_exit:
6,112,024✔
9729
  if (code) {
6,112,024!
9730
    tlen = code;
×
9731
  } else {
9732
    tlen = encoder.pos;
6,112,024✔
9733
  }
9734
  tEncoderClear(&encoder);
6,112,024✔
9735
  return tlen;
6,111,974✔
9736
}
9737

9738
int32_t tDeserializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
210,923✔
9739
  SDecoder decoder = {0};
210,923✔
9740
  int32_t  code = 0;
210,923✔
9741
  int32_t  lino;
9742
  tDecoderInit(&decoder, (char *)buf, bufLen);
210,923✔
9743

9744
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
210,924!
9745

9746
  int32_t num = 0;
210,930✔
9747
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
210,928!
9748
  if (num <= 0) {
210,928!
9749
    pRsp->pRsps = NULL;
×
9750
    tEndDecode(&decoder);
×
9751

9752
    tDecoderClear(&decoder);
×
9753
    return 0;
1✔
9754
  }
9755

9756
  pRsp->pRsps = taosArrayInit(num, sizeof(SBatchRspMsg));
210,928✔
9757
  if (NULL == pRsp->pRsps) {
210,929!
9758
    TAOS_CHECK_EXIT(terrno);
×
9759
  }
9760
  for (int32_t i = 0; i < num; ++i) {
630,147✔
9761
    SBatchRspMsg msg = {0};
419,213✔
9762
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.reqType));
419,214!
9763
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
419,216!
9764
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
419,214!
9765
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.rspCode));
419,214!
9766
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
419,213!
9767
    if (NULL == taosArrayPush(pRsp->pRsps, &msg)) {
838,431!
9768
      TAOS_CHECK_EXIT(terrno);
×
9769
    }
9770
  }
9771

9772
  tEndDecode(&decoder);
210,934✔
9773

9774
_exit:
210,929✔
9775
  tDecoderClear(&decoder);
210,929✔
9776
  return code;
210,927✔
9777
}
9778

9779
int32_t tSerializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
22,204✔
9780
  SEncoder encoder = {0};
22,204✔
9781
  int32_t  code = 0;
22,204✔
9782
  int32_t  lino;
9783
  int32_t  tlen;
9784
  tEncoderInit(&encoder, buf, bufLen);
22,204✔
9785

9786
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
22,204!
9787
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
44,408!
9788
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
44,408!
9789
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
44,408!
9790

9791
  tEndEncode(&encoder);
22,204✔
9792

9793
_exit:
22,204✔
9794
  if (code) {
22,204!
9795
    tlen = code;
×
9796
  } else {
9797
    tlen = encoder.pos;
22,204✔
9798
  }
9799
  tEncoderClear(&encoder);
22,204✔
9800
  return tlen;
22,204✔
9801
}
9802

9803
int32_t tDeserializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
12,331✔
9804
  SDecoder decoder = {0};
12,331✔
9805
  int32_t  code = 0;
12,331✔
9806
  int32_t  lino;
9807
  tDecoderInit(&decoder, (char *)buf, bufLen);
12,331✔
9808

9809
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12,331!
9810

9811
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
24,662!
9812
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
24,662!
9813
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
12,331!
9814

9815
  tEndDecode(&decoder);
12,331✔
9816

9817
_exit:
12,331✔
9818
  tDecoderClear(&decoder);
12,331✔
9819
  return code;
12,331✔
9820
}
9821

9822
void tDestroySMqHbRsp(SMqHbRsp *pRsp) { taosArrayDestroy(pRsp->topicPrivileges); }
5,544✔
9823

9824
int32_t tSerializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
5,772✔
9825
  SEncoder encoder = {0};
5,772✔
9826
  int32_t  code = 0;
5,772✔
9827
  int32_t  lino;
9828
  int32_t  tlen;
9829
  tEncoderInit(&encoder, buf, bufLen);
5,772✔
9830
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,772!
9831

9832
  int32_t sz = taosArrayGetSize(pRsp->topicPrivileges);
5,772✔
9833
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
5,772!
9834
  for (int32_t i = 0; i < sz; ++i) {
11,050✔
9835
    STopicPrivilege *privilege = (STopicPrivilege *)taosArrayGet(pRsp->topicPrivileges, i);
5,278✔
9836
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, privilege->topic));
10,556!
9837
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, privilege->noPrivilege));
10,556!
9838
  }
9839

9840
  if (tEncodeI32(&encoder, pRsp->debugFlag) < 0) return -1;
11,544!
9841
  tEndEncode(&encoder);
5,772✔
9842

9843
_exit:
5,772✔
9844
  if (code) {
5,772!
9845
    tlen = code;
×
9846
  } else {
9847
    tlen = encoder.pos;
5,772✔
9848
  }
9849
  tEncoderClear(&encoder);
5,772✔
9850
  return tlen;
5,772✔
9851
}
9852

9853
int32_t tDeserializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
2,645✔
9854
  SDecoder decoder = {0};
2,645✔
9855
  int32_t  code = 0;
2,645✔
9856
  int32_t  lino;
9857
  tDecoderInit(&decoder, (char *)buf, bufLen);
2,645✔
9858

9859
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,645!
9860

9861
  int32_t sz = 0;
2,645✔
9862
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
2,645!
9863
  if (sz > 0) {
2,645✔
9864
    pRsp->topicPrivileges = taosArrayInit(sz, sizeof(STopicPrivilege));
2,196✔
9865
    if (NULL == pRsp->topicPrivileges) {
2,196!
9866
      TAOS_CHECK_EXIT(terrno);
×
9867
    }
9868
    for (int32_t i = 0; i < sz; ++i) {
4,591✔
9869
      STopicPrivilege *data = taosArrayReserve(pRsp->topicPrivileges, 1);
2,395✔
9870
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topic));
2,395!
9871
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &data->noPrivilege));
4,790!
9872
    }
9873
  }
9874

9875
  if (!tDecodeIsEnd(&decoder)) {
2,645!
9876
    if (tDecodeI32(&decoder, &pRsp->debugFlag) < 0) return -1;
5,290!
9877
  }
9878
  tEndDecode(&decoder);
2,645✔
9879

9880
_exit:
2,645✔
9881
  tDecoderClear(&decoder);
2,645✔
9882
  return code;
2,645✔
9883
}
9884

9885
void tDestroySMqHbReq(SMqHbReq *pReq) {
5,565✔
9886
  for (int i = 0; i < taosArrayGetSize(pReq->topics); i++) {
10,721✔
9887
    TopicOffsetRows *vgs = taosArrayGet(pReq->topics, i);
5,156✔
9888
    if (vgs) taosArrayDestroy(vgs->offsetRows);
5,156!
9889
  }
9890
  taosArrayDestroy(pReq->topics);
5,565✔
9891
}
5,565✔
9892

9893
int32_t tSerializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
5,332✔
9894
  SEncoder encoder = {0};
5,332✔
9895
  int32_t  code = 0;
5,332✔
9896
  int32_t  lino;
9897
  int32_t  tlen;
9898
  tEncoderInit(&encoder, buf, bufLen);
5,332✔
9899
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,332!
9900

9901
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
10,664!
9902
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
10,664!
9903

9904
  int32_t sz = taosArrayGetSize(pReq->topics);
5,332✔
9905
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
5,332!
9906
  for (int32_t i = 0; i < sz; ++i) {
10,298✔
9907
    TopicOffsetRows *vgs = (TopicOffsetRows *)taosArrayGet(pReq->topics, i);
4,966✔
9908
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, vgs->topicName));
9,932!
9909
    int32_t szVgs = taosArrayGetSize(vgs->offsetRows);
4,966✔
9910
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, szVgs));
4,966!
9911
    for (int32_t j = 0; j < szVgs; ++j) {
17,076✔
9912
      OffsetRows *offRows = taosArrayGet(vgs->offsetRows, j);
12,110✔
9913
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, offRows->vgId));
24,220!
9914
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->rows));
24,220!
9915
      TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &offRows->offset));
12,110!
9916
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->ever));
24,220!
9917
    }
9918
  }
9919

9920
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->pollFlag));
10,664!
9921
  tEndEncode(&encoder);
5,332✔
9922

9923
_exit:
5,332✔
9924
  if (code) {
5,332!
9925
    tlen = code;
×
9926
  } else {
9927
    tlen = encoder.pos;
5,332✔
9928
  }
9929
  tEncoderClear(&encoder);
5,332✔
9930
  return tlen;
5,332✔
9931
}
9932

9933
int32_t tDeserializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
2,899✔
9934
  int32_t  code = 0;
2,899✔
9935
  int32_t  lino;
9936
  SDecoder decoder = {0};
2,899✔
9937
  tDecoderInit(&decoder, (char *)buf, bufLen);
2,899✔
9938

9939
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,899!
9940

9941
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
5,798!
9942
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
5,798!
9943
  int32_t sz = 0;
2,899✔
9944
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
2,899!
9945
  if (sz > 0) {
2,899✔
9946
    pReq->topics = taosArrayInit(sz, sizeof(TopicOffsetRows));
2,461✔
9947
    if (NULL == pReq->topics) {
2,461!
9948
      TAOS_CHECK_EXIT(terrno);
×
9949
    }
9950
    for (int32_t i = 0; i < sz; ++i) {
5,134✔
9951
      TopicOffsetRows *data = taosArrayReserve(pReq->topics, 1);
2,673✔
9952
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topicName));
2,673!
9953
      int32_t szVgs = 0;
2,673✔
9954
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &szVgs));
2,673!
9955
      if (szVgs > 0) {
2,673✔
9956
        data->offsetRows = taosArrayInit(szVgs, sizeof(OffsetRows));
2,641✔
9957
        if (NULL == data->offsetRows) {
2,641!
9958
          TAOS_CHECK_EXIT(terrno);
×
9959
        }
9960
        for (int32_t j = 0; j < szVgs; ++j) {
8,788✔
9961
          OffsetRows *offRows = taosArrayReserve(data->offsetRows, 1);
6,147✔
9962
          TAOS_CHECK_EXIT(tDecodeI32(&decoder, &offRows->vgId));
12,294!
9963
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->rows));
12,294!
9964
          TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &offRows->offset));
6,147!
9965
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->ever));
12,294!
9966
        }
9967
      }
9968
    }
9969
  }
9970
  if (!tDecodeIsEnd(&decoder)) {
2,899!
9971
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->pollFlag));
5,798!
9972
  }
9973
  tEndDecode(&decoder);
2,899✔
9974

9975
_exit:
2,899✔
9976
  tDecoderClear(&decoder);
2,899✔
9977
  return code;
2,899✔
9978
}
9979

9980
int32_t tSerializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
20✔
9981
  int32_t code = 0;
20✔
9982
  int32_t lino;
9983
  int32_t headLen = sizeof(SMsgHead);
20✔
9984
  if (buf != NULL) {
20✔
9985
    buf = (char *)buf + headLen;
10✔
9986
    bufLen -= headLen;
10✔
9987
  }
9988
  SEncoder encoder = {0};
20✔
9989
  tEncoderInit(&encoder, buf, bufLen);
20✔
9990
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
9991
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
40!
9992
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
40!
9993
  tEndEncode(&encoder);
20✔
9994

9995
_exit:
20✔
9996
  if (code) {
20!
9997
    tEncoderClear(&encoder);
×
9998
    return code;
×
9999
  } else {
10000
    int32_t tlen = encoder.pos;
20✔
10001
    tEncoderClear(&encoder);
20✔
10002

10003
    if (buf != NULL) {
20✔
10004
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
10✔
10005
      pHead->vgId = htonl(pReq->head.vgId);
10✔
10006
      pHead->contLen = htonl(tlen + headLen);
10✔
10007
    }
10008

10009
    return tlen + headLen;
20✔
10010
  }
10011
}
10012

10013
int32_t tDeserializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
28✔
10014
  int32_t  code = 0;
28✔
10015
  int32_t  lino;
10016
  int32_t  headLen = sizeof(SMsgHead);
28✔
10017
  SDecoder decoder = {0};
28✔
10018
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
28✔
10019

10020
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
28!
10021
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
56!
10022
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
28!
10023

10024
  tEndDecode(&decoder);
28✔
10025

10026
_exit:
28✔
10027
  tDecoderClear(&decoder);
28✔
10028
  return code;
28✔
10029
}
10030

10031
int32_t tSerializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
3,909,798✔
10032
  int32_t code = 0;
3,909,798✔
10033
  int32_t lino;
10034
  int32_t headLen = sizeof(SMsgHead);
3,909,798✔
10035
  if (buf != NULL) {
3,909,798✔
10036
    buf = (char *)buf + headLen;
1,956,010✔
10037
    bufLen -= headLen;
1,956,010✔
10038
  }
10039

10040
  SEncoder encoder = {0};
3,909,798✔
10041
  tEncoderInit(&encoder, buf, bufLen);
3,909,798✔
10042
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,911,014!
10043

10044
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
7,825,010!
10045
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
7,825,010!
10046
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
7,825,010!
10047
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
7,825,010!
10048
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
7,825,010!
10049
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->msgMask));
7,825,010!
10050
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->taskType));
7,825,010!
10051
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->explain));
7,825,010!
10052
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->needFetch));
7,825,010!
10053
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compress));
7,825,010!
10054
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
7,825,010!
10055
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->sql, pReq->sqlLen));
7,825,010!
10056
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->msgLen));
7,825,010!
10057
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (uint8_t *)pReq->msg, pReq->msgLen));
7,825,010!
10058
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
7,825,010!
10059

10060
  tEndEncode(&encoder);
3,912,505✔
10061

10062
_exit:
3,911,457✔
10063
  if (code) {
3,911,457!
10064
    tEncoderClear(&encoder);
×
10065
    return code;
×
10066
  } else {
10067
    int32_t tlen = encoder.pos;
3,911,457✔
10068
    tEncoderClear(&encoder);
3,911,457✔
10069

10070
    if (buf != NULL) {
3,911,617✔
10071
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
1,956,747✔
10072
      pHead->vgId = htonl(pReq->header.vgId);
1,956,747✔
10073
      pHead->contLen = htonl(tlen + headLen);
1,956,747✔
10074
    }
10075

10076
    return tlen + headLen;
3,911,617✔
10077
  }
10078
}
10079

10080
int32_t tDeserializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
16,961,311✔
10081
  int32_t   code = 0;
16,961,311✔
10082
  int32_t   lino;
10083
  int32_t   headLen = sizeof(SMsgHead);
16,961,311✔
10084
  SMsgHead *pHead = buf;
16,961,311✔
10085
  pHead->vgId = pReq->header.vgId;
16,961,311✔
10086
  pHead->contLen = pReq->header.contLen;
16,961,311✔
10087

10088
  SDecoder decoder = {0};
16,961,311✔
10089
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
16,961,311✔
10090

10091
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16,953,108!
10092

10093
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
33,950,427!
10094
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
33,940,095!
10095
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
33,930,028!
10096
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
33,925,917!
10097
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
33,922,942!
10098
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->msgMask));
33,919,262!
10099
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->taskType));
33,918,684!
10100
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->explain));
33,919,987!
10101
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->needFetch));
33,921,859!
10102
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compress));
33,922,428!
10103
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
33,917,539!
10104
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
33,936,130!
10105
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->msgLen));
33,941,314!
10106
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, NULL));
33,941,765!
10107
  if (!tDecodeIsEnd(&decoder)) {
16,980,704✔
10108
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
33,922,010!
10109
  } else {
10110
    pReq->clientId = 0;
24,650✔
10111
  }
10112

10113
  tEndDecode(&decoder);
16,990,606✔
10114

10115
_exit:
16,966,035✔
10116
  tDecoderClear(&decoder);
16,966,035✔
10117
  return code;
16,975,372✔
10118
}
10119

10120
void tFreeSSubQueryMsg(SSubQueryMsg *pReq) {
16,967,240✔
10121
  if (NULL == pReq) {
16,967,240!
10122
    return;
×
10123
  }
10124

10125
  taosMemoryFreeClear(pReq->sql);
16,967,240!
10126
  taosMemoryFreeClear(pReq->msg);
16,967,378!
10127
}
10128

10129
int32_t tSerializeSOperatorParam(SEncoder *pEncoder, SOperatorParam *pOpParam) {
3,050✔
10130
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->opType));
6,100!
10131
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->downstreamIdx));
6,100!
10132
  switch (pOpParam->opType) {
3,050!
10133
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
3,050✔
10134
      STableScanOperatorParam *pScan = (STableScanOperatorParam *)pOpParam->value;
3,050✔
10135
      TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pScan->tableSeq));
6,100!
10136
      int32_t uidNum = taosArrayGetSize(pScan->pUidList);
3,050✔
10137
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, uidNum));
3,050!
10138
      for (int32_t m = 0; m < uidNum; ++m) {
142,210✔
10139
        int64_t *pUid = taosArrayGet(pScan->pUidList, m);
139,160✔
10140
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, *pUid));
278,320!
10141
      }
10142
      if (pScan->pOrgTbInfo) {
3,050✔
10143
        TAOS_CHECK_RETURN(tEncodeBool(pEncoder, true));
456!
10144
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pScan->pOrgTbInfo->vgId));
912!
10145
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pScan->pOrgTbInfo->tbName));
912!
10146
        int32_t num = taosArrayGetSize(pScan->pOrgTbInfo->colMap);
456✔
10147
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
456!
10148
        for (int32_t i = 0; i < num; ++i) {
2,304✔
10149
          SColIdNameKV *pColKV = taosArrayGet(pScan->pOrgTbInfo->colMap, i);
1,848✔
10150
          TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pColKV->colId));
3,696!
10151
          TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pColKV->colName));
3,696!
10152
        }
10153
      } else {
10154
        TAOS_CHECK_RETURN(tEncodeBool(pEncoder, false));
2,594!
10155
      }
10156
      TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pScan->window.skey));
6,100!
10157
      TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pScan->window.ekey));
6,100!
10158
      break;
3,050✔
10159
    }
10160
    default:
×
10161
      return TSDB_CODE_INVALID_PARA;
×
10162
  }
10163

10164
  int32_t n = taosArrayGetSize(pOpParam->pChildren);
3,050✔
10165
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, n));
3,050!
10166
  for (int32_t i = 0; i < n; ++i) {
3,050!
10167
    SOperatorParam *pChild = *(SOperatorParam **)taosArrayGet(pOpParam->pChildren, i);
×
10168
    TAOS_CHECK_RETURN(tSerializeSOperatorParam(pEncoder, pChild));
×
10169
  }
10170

10171
  TAOS_CHECK_RETURN(tEncodeBool(pEncoder, pOpParam->reUse));
3,050!
10172
  return 0;
3,050✔
10173
}
10174

10175
int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam *pOpParam) {
1,524✔
10176
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->opType));
3,048!
10177
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->downstreamIdx));
3,049!
10178
  switch (pOpParam->opType) {
1,525!
10179
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
1,525✔
10180
      pOpParam->value = taosMemoryMalloc(sizeof(STableScanOperatorParam));
1,525!
10181
      if (NULL == pOpParam->value) {
1,525!
10182
        TAOS_CHECK_RETURN(terrno);
×
10183
      }
10184
      STableScanOperatorParam *pScan = pOpParam->value;
1,525✔
10185
      TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&pScan->tableSeq));
3,050!
10186
      int32_t uidNum = 0;
1,525✔
10187
      int64_t uid = 0;
1,525✔
10188
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &uidNum));
1,525!
10189
      if (uidNum > 0) {
1,525✔
10190
        pScan->pUidList = taosArrayInit(uidNum, sizeof(int64_t));
1,297✔
10191
        if (NULL == pScan->pUidList) {
1,297!
10192
          TAOS_CHECK_RETURN(terrno);
×
10193
        }
10194

10195
        for (int32_t m = 0; m < uidNum; ++m) {
67,388✔
10196
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &uid));
66,038!
10197
          if (taosArrayPush(pScan->pUidList, &uid) == NULL) {
132,129!
10198
            TAOS_CHECK_RETURN(terrno);
×
10199
          }
10200
        }
10201
      } else {
10202
        pScan->pUidList = NULL;
228✔
10203
      }
10204

10205
      bool hasTbInfo = false;
1,526✔
10206
      TAOS_CHECK_RETURN(tDecodeBool(pDecoder, &hasTbInfo));
1,526!
10207
      if (hasTbInfo) {
1,525✔
10208
        pScan->pOrgTbInfo = taosMemoryMalloc(sizeof(SOrgTbInfo));
228!
10209
        if (NULL == pScan->pOrgTbInfo) {
228!
10210
          TAOS_CHECK_RETURN(terrno);
×
10211
        }
10212
        TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pScan->pOrgTbInfo->vgId));
456!
10213
        TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pScan->pOrgTbInfo->tbName));
228!
10214
        int32_t num = 0;
228✔
10215
        TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &num));
228!
10216
        pScan->pOrgTbInfo->colMap = taosArrayInit(num, sizeof(SColIdNameKV));
228✔
10217
        for (int32_t i = 0; i < num; ++i) {
1,152✔
10218
          SColIdNameKV pColKV;
10219
          TAOS_CHECK_RETURN(tDecodeI16(pDecoder, (int16_t *)&(pColKV.colId)));
924!
10220
          TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pColKV.colName));
924!
10221
          if (taosArrayPush(pScan->pOrgTbInfo->colMap, &pColKV) == NULL) {
1,848!
10222
            TAOS_CHECK_RETURN(terrno);
×
10223
          }
10224
        }
10225
      } else {
10226
        pScan->pOrgTbInfo = NULL;
1,297✔
10227
      }
10228
      TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pScan->window.skey));
3,050!
10229
      TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pScan->window.ekey));
3,050!
10230
      break;
1,525✔
10231
    }
10232
    default:
×
10233
      return TSDB_CODE_INVALID_PARA;
×
10234
  }
10235

10236
  int32_t childrenNum = 0;
1,525✔
10237
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &childrenNum));
1,525!
10238

10239
  if (childrenNum > 0) {
1,525!
10240
    pOpParam->pChildren = taosArrayInit(childrenNum, POINTER_BYTES);
×
10241
    if (NULL == pOpParam->pChildren) {
×
10242
      TAOS_CHECK_RETURN(terrno);
×
10243
    }
10244
    for (int32_t i = 0; i < childrenNum; ++i) {
×
10245
      SOperatorParam *pChild = taosMemoryCalloc(1, sizeof(SOperatorParam));
×
10246
      if (NULL == pChild) {
×
10247
        TAOS_CHECK_RETURN(terrno);
×
10248
      }
10249
      TAOS_CHECK_RETURN(tDeserializeSOperatorParam(pDecoder, pChild));
×
10250
      if (taosArrayPush(pOpParam->pChildren, &pChild) == NULL) {
×
10251
        TAOS_CHECK_RETURN(terrno);
×
10252
      }
10253
    }
10254
  } else {
10255
    pOpParam->pChildren = NULL;
1,525✔
10256
  }
10257

10258
  if (!tDecodeIsEnd(pDecoder)) {
1,525!
10259
    TAOS_CHECK_RETURN(tDecodeBool(pDecoder, &pOpParam->reUse));
1,525!
10260
  } else {
10261
    pOpParam->reUse = false;
×
10262
  }
10263

10264
  return 0;
1,525✔
10265
}
10266

10267
int32_t tSerializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
13,211,527✔
10268
  int32_t code = 0;
13,211,527✔
10269
  int32_t lino;
10270
  int32_t headLen = sizeof(SMsgHead);
13,211,527✔
10271
  if (buf != NULL) {
13,211,527✔
10272
    buf = (char *)buf + headLen;
6,606,200✔
10273
    bufLen -= headLen;
6,606,200✔
10274
  }
10275

10276
  SEncoder encoder = {0};
13,211,527✔
10277
  tEncoderInit(&encoder, buf, bufLen);
13,211,527✔
10278
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
13,211,804!
10279

10280
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
26,423,146!
10281
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
26,423,146!
10282
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
26,423,146!
10283
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
26,423,146!
10284
  if (pReq->pOpParam) {
13,211,573✔
10285
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 1));
3,050!
10286
    TAOS_CHECK_EXIT(tSerializeSOperatorParam(&encoder, pReq->pOpParam));
3,050!
10287
  } else {
10288
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
13,208,523!
10289
  }
10290
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
26,423,146!
10291

10292
  tEndEncode(&encoder);
13,211,573✔
10293

10294
_exit:
13,212,023✔
10295
  if (code) {
13,212,023!
10296
    tEncoderClear(&encoder);
×
10297
    return code;
×
10298
  } else {
10299
    int32_t tlen = encoder.pos;
13,212,023✔
10300
    tEncoderClear(&encoder);
13,212,023✔
10301

10302
    if (buf != NULL) {
13,210,761✔
10303
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
6,605,733✔
10304
      pHead->vgId = htonl(pReq->header.vgId);
6,605,733✔
10305
      pHead->contLen = htonl(tlen + headLen);
6,605,733✔
10306
    }
10307

10308
    return tlen + headLen;
13,210,761✔
10309
  }
10310
}
10311

10312
int32_t tDeserializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
10,363,810✔
10313
  int32_t code = 0;
10,363,810✔
10314
  int32_t lino;
10315
  int32_t headLen = sizeof(SMsgHead);
10,363,810✔
10316

10317
  SMsgHead *pHead = buf;
10,363,810✔
10318
  pHead->vgId = pReq->header.vgId;
10,363,810✔
10319
  pHead->contLen = pReq->header.contLen;
10,363,810✔
10320

10321
  SDecoder decoder = {0};
10,363,810✔
10322
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
10,363,810✔
10323

10324
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,355,838!
10325

10326
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
20,733,933!
10327
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
20,731,072!
10328
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
20,727,392!
10329
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
20,724,470!
10330

10331
  int32_t paramNum = 0;
10,362,146✔
10332
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &paramNum));
10,362,674!
10333
  if (paramNum > 0) {
10,362,674✔
10334
    pReq->pOpParam = taosMemoryMalloc(sizeof(*pReq->pOpParam));
1,525!
10335
    if (NULL == pReq->pOpParam) {
1,525!
10336
      TAOS_CHECK_EXIT(terrno);
×
10337
    }
10338
    TAOS_CHECK_EXIT(tDeserializeSOperatorParam(&decoder, pReq->pOpParam));
1,525!
10339
  }
10340
  if (!tDecodeIsEnd(&decoder)) {
10,362,674✔
10341
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
20,717,710!
10342
  } else {
10343
    pReq->clientId = 0;
4,731✔
10344
  }
10345

10346
  tEndDecode(&decoder);
10,364,498✔
10347

10348
_exit:
10,361,473✔
10349
  tDecoderClear(&decoder);
10,361,473✔
10350
  return code;
10,362,458✔
10351
}
10352

10353
int32_t tSerializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
82,719✔
10354
  int32_t headLen = sizeof(SMsgHead);
82,719✔
10355
  int32_t code = 0;
82,719✔
10356
  int32_t lino;
10357
  if (buf != NULL) {
82,719✔
10358
    buf = (char *)buf + headLen;
41,360✔
10359
    bufLen -= headLen;
41,360✔
10360
  }
10361

10362
  SEncoder encoder = {0};
82,719✔
10363
  tEncoderInit(&encoder, buf, bufLen);
82,719✔
10364
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
82,718!
10365

10366
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
165,434!
10367
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withTbName));
165,434!
10368
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->useSnapshot));
165,434!
10369
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
165,434!
10370
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->reqId));
165,434!
10371
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
165,434!
10372
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeout));
165,434!
10373
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &pReq->reqOffset));
82,717!
10374
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableReplay));
165,436!
10375
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sourceExcluded));
165,436!
10376
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableBatchMeta));
165,436!
10377
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->rawData));
165,436!
10378
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minPollRows));
165,436!
10379

10380
  tEndEncode(&encoder);
82,718✔
10381

10382
_exit:
82,717✔
10383
  if (code) {
82,717!
10384
    tEncoderClear(&encoder);
×
10385
    return code;
×
10386
  } else {
10387
    int32_t tlen = encoder.pos;
82,717✔
10388
    tEncoderClear(&encoder);
82,717✔
10389

10390
    if (buf != NULL) {
82,718✔
10391
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
41,359✔
10392
      pHead->vgId = htonl(pReq->head.vgId);
41,359✔
10393
      pHead->contLen = htonl(tlen + headLen);
41,359✔
10394
    }
10395

10396
    return tlen + headLen;
82,718✔
10397
  }
10398
}
10399

10400
int32_t tDeserializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
55,094✔
10401
  int32_t  code = 0;
55,094✔
10402
  int32_t  lino;
10403
  int32_t  headLen = sizeof(SMsgHead);
55,094✔
10404
  SDecoder decoder = {0};
55,094✔
10405
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
55,094✔
10406

10407
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
55,098!
10408

10409
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
55,112!
10410
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withTbName));
110,209!
10411
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->useSnapshot));
110,215!
10412
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
110,206!
10413
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->reqId));
110,203!
10414
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
110,198!
10415
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeout));
110,188!
10416
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &pReq->reqOffset));
55,090!
10417

10418
  if (!tDecodeIsEnd(&decoder)) {
55,092!
10419
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableReplay));
110,185!
10420
  }
10421

10422
  if (!tDecodeIsEnd(&decoder)) {
55,087!
10423
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sourceExcluded));
110,182!
10424
  }
10425

10426
  if (!tDecodeIsEnd(&decoder)) {
55,087✔
10427
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableBatchMeta));
110,171!
10428
  } else {
10429
    pReq->enableBatchMeta = false;
4✔
10430
  }
10431

10432
  if (!tDecodeIsEnd(&decoder)) {
55,092✔
10433
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->rawData));
110,180!
10434
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minPollRows));
110,187!
10435
  }
10436

10437
  tEndDecode(&decoder);
55,099✔
10438

10439
_exit:
55,077✔
10440
  tDecoderClear(&decoder);
55,077✔
10441
  return code;
55,072✔
10442
}
10443

10444
void tDestroySMqPollReq(SMqPollReq *pReq) {
54,365✔
10445
  tOffsetDestroy(&pReq->reqOffset);
54,365✔
10446
  if (pReq->uidHash != NULL) {
54,365!
10447
    taosHashCleanup(pReq->uidHash);
×
10448
    pReq->uidHash = NULL;
×
10449
  }
10450
}
54,365✔
10451
int32_t tSerializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
20,873,793✔
10452
  int32_t code = 0;
20,873,793✔
10453
  int32_t lino;
10454
  int32_t tlen;
10455
  int32_t headLen = sizeof(SMsgHead);
20,873,793✔
10456
  if (buf != NULL) {
20,873,793✔
10457
    buf = (char *)buf + headLen;
10,440,216✔
10458
    bufLen -= headLen;
10,440,216✔
10459
  }
10460

10461
  SEncoder encoder = {0};
20,873,793✔
10462
  tEncoderInit(&encoder, buf, bufLen);
20,873,793✔
10463
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20,872,542!
10464

10465
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
41,754,842!
10466
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
41,754,842!
10467
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
41,754,842!
10468
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
41,754,842!
10469
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
41,754,842!
10470
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
41,754,842!
10471

10472
  tEndEncode(&encoder);
20,877,421✔
10473

10474
_exit:
20,876,148✔
10475
  if (code) {
20,876,148!
10476
    tEncoderClear(&encoder);
×
10477
    return code;
×
10478
  } else {
10479
    tlen = encoder.pos;
20,876,148✔
10480
    tEncoderClear(&encoder);
20,876,148✔
10481

10482
    if (buf != NULL) {
20,877,936✔
10483
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
10,440,642✔
10484
      pHead->vgId = htonl(pReq->header.vgId);
10,440,642✔
10485
      pHead->contLen = htonl(tlen + headLen);
10,440,642✔
10486
    }
10487

10488
    return tlen + headLen;
20,877,936✔
10489
  }
10490
}
10491

10492
int32_t tDeserializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
8,479,876✔
10493
  int32_t headLen = sizeof(SMsgHead);
8,479,876✔
10494
  int32_t code = 0;
8,479,876✔
10495
  int32_t lino;
10496

10497
  SMsgHead *pHead = buf;
8,479,876✔
10498
  pHead->vgId = pReq->header.vgId;
8,479,876✔
10499
  pHead->contLen = pReq->header.contLen;
8,479,876✔
10500

10501
  SDecoder decoder = {0};
8,479,876✔
10502
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
8,479,876✔
10503

10504
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8,473,037!
10505

10506
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
16,970,852!
10507
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
16,966,754!
10508
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
16,962,798!
10509
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
16,958,697!
10510
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
16,956,867!
10511
  if (!tDecodeIsEnd(&decoder)) {
8,478,377!
10512
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
16,958,900!
10513
  } else {
10514
    pReq->clientId = 0;
×
10515
  }
10516

10517
  tEndDecode(&decoder);
8,477,233✔
10518

10519
_exit:
8,479,205✔
10520
  tDecoderClear(&decoder);
8,479,205✔
10521
  return code;
8,482,514✔
10522
}
10523

10524
int32_t tSerializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
52✔
10525
  int32_t code = 0;
52✔
10526
  int32_t lino;
10527
  int32_t tlen;
10528
  int32_t headLen = sizeof(SMsgHead);
52✔
10529
  if (buf != NULL) {
52✔
10530
    buf = (char *)buf + headLen;
26✔
10531
    bufLen -= headLen;
26✔
10532
  }
10533

10534
  SEncoder encoder = {0};
52✔
10535
  tEncoderInit(&encoder, buf, bufLen);
52✔
10536
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
52!
10537

10538
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
104!
10539
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
104!
10540
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
104!
10541
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
104!
10542
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
104!
10543
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
104!
10544
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
104!
10545

10546
  tEndEncode(&encoder);
52✔
10547

10548
_exit:
52✔
10549
  if (code) {
52!
10550
    tEncoderClear(&encoder);
×
10551
    return code;
×
10552
  } else {
10553
    tlen = encoder.pos;
52✔
10554
    tEncoderClear(&encoder);
52✔
10555

10556
    if (buf != NULL) {
52✔
10557
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
26✔
10558
      pHead->vgId = htonl(pReq->header.vgId);
26✔
10559
      pHead->contLen = htonl(tlen + headLen);
26✔
10560
    }
10561

10562
    return tlen + headLen;
52✔
10563
  }
10564
}
10565

10566
int32_t tDeserializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
108✔
10567
  int32_t headLen = sizeof(SMsgHead);
108✔
10568
  int32_t code = 0;
108✔
10569
  int32_t lino;
10570

10571
  SMsgHead *pHead = buf;
108✔
10572
  pHead->vgId = pReq->header.vgId;
108✔
10573
  pHead->contLen = pReq->header.contLen;
108✔
10574

10575
  SDecoder decoder = {0};
108✔
10576
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
108✔
10577

10578
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
108!
10579

10580
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
217!
10581
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
216!
10582
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
216!
10583
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
216!
10584
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
216!
10585
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, (int32_t *)&pReq->type));
216!
10586
  if (!tDecodeIsEnd(&decoder)) {
108!
10587
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
216!
10588
  } else {
10589
    pReq->clientId = 0;
×
10590
  }
10591

10592
  tEndDecode(&decoder);
108✔
10593

10594
_exit:
108✔
10595
  tDecoderClear(&decoder);
108✔
10596
  return code;
108✔
10597
}
10598

10599
int32_t tSerializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
16,953,110✔
10600
  SEncoder encoder = {0};
16,953,110✔
10601
  int32_t  code = 0;
16,953,110✔
10602
  int32_t  lino;
10603
  int32_t  tlen;
10604
  tEncoderInit(&encoder, buf, bufLen);
16,953,110✔
10605
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16,955,383!
10606

10607
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->code));
33,907,294!
10608
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->affectedRows));
33,907,294!
10609
  int32_t tbNum = taosArrayGetSize(pRsp->tbVerInfo);
16,953,647✔
10610
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, tbNum));
16,947,469!
10611
  if (tbNum > 0) {
16,947,469✔
10612
    for (int32_t i = 0; i < tbNum; ++i) {
20,048,523✔
10613
      STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
10,026,284✔
10614
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pVer->tbFName));
20,043,786!
10615
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->sversion));
20,043,786!
10616
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->tversion));
20,043,786!
10617
    }
10618
  }
10619

10620
  if (tbNum > 0) {
16,943,078✔
10621
    for (int32_t i = 0; i < tbNum; ++i) {
20,051,143✔
10622
      STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
10,028,957✔
10623
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->rversion));
20,044,180!
10624
    }
10625
  }
10626
  tEndEncode(&encoder);
16,936,211✔
10627

10628
_exit:
16,947,851✔
10629
  if (code) {
16,947,851!
10630
    tlen = code;
×
10631
  } else {
10632
    tlen = encoder.pos;
16,947,851✔
10633
  }
10634
  tEncoderClear(&encoder);
16,947,851✔
10635
  return tlen;
16,953,600✔
10636
}
10637

10638
int32_t tDeserializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
1,950,096✔
10639
  SDecoder decoder = {0};
1,950,096✔
10640
  int32_t  code = 0;
1,950,096✔
10641
  int32_t  lino;
10642
  tDecoderInit(&decoder, (char *)buf, bufLen);
1,950,096✔
10643

10644
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,950,075✔
10645

10646
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->code));
3,900,431!
10647
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->affectedRows));
3,900,370!
10648
  int32_t tbNum = 0;
1,950,192✔
10649
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbNum));
1,950,093!
10650
  if (tbNum > 0) {
1,950,093✔
10651
    pRsp->tbVerInfo = taosArrayInit(tbNum, sizeof(STbVerInfo));
1,384,626✔
10652
    if (NULL == pRsp->tbVerInfo) {
1,384,600✔
10653
      TAOS_CHECK_EXIT(terrno);
2!
10654
    }
10655
    for (int32_t i = 0; i < tbNum; i++) {
2,769,228✔
10656
      STbVerInfo tbVer;
10657
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tbVer.tbFName));
1,384,600!
10658
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.sversion));
1,384,612!
10659
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.tversion));
1,384,612!
10660
      tbVer.rversion = 1;
1,384,612✔
10661
      if (NULL == taosArrayPush(pRsp->tbVerInfo, &tbVer)) {
2,769,242!
10662
        TAOS_CHECK_EXIT(terrno);
×
10663
      }
10664
    }
10665
  }
10666

10667
  if (!tDecodeIsEnd(&decoder)) {
1,950,095✔
10668
    if (tbNum > 0) {
1,384,636!
10669
      for (int32_t i = 0; i < tbNum; i++) {
2,769,252✔
10670
        STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
1,384,610✔
10671
        if (NULL == pVer) {
1,384,584!
10672
          TAOS_CHECK_EXIT(terrno);
×
10673
        }
10674
        TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pVer->rversion));
2,769,200!
10675
      }
10676
    }
10677
  }
10678

10679
  tEndDecode(&decoder);
1,950,101✔
10680

10681
_exit:
1,950,155✔
10682
  tDecoderClear(&decoder);
1,950,155✔
10683
  return code;
1,950,172✔
10684
}
10685

10686
int32_t tSerializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
7,511,449✔
10687
  int32_t code = 0;
7,511,449✔
10688
  int32_t lino;
10689
  int32_t tlen;
10690
  int32_t headLen = sizeof(SMsgHead);
7,511,449✔
10691
  if (buf != NULL) {
7,511,449✔
10692
    buf = (char *)buf + headLen;
3,759,217✔
10693
    bufLen -= headLen;
3,759,217✔
10694
  }
10695

10696
  SEncoder encoder = {0};
7,511,449✔
10697
  tEncoderInit(&encoder, buf, bufLen);
7,511,449✔
10698

10699
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,510,465!
10700
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
15,023,912!
10701
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epId.nodeId));
15,023,912!
10702
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pReq->epId.ep.port));
15,023,912!
10703
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->epId.ep.fqdn));
15,023,912!
10704
  if (pReq->taskAction) {
7,511,956!
10705
    int32_t num = taosArrayGetSize(pReq->taskAction);
×
10706
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
10707
    for (int32_t i = 0; i < num; ++i) {
×
10708
      STaskAction *action = taosArrayGet(pReq->taskAction, i);
×
10709
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->queryId));
×
10710
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->taskId));
×
10711
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, action->action));
×
10712
    }
10713
  } else {
10714
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
7,511,956!
10715
  }
10716
  tEndEncode(&encoder);
7,511,956✔
10717

10718
_exit:
7,511,039✔
10719
  if (code) {
7,511,039!
10720
    tEncoderClear(&encoder);
×
10721
    return code;
×
10722
  } else {
10723
    tlen = encoder.pos;
7,511,039✔
10724
    tEncoderClear(&encoder);
7,511,039✔
10725

10726
    if (buf != NULL) {
7,511,962✔
10727
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
3,759,864✔
10728
      pHead->vgId = htonl(pReq->header.vgId);
3,759,864✔
10729
      pHead->contLen = htonl(tlen + headLen);
3,759,864✔
10730
    }
10731
    return tlen + headLen;
7,511,962✔
10732
  }
10733
}
10734

10735
int32_t tDeserializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
2,653,805✔
10736
  int32_t   headLen = sizeof(SMsgHead);
2,653,805✔
10737
  SMsgHead *pHead = buf;
2,653,805✔
10738
  pHead->vgId = pReq->header.vgId;
2,653,805✔
10739
  pHead->contLen = pReq->header.contLen;
2,653,805✔
10740
  int32_t code = 0;
2,653,805✔
10741
  int32_t lino;
10742

10743
  SDecoder decoder = {0};
2,653,805✔
10744
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
2,653,805✔
10745

10746
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,653,148!
10747
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
5,308,617!
10748
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epId.nodeId));
5,308,304!
10749
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pReq->epId.ep.port));
5,307,655!
10750
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->epId.ep.fqdn));
2,653,542!
10751
  int32_t num = 0;
2,653,985✔
10752
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
2,653,955!
10753
  if (num > 0) {
2,653,955!
10754
    pReq->taskAction = taosArrayInit(num, sizeof(STaskStatus));
×
10755
    if (NULL == pReq->taskAction) {
×
10756
      TAOS_CHECK_EXIT(terrno);
×
10757
    }
10758
    for (int32_t i = 0; i < num; ++i) {
×
10759
      STaskAction action = {0};
×
10760
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.queryId));
×
10761
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.taskId));
×
10762
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &action.action));
×
10763
      if (taosArrayPush(pReq->taskAction, &action) == NULL) {
×
10764
        TAOS_CHECK_EXIT(terrno);
×
10765
      }
10766
    }
10767
  } else {
10768
    pReq->taskAction = NULL;
2,653,955✔
10769
  }
10770
  tEndDecode(&decoder);
2,653,955✔
10771

10772
_exit:
2,653,373✔
10773
  tDecoderClear(&decoder);
2,653,373✔
10774
  return code;
2,653,482✔
10775
}
10776

10777
void tFreeSSchedulerHbReq(SSchedulerHbReq *pReq) { taosArrayDestroy(pReq->taskAction); }
×
10778

10779
int32_t tSerializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
5,637,447✔
10780
  SEncoder encoder = {0};
5,637,447✔
10781
  int32_t  code = 0;
5,637,447✔
10782
  int32_t  lino;
10783
  int32_t  tlen;
10784
  tEncoderInit(&encoder, buf, bufLen);
5,637,447✔
10785

10786
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,637,678!
10787
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->epId.nodeId));
11,275,124!
10788
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pRsp->epId.ep.port));
11,275,124!
10789
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->epId.ep.fqdn));
11,275,124!
10790
  if (pRsp->taskStatus) {
5,637,562✔
10791
    int32_t num = taosArrayGetSize(pRsp->taskStatus);
360,232✔
10792
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
360,232!
10793
    for (int32_t i = 0; i < num; ++i) {
786,660✔
10794
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
426,428✔
10795
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->queryId));
852,856!
10796
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->taskId));
852,856!
10797
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, status->refId));
852,856!
10798
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, status->execId));
852,856!
10799
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, status->status));
852,856!
10800
    }
10801
    for (int32_t i = 0; i < num; ++i) {
786,660✔
10802
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
426,428✔
10803
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->clientId));
852,856!
10804
    }
10805
  } else {
10806
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
5,277,330!
10807
  }
10808
  tEndEncode(&encoder);
5,637,562✔
10809

10810
_exit:
5,637,786✔
10811
  if (code) {
5,637,786!
10812
    tlen = code;
×
10813
  } else {
10814
    tlen = encoder.pos;
5,637,786✔
10815
  }
10816
  tEncoderClear(&encoder);
5,637,786✔
10817
  return tlen;
5,637,422✔
10818
}
10819

10820
int32_t tDeserializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
1,161,254✔
10821
  SDecoder decoder = {0};
1,161,254✔
10822
  int32_t  code = 0;
1,161,254✔
10823
  int32_t  lino;
10824
  tDecoderInit(&decoder, buf, bufLen);
1,161,254✔
10825

10826
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,161,274✔
10827
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->epId.nodeId));
2,322,685!
10828
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pRsp->epId.ep.port));
2,322,676!
10829
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->epId.ep.fqdn));
1,161,338!
10830
  int32_t num = 0;
1,161,253✔
10831
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1,161,310!
10832
  if (num > 0) {
1,161,310✔
10833
    pRsp->taskStatus = taosArrayInit(num, sizeof(STaskStatus));
10,377✔
10834
    if (NULL == pRsp->taskStatus) {
10,377!
10835
      TAOS_CHECK_EXIT(terrno);
×
10836
    }
10837
    for (int32_t i = 0; i < num; ++i) {
28,998✔
10838
      STaskStatus status = {0};
18,621✔
10839
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.queryId));
18,620!
10840
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.taskId));
18,620!
10841
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &status.refId));
18,617!
10842
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &status.execId));
18,618!
10843
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &status.status));
18,618!
10844
      if (taosArrayPush(pRsp->taskStatus, &status) == NULL) {
37,239!
10845
        TAOS_CHECK_EXIT(terrno);
×
10846
      }
10847
    }
10848
    if (!tDecodeIsEnd(&decoder)) {
10,377!
10849
      for (int32_t i = 0; i < num; ++i) {
28,996✔
10850
        STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
18,619✔
10851
        TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status->clientId));
37,236!
10852
      }
10853
    }
10854
  } else {
10855
    pRsp->taskStatus = NULL;
1,150,933✔
10856
  }
10857
  tEndDecode(&decoder);
1,161,309✔
10858

10859
_exit:
1,161,246✔
10860
  tDecoderClear(&decoder);
1,161,246✔
10861
  return code;
1,161,263✔
10862
}
10863

10864
void tFreeSSchedulerHbRsp(SSchedulerHbRsp *pRsp) { taosArrayDestroy(pRsp->taskStatus); }
1,342,417✔
10865

10866
int tEncodeSVCreateTbBatchRsp(SEncoder *pCoder, const SVCreateTbBatchRsp *pRsp) {
186,401✔
10867
  int32_t        nRsps = taosArrayGetSize(pRsp->pArray);
186,401✔
10868
  SVCreateTbRsp *pCreateRsp;
10869

10870
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
186,405!
10871
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
186,407!
10872
  for (int32_t i = 0; i < nRsps; i++) {
458,613✔
10873
    pCreateRsp = taosArrayGet(pRsp->pArray, i);
272,221✔
10874
    TAOS_CHECK_RETURN(tEncodeSVCreateTbRsp(pCoder, pCreateRsp));
272,214!
10875
  }
10876

10877
  tEndEncode(pCoder);
186,392✔
10878
  return 0;
186,404✔
10879
}
10880

10881
int tDecodeSVCreateTbBatchRsp(SDecoder *pCoder, SVCreateTbBatchRsp *pRsp) {
124,071✔
10882
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
124,071✔
10883
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
248,268!
10884
  pRsp->pRsps = (SVCreateTbRsp *)tDecoderMalloc(pCoder, sizeof(*pRsp->pRsps) * pRsp->nRsps);
124,127!
10885
  if (pRsp->pRsps == NULL) {
124,140!
10886
    TAOS_CHECK_RETURN(terrno);
×
10887
  }
10888
  for (int32_t i = 0; i < pRsp->nRsps; i++) {
276,163✔
10889
    TAOS_CHECK_RETURN(tDecodeSVCreateTbRsp(pCoder, pRsp->pRsps + i));
152,117✔
10890
  }
10891

10892
  tEndDecode(pCoder);
124,046✔
10893
  return 0;
124,095✔
10894
}
10895

10896
int32_t tEncodeTSma(SEncoder *pCoder, const STSma *pSma) {
×
10897
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->version));
×
10898
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->intervalUnit));
×
10899
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->slidingUnit));
×
10900
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->timezoneInt));
×
10901
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->dstVgId));
×
10902
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->indexName));
×
10903
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->exprLen));
×
10904
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->tagsFilterLen));
×
10905
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->indexUid));
×
10906
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->tableUid));
×
10907
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->dstTbUid));
×
10908
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->dstTbName));
×
10909
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->interval));
×
10910
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->offset));
×
10911
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->sliding));
×
10912
  if (pSma->exprLen > 0) {
×
10913
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->expr));
×
10914
  }
10915
  if (pSma->tagsFilterLen > 0) {
×
10916
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->tagsFilter));
×
10917
  }
10918

10919
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaRow));
×
10920
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaTag));
×
10921

10922
  return 0;
×
10923
}
10924

10925
int32_t tDecodeTSma(SDecoder *pCoder, STSma *pSma, bool deepCopy) {
×
10926
  int32_t code = 0;
×
10927
  int32_t lino;
10928

10929
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->version));
×
10930
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->intervalUnit));
×
10931
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->slidingUnit));
×
10932
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->timezoneInt));
×
10933
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->dstVgId));
×
10934
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pSma->indexName));
×
10935
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->exprLen));
×
10936
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->tagsFilterLen));
×
10937
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->indexUid));
×
10938
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->tableUid));
×
10939
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->dstTbUid));
×
10940
  if (deepCopy) {
×
10941
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->dstTbName));
×
10942
  } else {
10943
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->dstTbName));
×
10944
  }
10945

10946
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->interval));
×
10947
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->offset));
×
10948
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->sliding));
×
10949
  if (pSma->exprLen > 0) {
×
10950
    if (deepCopy) {
×
10951
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->expr));
×
10952
    } else {
10953
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->expr));
×
10954
    }
10955
  } else {
10956
    pSma->expr = NULL;
×
10957
  }
10958
  if (pSma->tagsFilterLen > 0) {
×
10959
    if (deepCopy) {
×
10960
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->tagsFilter));
×
10961
    } else {
10962
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->tagsFilter));
×
10963
    }
10964
  } else {
10965
    pSma->tagsFilter = NULL;
×
10966
  }
10967
  // only needed in dstVgroup
10968
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaRow));
×
10969
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaTag));
×
10970

10971
_exit:
×
10972
  return code;
×
10973
}
10974

10975
int32_t tEncodeSVCreateTSmaReq(SEncoder *pCoder, const SVCreateTSmaReq *pReq) {
×
10976
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
10977
  TAOS_CHECK_RETURN(tEncodeTSma(pCoder, pReq));
×
10978
  tEndEncode(pCoder);
×
10979
  return 0;
×
10980
}
10981

10982
int32_t tDecodeSVCreateTSmaReq(SDecoder *pCoder, SVCreateTSmaReq *pReq) {
×
10983
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
10984
  TAOS_CHECK_RETURN(tDecodeTSma(pCoder, pReq, false));
×
10985
  tEndDecode(pCoder);
×
10986
  return 0;
×
10987
}
10988

10989
int32_t tEncodeSVDropTSmaReq(SEncoder *pCoder, const SVDropTSmaReq *pReq) {
×
10990
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
10991
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->indexUid));
×
10992
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->indexName));
×
10993

10994
  tEndEncode(pCoder);
×
10995
  return 0;
×
10996
}
10997

10998
int32_t tSerializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
115,850✔
10999
  int32_t code = 0;
115,850✔
11000
  int32_t lino;
11001
  int32_t headLen = sizeof(SMsgHead);
115,850✔
11002
  if (buf != NULL) {
115,850✔
11003
    buf = (char *)buf + headLen;
57,931✔
11004
    bufLen -= headLen;
57,931✔
11005
  }
11006

11007
  SEncoder encoder = {0};
115,850✔
11008
  tEncoderInit(&encoder, buf, bufLen);
115,850✔
11009

11010
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
115,857!
11011
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
231,708!
11012
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
231,708!
11013
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
231,708!
11014
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
231,708!
11015
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
231,708!
11016
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->msg, pReq->phyLen));
231,708!
11017
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
231,708!
11018
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
231,708!
11019
  tEndEncode(&encoder);
115,854✔
11020

11021
_exit:
115,854✔
11022
  if (code) {
115,854!
11023
    tEncoderClear(&encoder);
×
11024
    return code;
×
11025
  } else {
11026
    int32_t tlen = encoder.pos;
115,854✔
11027
    tEncoderClear(&encoder);
115,854✔
11028

11029
    if (buf != NULL) {
115,858✔
11030
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
57,932✔
11031
      pHead->vgId = htonl(pReq->header.vgId);
57,932✔
11032
      pHead->contLen = htonl(tlen + headLen);
57,932✔
11033
    }
11034

11035
    return tlen + headLen;
115,858✔
11036
  }
11037
}
11038

11039
int32_t tDeserializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
60,514✔
11040
  int32_t   code = 0;
60,514✔
11041
  int32_t   lino;
11042
  int32_t   headLen = sizeof(SMsgHead);
60,514✔
11043
  SMsgHead *pHead = buf;
60,514✔
11044
  pHead->vgId = pReq->header.vgId;
60,514✔
11045
  pHead->contLen = pReq->header.contLen;
60,514✔
11046

11047
  SDecoder decoder = {0};
60,514✔
11048
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
60,514✔
11049

11050
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
60,511!
11051
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
121,032!
11052
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
121,032!
11053
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
121,032!
11054
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
121,032!
11055
  pReq->sql = taosMemoryCalloc(1, pReq->sqlLen + 1);
60,516!
11056
  if (NULL == pReq->sql) {
60,516!
11057
    TAOS_CHECK_EXIT(terrno);
×
11058
  }
11059
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
60,516!
11060
  uint64_t msgLen = 0;
60,514✔
11061
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, &msgLen));
121,029!
11062
  pReq->phyLen = msgLen;
60,515✔
11063

11064
  if (!tDecodeIsEnd(&decoder)) {
60,515!
11065
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
121,030!
11066
  }
11067
  if (!tDecodeIsEnd(&decoder)) {
60,515!
11068
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
121,030!
11069
  } else {
11070
    pReq->clientId = 0;
×
11071
  }
11072
  tEndDecode(&decoder);
60,515✔
11073

11074
_exit:
60,515✔
11075
  tDecoderClear(&decoder);
60,515✔
11076
  return 0;
60,515✔
11077
}
11078

11079
int32_t tEncodeSVDeleteRsp(SEncoder *pCoder, const SVDeleteRsp *pReq) {
124,918✔
11080
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
124,918✔
11081
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->affectedRows));
249,836!
11082
  tEndEncode(pCoder);
124,918✔
11083
  return 0;
124,919✔
11084
}
11085

11086
int32_t tDecodeSVDeleteRsp(SDecoder *pCoder, SVDeleteRsp *pReq) {
57,939✔
11087
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
57,939✔
11088
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->affectedRows));
115,866!
11089
  tEndDecode(pCoder);
57,933✔
11090
  return 0;
57,933✔
11091
}
11092

11093
int32_t tSerializeSCMCreateStreamReq(void *buf, int32_t bufLen, const SCMCreateStreamReq *pReq) {
2,330✔
11094
  int32_t sqlLen = 0;
2,330✔
11095
  int32_t astLen = 0;
2,330✔
11096
  if (pReq->sql != NULL) sqlLen = (int32_t)strlen(pReq->sql);
2,330!
11097
  if (pReq->ast != NULL) astLen = (int32_t)strlen(pReq->ast);
2,330!
11098

11099
  SEncoder encoder = {0};
2,330✔
11100
  tEncoderInit(&encoder, buf, bufLen);
2,330✔
11101
  int32_t code = 0;
2,330✔
11102
  int32_t lino;
11103

11104
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,330!
11105
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,660!
11106
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sourceDB));
4,660!
11107
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->targetStbFullName));
4,660!
11108
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
4,660!
11109
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fillHistory));
4,660!
11110
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sqlLen));
2,330!
11111
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, astLen));
2,330!
11112
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->triggerType));
4,660!
11113
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->maxDelay));
4,660!
11114
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark));
4,660!
11115
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExpired));
4,660!
11116
  if (sqlLen > 0) {
2,330!
11117
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
4,660!
11118
  }
11119
  if (astLen > 0) {
2,330!
11120
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
4,660!
11121
  }
11122
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTags));
4,660!
11123
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
3,878✔
11124
    SField *pField = taosArrayGet(pReq->pTags, i);
1,548✔
11125
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
3,096!
11126
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
3,096!
11127
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
3,096!
11128
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
3,096!
11129
  }
11130

11131
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createStb));
4,660!
11132
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->targetStbUid));
4,660!
11133

11134
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->fillNullCols)));
4,660!
11135
  for (int32_t i = 0; i < taosArrayGetSize(pReq->fillNullCols); ++i) {
2,522✔
11136
    SColLocation *pCol = taosArrayGet(pReq->fillNullCols, i);
192✔
11137
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->slotId));
384!
11138
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->colId));
384!
11139
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pCol->type));
384!
11140
  }
11141

11142
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark));
4,660!
11143
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUpdate));
4,660!
11144
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastTs));
4,660!
11145

11146
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->pVgroupVerList)));
4,660!
11147

11148
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
3,718✔
11149
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
1,388✔
11150
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
2,776!
11151
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
2,776!
11152
  }
11153

11154
  int32_t colSize = taosArrayGetSize(pReq->pCols);
2,330✔
11155
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, colSize));
2,330!
11156
  for (int32_t i = 0; i < colSize; ++i) {
22,182✔
11157
    SFieldWithOptions *pField = taosArrayGet(pReq->pCols, i);
19,852✔
11158
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
39,704!
11159
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
39,704!
11160
    int32_t bytes = pField->bytes;
19,852✔
11161
    if (IS_DECIMAL_TYPE(pField->type)) {
19,852✔
11162
      uint8_t prec = 0, scale = 0;
130✔
11163
      extractTypeFromTypeMod(pField->type, pField->typeMod, &prec, &scale, NULL);
130✔
11164
      fillBytesForDecimalType(&bytes, pField->type, prec, scale);
130✔
11165
    }
11166
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, bytes));
39,704!
11167
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
39,704!
11168
  }
11169

11170
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->smaId));
4,660!
11171

11172
  int32_t addrSize = taosArrayGetSize(pReq->pNotifyAddrUrls);
2,330✔
11173
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, addrSize));
2,330!
11174
  for (int32_t i = 0; i < addrSize; ++i) {
2,396✔
11175
    const char *url = taosArrayGetP(pReq->pNotifyAddrUrls, i);
66✔
11176
    TAOS_CHECK_EXIT((tEncodeCStr(&encoder, url)));
66!
11177
  }
11178
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->notifyEventTypes));
4,660!
11179
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->notifyErrorHandle));
4,660!
11180
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->notifyHistory));
4,660!
11181

11182
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->recalculateInterval));
4,660!
11183
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pWstartName));
4,660!
11184
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pWendName));
4,660!
11185
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pGroupIdName));
4,660!
11186
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pIsWindowFilledName));
4,660!
11187
  int32_t vgNum = taosArrayGetSize(pReq->pVSubTables);
2,330✔
11188
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, vgNum));
2,330!
11189
  for (int32_t i = 0; i < vgNum; ++i) {
2,402✔
11190
    SVSubTablesRsp *pVgTables = taosArrayGet(pReq->pVSubTables, i);
72✔
11191
    TAOS_CHECK_EXIT(tSerializeSVSubTablesRspImpl(&encoder, pVgTables));
72!
11192
  }
11193

11194
  tEndEncode(&encoder);
2,330✔
11195

11196
_exit:
2,330✔
11197
  if (code) {
2,330!
11198
    tEncoderClear(&encoder);
×
11199
    return code;
×
11200
  } else {
11201
    int32_t tlen = encoder.pos;
2,330✔
11202
    tEncoderClear(&encoder);
2,330✔
11203
    return tlen;
2,330✔
11204
  }
11205
}
11206

11207
int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStreamReq *pReq) {
1,454✔
11208
  int32_t sqlLen = 0;
1,454✔
11209
  int32_t astLen = 0;
1,454✔
11210
  int32_t numOfFillNullCols = 0;
1,454✔
11211
  int32_t numOfVgVer = 0;
1,454✔
11212

11213
  SDecoder decoder = {0};
1,454✔
11214
  tDecoderInit(&decoder, buf, bufLen);
1,454✔
11215
  int32_t code = 0;
1,454✔
11216
  int32_t lino;
11217

11218
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,454!
11219
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,454!
11220
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sourceDB));
1,454!
11221
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->targetStbFullName));
1,454!
11222
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
2,908!
11223
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->fillHistory));
2,908!
11224
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
1,454!
11225
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
1,454!
11226
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->triggerType));
2,908!
11227
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
2,908!
11228
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
2,908!
11229
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExpired));
2,908!
11230

11231
  if (sqlLen > 0) {
1,454!
11232
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
1,454!
11233
    if (pReq->sql == NULL) {
1,454!
11234
      TAOS_CHECK_EXIT(terrno);
×
11235
    }
11236
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
1,454!
11237
  }
11238

11239
  if (astLen > 0) {
1,454!
11240
    pReq->ast = taosMemoryCalloc(1, astLen + 1);
1,454!
11241
    if (pReq->ast == NULL) {
1,454!
11242
      TAOS_CHECK_EXIT(terrno);
×
11243
    }
11244
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
1,454!
11245
  }
11246

11247
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
2,908!
11248
  if (pReq->numOfTags > 0) {
1,454✔
11249
    pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField));
138✔
11250
    if (pReq->pTags == NULL) {
138!
11251
      TAOS_CHECK_EXIT(terrno);
×
11252
    }
11253

11254
    for (int32_t i = 0; i < pReq->numOfTags; ++i) {
896✔
11255
      SField field = {0};
758✔
11256
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
758!
11257
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
758!
11258
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
758!
11259
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
758!
11260
      if (taosArrayPush(pReq->pTags, &field) == NULL) {
1,516!
11261
        TAOS_CHECK_EXIT(terrno);
×
11262
      }
11263
    }
11264
  }
11265
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createStb));
2,908!
11266
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->targetStbUid));
2,908!
11267
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFillNullCols));
1,454!
11268
  if (numOfFillNullCols > 0) {
1,454✔
11269
    pReq->fillNullCols = taosArrayInit(numOfFillNullCols, sizeof(SColLocation));
14✔
11270
    if (pReq->fillNullCols == NULL) {
14!
11271
      TAOS_CHECK_EXIT(terrno);
×
11272
    }
11273

11274
    for (int32_t i = 0; i < numOfFillNullCols; ++i) {
109✔
11275
      SColLocation col = {0};
95✔
11276
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.slotId));
95!
11277
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.colId));
95!
11278
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &col.type));
95!
11279
      if (taosArrayPush(pReq->fillNullCols, &col) == NULL) {
190!
11280
        TAOS_CHECK_EXIT(terrno);
×
11281
      }
11282
    }
11283
  }
11284

11285
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
2,908!
11286
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUpdate));
2,908!
11287
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
2,908!
11288

11289
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
1,454!
11290
  if (numOfVgVer > 0) {
1,454✔
11291
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
530✔
11292
    if (pReq->pVgroupVerList == NULL) {
530!
11293
      TAOS_CHECK_EXIT(terrno);
×
11294
    }
11295

11296
    for (int32_t i = 0; i < numOfVgVer; ++i) {
1,389✔
11297
      SVgroupVer v = {0};
859✔
11298
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
859!
11299
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
859!
11300
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
1,718!
11301
        TAOS_CHECK_EXIT(terrno);
×
11302
      }
11303
    }
11304
  }
11305
  int32_t colSize = 0;
1,454✔
11306
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &colSize));
1,454!
11307
  if (colSize > 0) {
1,454!
11308
    pReq->pCols = taosArrayInit(colSize, sizeof(SField));
1,454✔
11309
    if (pReq->pCols == NULL) {
1,454!
11310
      TAOS_CHECK_EXIT(terrno);
×
11311
    }
11312

11313
    for (int32_t i = 0; i < colSize; ++i) {
16,593✔
11314
      SField field = {0};
15,139✔
11315
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
15,139!
11316
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
15,139!
11317
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
15,139!
11318
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
15,139!
11319
      if (taosArrayPush(pReq->pCols, &field) == NULL) {
30,278!
11320
        TAOS_CHECK_EXIT(terrno);
×
11321
      }
11322
    }
11323
  }
11324
  if (!tDecodeIsEnd(&decoder)) {
1,454!
11325
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->smaId));
2,908!
11326
  }
11327

11328
  if (!tDecodeIsEnd(&decoder)) {
1,454!
11329
    int32_t addrSize = 0;
1,454✔
11330
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &addrSize));
1,454!
11331
    pReq->pNotifyAddrUrls = taosArrayInit(addrSize, POINTER_BYTES);
1,454✔
11332
    if (pReq->pNotifyAddrUrls == NULL) {
1,454!
11333
      TAOS_CHECK_EXIT(terrno);
×
11334
    }
11335
    for (int32_t i = 0; i < addrSize; ++i) {
1,454!
11336
      char *url = NULL;
×
11337
      TAOS_CHECK_EXIT(tDecodeCStr(&decoder, &url));
×
11338
      url = taosStrndup(url, TSDB_STREAM_NOTIFY_URL_LEN);
×
11339
      if (url == NULL) {
×
11340
        TAOS_CHECK_EXIT(terrno);
×
11341
      }
11342
      if (taosArrayPush(pReq->pNotifyAddrUrls, &url) == NULL) {
×
11343
        taosMemoryFree(url);
×
11344
        TAOS_CHECK_EXIT(terrno);
×
11345
      }
11346
    }
11347
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->notifyEventTypes));
2,908!
11348
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->notifyErrorHandle));
2,908!
11349
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->notifyHistory));
2,908!
11350
  }
11351

11352
  if (!tDecodeIsEnd(&decoder)) {
1,454!
11353
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->recalculateInterval));
2,908!
11354
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pWstartName));
1,454!
11355
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pWendName));
1,454!
11356
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pGroupIdName));
1,454!
11357
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pIsWindowFilledName));
1,454!
11358
    int32_t vgNum = 0;
1,454✔
11359
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vgNum));
1,454!
11360
    if (vgNum > 0) {
1,454!
11361
      pReq->pVSubTables = taosArrayInit(vgNum, sizeof(SVSubTablesRsp));
×
11362
      if (pReq->pVSubTables == NULL) {
×
11363
        TAOS_CHECK_EXIT(terrno);
×
11364
      }
11365
      SVSubTablesRsp vgTables = {0};
×
11366
      for (int32_t i = 0; i < vgNum; ++i) {
×
11367
        vgTables.pTables = NULL;
×
11368
        TAOS_CHECK_EXIT(tDeserializeSVSubTablesRspImpl(&decoder, &vgTables));
×
11369
        if (taosArrayPush(pReq->pVSubTables, &vgTables) == NULL) {
×
11370
          tDestroySVSubTablesRsp(&vgTables);
×
11371
          TAOS_CHECK_EXIT(terrno);
×
11372
        }
11373
      }
11374
    }
11375
  }
11376

11377
  tEndDecode(&decoder);
1,454✔
11378

11379
_exit:
1,454✔
11380
  tDecoderClear(&decoder);
1,454✔
11381
  return code;
1,454✔
11382
}
11383

11384
int32_t tSerializeSMDropStreamReq(void *buf, int32_t bufLen, const SMDropStreamReq *pReq) {
1,738✔
11385
  int32_t  code = 0;
1,738✔
11386
  int32_t  lino;
11387
  int32_t  tlen;
11388
  SEncoder encoder = {0};
1,738✔
11389
  tEncoderInit(&encoder, buf, bufLen);
1,738✔
11390

11391
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,738!
11392
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
3,476!
11393
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
3,476!
11394

11395
  ENCODESQL();
5,214!
11396

11397
  tEndEncode(&encoder);
1,738✔
11398

11399
_exit:
1,738✔
11400
  if (code) {
1,738!
11401
    tlen = code;
×
11402
  } else {
11403
    tlen = encoder.pos;
1,738✔
11404
  }
11405
  tEncoderClear(&encoder);
1,738✔
11406
  return tlen;
1,738✔
11407
}
11408

11409
int32_t tDeserializeSMDropStreamReq(void *buf, int32_t bufLen, SMDropStreamReq *pReq) {
1,070✔
11410
  SDecoder decoder = {0};
1,070✔
11411
  int32_t  code = 0;
1,070✔
11412
  int32_t  lino;
11413
  tDecoderInit(&decoder, buf, bufLen);
1,070✔
11414

11415
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,070!
11416
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,070!
11417
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,140!
11418

11419
  DECODESQL();
3,210!
11420

11421
  tEndDecode(&decoder);
1,070✔
11422

11423
_exit:
1,070✔
11424
  tDecoderClear(&decoder);
1,070✔
11425
  return code;
1,070✔
11426
}
11427

11428
void tFreeMDropStreamReq(SMDropStreamReq *pReq) { FREESQL(); }
1,939!
11429

11430
void tFreeSCMCreateStreamReq(SCMCreateStreamReq *pReq) {
4,462✔
11431
  if (NULL == pReq) {
4,462✔
11432
    return;
1,361✔
11433
  }
11434
  taosMemoryFreeClear(pReq->sql);
3,101!
11435
  taosMemoryFreeClear(pReq->ast);
3,101!
11436
  taosArrayDestroy(pReq->pTags);
3,101✔
11437
  taosArrayDestroy(pReq->fillNullCols);
3,101✔
11438
  taosArrayDestroy(pReq->pVgroupVerList);
3,101✔
11439
  taosArrayDestroy(pReq->pCols);
3,101✔
11440
  taosArrayDestroyP(pReq->pNotifyAddrUrls, NULL);
3,101✔
11441
  taosArrayDestroyEx(pReq->pVSubTables, tDestroySVSubTablesRsp);
3,101✔
11442
}
11443

11444
int32_t tEncodeSRSmaParam(SEncoder *pCoder, const SRSmaParam *pRSmaParam) {
31✔
11445
  int32_t code = 0;
31✔
11446
  int32_t lino;
11447
  for (int32_t i = 0; i < 2; ++i) {
94✔
11448
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->maxdelay[i]));
126!
11449
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->watermark[i]));
126!
11450
    TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRSmaParam->qmsgLen[i]));
126!
11451
    if (pRSmaParam->qmsgLen[i] > 0) {
63!
11452
      TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pRSmaParam->qmsg[i], (uint64_t)pRSmaParam->qmsgLen[i]));
126!
11453
    }
11454
  }
11455

11456
_exit:
31✔
11457
  return code;
31✔
11458
}
11459

11460
int32_t tDecodeSRSmaParam(SDecoder *pCoder, SRSmaParam *pRSmaParam) {
364✔
11461
  int32_t code = 0;
364✔
11462
  int32_t lino;
11463
  for (int32_t i = 0; i < 2; ++i) {
1,092✔
11464
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->maxdelay[i]));
1,456!
11465
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->watermark[i]));
1,456!
11466
    TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pRSmaParam->qmsgLen[i]));
1,456!
11467
    if (pRSmaParam->qmsgLen[i] > 0) {
728!
11468
      TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pRSmaParam->qmsg[i], NULL));  // qmsgLen contains len of '\0'
1,456!
11469
    } else {
11470
      pRSmaParam->qmsg[i] = NULL;
×
11471
    }
11472
  }
11473

11474
_exit:
364✔
11475
  return code;
364✔
11476
}
11477

11478
int32_t tEncodeSColRefWrapper(SEncoder *pCoder, const SColRefWrapper *pWrapper) {
700✔
11479
  int32_t code = 0;
700✔
11480
  int32_t lino;
11481

11482
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
1,400!
11483
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
1,400!
11484
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
8,926✔
11485
    SColRef *p = &pWrapper->pColRef[i];
8,226✔
11486
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, p->hasRef));
16,452!
11487
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
16,452!
11488
    if (p->hasRef) {
8,226✔
11489
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refDbName));
7,728!
11490
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refTableName));
7,728!
11491
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refColName));
7,728!
11492
    }
11493
  }
11494

11495
_exit:
700✔
11496
  return code;
700✔
11497
}
11498

11499
int32_t tDecodeSColRefWrapperEx(SDecoder *pDecoder, SColRefWrapper *pWrapper) {
181✔
11500
  int32_t code = 0;
181✔
11501
  int32_t lino;
11502

11503
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
362!
11504
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
362!
11505

11506
  pWrapper->pColRef = (SColRef *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColRef));
181!
11507
  if (pWrapper->pColRef == NULL) {
181!
11508
    TAOS_CHECK_EXIT(terrno);
×
11509
  }
11510

11511
  for (int i = 0; i < pWrapper->nCols; i++) {
1,895✔
11512
    SColRef *p = &pWrapper->pColRef[i];
1,714✔
11513
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&p->hasRef));
3,428!
11514
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
3,428!
11515
    if (p->hasRef) {
1,714✔
11516
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refDbName));
739!
11517
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refTableName));
739!
11518
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refColName));
739!
11519
    }
11520
  }
11521

11522
_exit:
181✔
11523
  if (code) {
181!
11524
    taosMemoryFree(pWrapper->pColRef);
×
11525
  }
11526
  return code;
181✔
11527
}
11528

11529
int32_t tEncodeSColCmprWrapper(SEncoder *pCoder, const SColCmprWrapper *pWrapper) {
102,124✔
11530
  int32_t code = 0;
102,124✔
11531
  int32_t lino;
11532

11533
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
204,248!
11534
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
204,248!
11535
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
7,187,715✔
11536
    SColCmpr *p = &pWrapper->pColCmpr[i];
7,085,591✔
11537
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
14,171,182!
11538
    TAOS_CHECK_EXIT(tEncodeU32(pCoder, p->alg));
14,171,182!
11539
  }
11540

11541
_exit:
102,124✔
11542
  return code;
102,124✔
11543
}
11544

11545
int32_t tDecodeSColCmprWrapperEx(SDecoder *pDecoder, SColCmprWrapper *pWrapper) {
62,965✔
11546
  int32_t code = 0;
62,965✔
11547
  int32_t lino;
11548

11549
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
125,996!
11550
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
126,162!
11551

11552
  pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr));
63,131✔
11553
  if (pWrapper->pColCmpr == NULL) {
63,198!
11554
    TAOS_CHECK_EXIT(terrno);
×
11555
  }
11556

11557
  for (int i = 0; i < pWrapper->nCols; i++) {
3,645,730✔
11558
    SColCmpr *p = &pWrapper->pColCmpr[i];
3,580,027✔
11559
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
7,145,122!
11560
    TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &p->alg));
7,147,627!
11561
  }
11562

11563
_exit:
65,703✔
11564
  if (code) {
65,703!
11565
    taosMemoryFree(pWrapper->pColCmpr);
×
11566
  }
11567
  return code;
63,124✔
11568
}
11569

11570
static int32_t tEncodeSExtSchema(SEncoder *pCoder, const SExtSchema *pExtSchema) {
5,146,706✔
11571
  int32_t code = 0, lino;
5,146,706✔
11572
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pExtSchema->typeMod));
10,293,412!
11573

11574
_exit:
5,146,706✔
11575
  return code;
5,146,706✔
11576
}
11577

11578
int32_t tDecodeSExtSchema(SDecoder *pCoder, SExtSchema *pExtSchema) {
2,639,649✔
11579
  int32_t code = 0, lino;
2,639,649✔
11580
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pExtSchema->typeMod));
5,279,324!
11581

11582
_exit:
2,639,675✔
11583
  return code;
2,639,675✔
11584
}
11585

11586
static int32_t tEncodeSExtSchemas(SEncoder *pCoder, const SExtSchema *pExtSchemas, int32_t nCol) {
14,622✔
11587
  int32_t code = 0, lino;
14,622✔
11588
  for (int32_t i = 0; i < nCol; ++i) {
5,161,328✔
11589
    TAOS_CHECK_EXIT(tEncodeSExtSchema(pCoder, pExtSchemas + i));
5,146,706!
11590
  }
11591

11592
_exit:
14,622✔
11593
  return code;
14,622✔
11594
}
11595

11596
static int32_t tDecodeSExtSchemas(SDecoder *pCoder, SExtSchema **ppExtSchema, int32_t nCol) {
8,534✔
11597
  int32_t code = 0, lino;
8,534✔
11598
  *ppExtSchema = tDecoderMalloc(pCoder, sizeof(SExtSchema) * nCol);
8,534!
11599
  if (!*ppExtSchema) TAOS_CHECK_EXIT(terrno);
8,552!
11600
  for (int32_t i = 0; i < nCol; ++i) {
2,648,275✔
11601
    TAOS_CHECK_EXIT(tDecodeSExtSchema(pCoder, (*ppExtSchema) + i));
2,639,762!
11602
  }
11603

11604
_exit:
8,513✔
11605
  return code;
8,513✔
11606
}
11607

11608
int tEncodeSVCreateStbReq(SEncoder *pCoder, const SVCreateStbReq *pReq) {
73,500✔
11609
  int32_t code = 0;
73,500✔
11610
  int32_t lino;
11611

11612
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
73,500!
11613

11614
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
147,000!
11615
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->suid));
147,000!
11616
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->rollup));
147,000!
11617
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaRow));
147,000!
11618
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaTag));
147,000!
11619
  if (pReq->rollup) {
73,500✔
11620
    TAOS_CHECK_EXIT(tEncodeSRSmaParam(pCoder, &pReq->rsmaParam));
10!
11621
  }
11622

11623
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->alterOriDataLen));
147,000!
11624
  if (pReq->alterOriDataLen > 0) {
73,500✔
11625
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->alterOriData, pReq->alterOriDataLen));
39,148!
11626
  }
11627
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->source));
147,000!
11628

11629
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->colCmpred));
147,000!
11630
  TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
73,500!
11631
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->keep));
147,000!
11632
  if (pReq->pExtSchemas) {
73,500✔
11633
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 1));
14,584!
11634
    TAOS_CHECK_EXIT(tEncodeSExtSchemas(pCoder, pReq->pExtSchemas, pReq->schemaRow.nCols));
14,584!
11635
  } else {
11636
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 0));
58,916!
11637
  }
11638
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->virtualStb));
147,000!
11639
  tEndEncode(pCoder);
73,500✔
11640

11641
_exit:
73,500✔
11642
  return code;
73,500✔
11643
}
11644

11645
int tDecodeSVCreateStbReq(SDecoder *pCoder, SVCreateStbReq *pReq) {
45,874✔
11646
  int32_t code = 0;
45,874✔
11647
  int32_t lino;
11648

11649
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
45,874!
11650

11651
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
92,029!
11652
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
91,993!
11653
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->rollup));
92,018!
11654
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaRow));
92,202!
11655
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaTag));
92,263!
11656
  if (pReq->rollup) {
46,078✔
11657
    TAOS_CHECK_EXIT(tDecodeSRSmaParam(pCoder, &pReq->rsmaParam));
11!
11658
  }
11659

11660
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->alterOriDataLen));
92,034!
11661
  if (pReq->alterOriDataLen > 0) {
45,956✔
11662
    TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pReq->alterOriData, NULL));
22,402!
11663
  }
11664
  if (!tDecodeIsEnd(pCoder)) {
45,946✔
11665
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->source));
91,763!
11666

11667
    if (!tDecodeIsEnd(pCoder)) {
45,900!
11668
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->colCmpred));
91,906!
11669
    }
11670
    if (!tDecodeIsEnd(pCoder)) {
45,924!
11671
      TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
45,961!
11672
    }
11673
    if (!tDecodeIsEnd(pCoder)) {
45,911!
11674
      TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->keep));
91,888!
11675
    }
11676
    if (!tDecodeIsEnd(pCoder)) {
45,893!
11677
      int8_t hasExtSchema = 0;
45,926✔
11678
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &hasExtSchema));
45,919!
11679
      if (hasExtSchema) {
45,919✔
11680
        TAOS_CHECK_EXIT(tDecodeSExtSchemas(pCoder, &pReq->pExtSchemas, pReq->schemaRow.nCols));
8,527!
11681
      }
11682
    }
11683
  }
11684
  if (!tDecodeIsEnd(pCoder)) {
45,974✔
11685
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->virtualStb));
91,749!
11686
  }
11687
  tEndDecode(pCoder);
45,987✔
11688

11689
_exit:
45,885✔
11690
  return code;
45,885✔
11691
}
11692

11693
int tEncodeSVCreateTbReq(SEncoder *pCoder, const SVCreateTbReq *pReq) {
497,869✔
11694
  int32_t code = 0;
497,869✔
11695
  int32_t lino;
11696

11697
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
497,869!
11698

11699
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pReq->flags));
995,974!
11700
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
995,974!
11701
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->uid));
995,974!
11702
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->btime));
995,974!
11703
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->ttl));
995,974!
11704
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->type));
995,974!
11705
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->commentLen));
995,974!
11706
  if (pReq->commentLen > 0) {
497,987✔
11707
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->comment));
40!
11708
  }
11709

11710
  if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
966,980✔
11711
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->ctb.stbName));
938,058!
11712
    TAOS_CHECK_EXIT(tEncodeU8(pCoder, pReq->ctb.tagNum));
938,058!
11713
    TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->ctb.suid));
938,058!
11714
    TAOS_CHECK_EXIT(tEncodeTag(pCoder, (const STag *)pReq->ctb.pTag));
469,029!
11715
    int32_t len = taosArrayGetSize(pReq->ctb.tagName);
468,920✔
11716
    TAOS_CHECK_EXIT(tEncodeI32(pCoder, len));
468,961!
11717
    for (int32_t i = 0; i < len; i++) {
1,621,438✔
11718
      char *name = taosArrayGet(pReq->ctb.tagName, i);
1,152,445✔
11719
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, name));
1,152,477!
11720
    }
11721
  } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
28,958!
11722
    TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->ntb.schemaRow));
57,916!
11723
  } else {
11724
    return TSDB_CODE_INVALID_MSG;
×
11725
  }
11726
  // ENCODESQL
11727

11728
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->sqlLen));
995,902!
11729
  if (pReq->sqlLen > 0) {
497,951!
11730
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->sql, pReq->sqlLen));
×
11731
  }
11732
  // Encode Column Options: encode compress level
11733
  if (pReq->type == TSDB_SUPER_TABLE || pReq->type == TSDB_NORMAL_TABLE) {
497,951✔
11734
    TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
28,830!
11735
  }
11736
  if (pReq->type == TSDB_VIRTUAL_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
497,745✔
11737
    TAOS_CHECK_EXIT(tEncodeSColRefWrapper(pCoder, &pReq->colRef));
666!
11738
  }
11739
  if (pReq->pExtSchemas) {
497,779✔
11740
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 1));
38!
11741
    TAOS_CHECK_EXIT(tEncodeSExtSchemas(pCoder, pReq->pExtSchemas, pReq->ntb.schemaRow.nCols));
38!
11742
  } else {
11743
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 0));
497,741!
11744
  }
11745

11746
  tEndEncode(pCoder);
497,779✔
11747
_exit:
497,896✔
11748
  return code;
497,896✔
11749
}
11750

11751
int tDecodeSVCreateTbReq(SDecoder *pCoder, SVCreateTbReq *pReq) {
237,771✔
11752
  int32_t code = 0;
237,771✔
11753
  int32_t lino;
11754

11755
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
237,771!
11756

11757
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pReq->flags));
475,711!
11758
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
475,650!
11759
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->uid));
475,552!
11760
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->btime));
475,451!
11761
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->ttl));
475,364!
11762
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->type));
475,288!
11763
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->commentLen));
475,256!
11764
  if (pReq->commentLen > 0) {
237,622✔
11765
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
7!
11766
    if (pReq->comment == NULL) {
7!
11767
      TAOS_CHECK_EXIT(terrno);
×
11768
    }
11769
    TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->comment));
7!
11770
  }
11771

11772
  if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
458,317✔
11773
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->ctb.stbName));
440,746!
11774
    TAOS_CHECK_EXIT(tDecodeU8(pCoder, &pReq->ctb.tagNum));
440,813!
11775
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->ctb.suid));
440,774!
11776
    TAOS_CHECK_EXIT(tDecodeTag(pCoder, (STag **)&pReq->ctb.pTag));
220,378!
11777
    int32_t len = 0;
220,424✔
11778
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &len));
220,416!
11779
    pReq->ctb.tagName = taosArrayInit(len, TSDB_COL_NAME_LEN);
220,416✔
11780
    if (pReq->ctb.tagName == NULL) {
220,520!
11781
      TAOS_CHECK_EXIT(terrno);
×
11782
    }
11783
    for (int32_t i = 0; i < len; i++) {
809,646✔
11784
      char  name[TSDB_COL_NAME_LEN] = {0};
588,951✔
11785
      char *tmp = NULL;
588,951✔
11786
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &tmp));
588,872!
11787
      tstrncpy(name, tmp, TSDB_COL_NAME_LEN);
588,872✔
11788
      if (taosArrayPush(pReq->ctb.tagName, name) == NULL) {
1,177,998!
11789
        TAOS_CHECK_EXIT(terrno);
×
11790
      }
11791
    }
11792
  } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
17,293!
11793
    TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->ntb.schemaRow));
34,587!
11794
  } else {
11795
    return TSDB_CODE_INVALID_MSG;
×
11796
  }
11797

11798
  // DECODESQL
11799
  if (!tDecodeIsEnd(pCoder)) {
237,989✔
11800
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->sqlLen));
475,533!
11801
    if (pReq->sqlLen > 0) {
237,763!
11802
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pCoder, (void **)&pReq->sql, NULL));
×
11803
    }
11804
    if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_SUPER_TABLE) {
237,763!
11805
      if (!tDecodeIsEnd(pCoder)) {
17,197✔
11806
        TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
17,179!
11807
      }
11808
    } else if (pReq->type == TSDB_VIRTUAL_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
220,566✔
11809
      if (!tDecodeIsEnd(pCoder)) {
181!
11810
        TAOS_CHECK_EXIT(tDecodeSColRefWrapperEx(pCoder, &pReq->colRef));
181!
11811
      }
11812
    }
11813

11814
    if (!tDecodeIsEnd(pCoder)) {
237,764✔
11815
      int8_t hasExtSchema = 0;
237,750✔
11816
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &hasExtSchema));
237,748!
11817
      if (hasExtSchema) {
237,748✔
11818
        TAOS_CHECK_EXIT(tDecodeSExtSchemas(pCoder, &pReq->pExtSchemas, pReq->ntb.schemaRow.nCols));
20!
11819
      }
11820
    }
11821
  }
11822

11823
  tEndDecode(pCoder);
237,981✔
11824
_exit:
237,724✔
11825
  return code;
237,724✔
11826
}
11827

11828
void tDestroySVCreateTbReq(SVCreateTbReq *pReq, int32_t flags) {
101,292✔
11829
  if (pReq == NULL) return;
101,292!
11830

11831
  if (flags & TSDB_MSG_FLG_ENCODE) {
101,292!
11832
    // TODO
11833
  } else if (flags & TSDB_MSG_FLG_DECODE) {
101,294!
11834
    taosMemoryFreeClear(pReq->comment);
101,294!
11835

11836
    if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
101,294!
11837
      taosArrayDestroy(pReq->ctb.tagName);
101,294✔
11838
    } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
×
11839
      taosMemoryFreeClear(pReq->ntb.schemaRow.pSchema);
×
11840
    }
11841
  }
11842

11843
  taosMemoryFreeClear(pReq->colCmpr.pColCmpr);
101,294!
11844
  taosMemoryFreeClear(pReq->colRef.pColRef);
101,294!
11845
  taosMemoryFreeClear(pReq->sql);
101,294!
11846
}
11847

11848
int tEncodeSVCreateTbBatchReq(SEncoder *pCoder, const SVCreateTbBatchReq *pReq) {
255,841✔
11849
  int32_t nReq = taosArrayGetSize(pReq->pArray);
255,841✔
11850

11851
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
255,866!
11852
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReq));
255,900!
11853
  for (int iReq = 0; iReq < nReq; iReq++) {
567,891✔
11854
    TAOS_CHECK_RETURN(tEncodeSVCreateTbReq(pCoder, (SVCreateTbReq *)taosArrayGet(pReq->pArray, iReq)));
311,972!
11855
  }
11856

11857
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->source));
511,838!
11858

11859
  tEndEncode(pCoder);
255,919✔
11860
  return 0;
255,918✔
11861
}
11862

11863
int tDecodeSVCreateTbBatchReq(SDecoder *pCoder, SVCreateTbBatchReq *pReq) {
93,573✔
11864
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
93,573!
11865

11866
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
187,229!
11867
  pReq->pReqs = (SVCreateTbReq *)tDecoderMalloc(pCoder, sizeof(SVCreateTbReq) * pReq->nReqs);
93,612!
11868
  if (pReq->pReqs == NULL) {
93,619!
11869
    TAOS_CHECK_RETURN(terrno);
×
11870
  }
11871
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
230,043✔
11872
    TAOS_CHECK_RETURN(tDecodeSVCreateTbReq(pCoder, pReq->pReqs + iReq));
136,488!
11873
  }
11874

11875
  if (!tDecodeIsEnd(pCoder)) {
93,555!
11876
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->source));
187,203!
11877
  }
11878

11879
  tEndDecode(pCoder);
93,554✔
11880
  return 0;
93,599✔
11881
}
11882

11883
void tDeleteSVCreateTbBatchReq(SVCreateTbBatchReq *pReq) {
93,622✔
11884
  for (int32_t iReq = 0; iReq < pReq->nReqs; iReq++) {
230,201✔
11885
    SVCreateTbReq *pCreateReq = pReq->pReqs + iReq;
136,577✔
11886
    taosMemoryFreeClear(pCreateReq->sql);
136,577!
11887
    taosMemoryFreeClear(pCreateReq->comment);
136,577!
11888
    if (pCreateReq->type == TSDB_CHILD_TABLE || pCreateReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
136,577✔
11889
      taosArrayDestroy(pCreateReq->ctb.tagName);
119,288✔
11890
      pCreateReq->ctb.tagName = NULL;
119,290✔
11891
    }
11892
  }
11893
}
93,624✔
11894

11895
int tEncodeSVCreateTbRsp(SEncoder *pCoder, const SVCreateTbRsp *pRsp) {
448,615✔
11896
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
448,615!
11897

11898
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->code));
897,224!
11899
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->pMeta ? 1 : 0));
897,224!
11900
  if (pRsp->pMeta) {
448,612✔
11901
    TAOS_CHECK_RETURN(tEncodeSTableMetaRsp(pCoder, pRsp->pMeta));
428,661!
11902
  }
11903

11904
  tEndEncode(pCoder);
448,621✔
11905
  return 0;
448,610✔
11906
}
11907

11908
int tDecodeSVCreateTbRsp(SDecoder *pCoder, SVCreateTbRsp *pRsp) {
233,928✔
11909
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
233,928!
11910

11911
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pRsp->code));
468,137!
11912

11913
  int32_t meta = 0;
234,066✔
11914
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &meta));
234,040!
11915
  if (meta) {
234,040✔
11916
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
212,498!
11917
    if (NULL == pRsp->pMeta) {
212,467!
11918
      TAOS_CHECK_RETURN(terrno);
×
11919
    }
11920
    TAOS_CHECK_RETURN(tDecodeSTableMetaRsp(pCoder, pRsp->pMeta));
212,467!
11921
  } else {
11922
    pRsp->pMeta = NULL;
21,542✔
11923
  }
11924

11925
  tEndDecode(pCoder);
233,928✔
11926
  return 0;
233,903✔
11927
}
11928

11929
void tFreeSVCreateTbRsp(void *param) {
136,105✔
11930
  if (NULL == param) {
136,105!
11931
    return;
×
11932
  }
11933

11934
  SVCreateTbRsp *pRsp = (SVCreateTbRsp *)param;
136,105✔
11935
  if (pRsp->pMeta) {
136,105✔
11936
    taosMemoryFree(pRsp->pMeta->pSchemas);
135,357!
11937
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
135,355!
11938
    taosMemoryFree(pRsp->pMeta->pColRefs);
135,348!
11939
    taosMemoryFree(pRsp->pMeta);
135,345!
11940
  }
11941
}
11942

11943
// TDMT_VND_DROP_TABLE =================
11944
static int32_t tEncodeSVDropTbReq(SEncoder *pCoder, const SVDropTbReq *pReq) {
65,737✔
11945
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
65,737!
11946
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
131,474!
11947
  TAOS_CHECK_RETURN(tEncodeU64(pCoder, pReq->suid));
131,474!
11948
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->uid));
131,474!
11949
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->igNotExists));
131,474!
11950
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->isVirtual));
131,474!
11951

11952
  tEndEncode(pCoder);
65,737✔
11953
  return 0;
65,736✔
11954
}
11955

11956
static int32_t tDecodeSVDropTbReq(SDecoder *pCoder, SVDropTbReq *pReq) {
32,563✔
11957
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
32,563!
11958
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
65,126!
11959
  TAOS_CHECK_RETURN(tDecodeU64(pCoder, &pReq->suid));
65,126!
11960
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->uid));
65,126!
11961
  TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->igNotExists));
65,126!
11962
  if (!tDecodeIsEnd(pCoder)) {
32,563!
11963
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->isVirtual));
65,126!
11964
  }
11965

11966
  tEndDecode(pCoder);
32,563✔
11967
  return 0;
32,563✔
11968
}
11969

11970
static int32_t tEncodeSVDropTbRsp(SEncoder *pCoder, const SVDropTbRsp *pReq) {
32,457✔
11971
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
32,457!
11972
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->code));
64,914!
11973
  tEndEncode(pCoder);
32,457✔
11974
  return 0;
32,457✔
11975
}
11976

11977
static int32_t tDecodeSVDropTbRsp(SDecoder *pCoder, SVDropTbRsp *pReq) {
16,430✔
11978
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
16,430!
11979
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pReq->code));
32,862!
11980
  tEndDecode(pCoder);
16,431✔
11981
  return 0;
16,431✔
11982
}
11983

11984
int32_t tEncodeSVDropTbBatchReq(SEncoder *pCoder, const SVDropTbBatchReq *pReq) {
64,564✔
11985
  int32_t      nReqs = taosArrayGetSize(pReq->pArray);
64,564✔
11986
  SVDropTbReq *pDropTbReq;
11987

11988
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
64,564!
11989
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReqs));
64,564!
11990
  for (int iReq = 0; iReq < nReqs; iReq++) {
130,016✔
11991
    pDropTbReq = (SVDropTbReq *)taosArrayGet(pReq->pArray, iReq);
65,452✔
11992
    TAOS_CHECK_RETURN(tEncodeSVDropTbReq(pCoder, pDropTbReq));
65,452!
11993
  }
11994

11995
  tEndEncode(pCoder);
64,564✔
11996
  return 0;
64,564✔
11997
}
11998

11999
int32_t tDecodeSVDropTbBatchReq(SDecoder *pCoder, SVDropTbBatchReq *pReq) {
32,386✔
12000
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
32,386!
12001
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
64,772!
12002
  pReq->pReqs = (SVDropTbReq *)tDecoderMalloc(pCoder, sizeof(SVDropTbReq) * pReq->nReqs);
32,386!
12003
  if (pReq->pReqs == NULL) {
32,386!
12004
    TAOS_CHECK_RETURN(terrno);
×
12005
  }
12006
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
64,814✔
12007
    TAOS_CHECK_RETURN(tDecodeSVDropTbReq(pCoder, pReq->pReqs + iReq));
32,428!
12008
  }
12009

12010
  tEndDecode(pCoder);
32,386✔
12011
  return 0;
32,386✔
12012
}
12013

12014
int32_t tEncodeSVDropTbBatchRsp(SEncoder *pCoder, const SVDropTbBatchRsp *pRsp) {
32,418✔
12015
  int32_t nRsps = taosArrayGetSize(pRsp->pArray);
32,418✔
12016
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
32,418!
12017
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
32,418!
12018
  for (int iRsp = 0; iRsp < nRsps; iRsp++) {
64,875✔
12019
    TAOS_CHECK_RETURN(tEncodeSVDropTbRsp(pCoder, (SVDropTbRsp *)taosArrayGet(pRsp->pArray, iRsp)));
32,457!
12020
  }
12021

12022
  tEndEncode(pCoder);
32,418✔
12023
  return 0;
32,417✔
12024
}
12025

12026
int32_t tDecodeSVDropTbBatchRsp(SDecoder *pCoder, SVDropTbBatchRsp *pRsp) {
16,014✔
12027
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
16,014!
12028
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
32,029!
12029
  pRsp->pRsps = (SVDropTbRsp *)tDecoderMalloc(pCoder, sizeof(SVDropTbRsp) * pRsp->nRsps);
16,015✔
12030
  if (pRsp->pRsps == NULL) {
16,015!
12031
    TAOS_CHECK_RETURN(terrno);
×
12032
  }
12033
  for (int iRsp = 0; iRsp < pRsp->nRsps; iRsp++) {
32,445✔
12034
    TAOS_CHECK_RETURN(tDecodeSVDropTbRsp(pCoder, pRsp->pRsps + iRsp));
16,430!
12035
  }
12036

12037
  tEndDecode(pCoder);
16,015✔
12038
  return 0;
16,015✔
12039
}
12040

12041
int32_t tEncodeSVDropStbReq(SEncoder *pCoder, const SVDropStbReq *pReq) {
57,636✔
12042
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
57,636!
12043
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
115,272!
12044
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
115,272!
12045
  tEndEncode(pCoder);
57,636✔
12046
  return 0;
57,636✔
12047
}
12048

12049
int32_t tDecodeSVDropStbReq(SDecoder *pCoder, SVDropStbReq *pReq) {
3,133✔
12050
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
3,133!
12051
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
6,284!
12052
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->suid));
6,283!
12053
  tEndDecode(pCoder);
3,142✔
12054
  return 0;
3,137✔
12055
}
12056

12057
static int32_t tEncodeSSubmitBlkRsp(SEncoder *pEncoder, const SSubmitBlkRsp *pBlock) {
×
12058
  int32_t code = 0;
×
12059
  int32_t lino;
12060
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
×
12061

12062
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->code));
×
12063
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pBlock->uid));
×
12064
  if (pBlock->tblFName) {
×
12065
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pBlock->tblFName));
×
12066
  } else {
12067
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, ""));
×
12068
  }
12069
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->numOfRows));
×
12070
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->affectedRows));
×
12071
  TAOS_CHECK_EXIT(tEncodeI64v(pEncoder, pBlock->sver));
×
12072
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->pMeta ? 1 : 0));
×
12073
  if (pBlock->pMeta) {
×
12074
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pBlock->pMeta));
×
12075
  }
12076

12077
  tEndEncode(pEncoder);
×
12078
_exit:
×
12079
  return code;
×
12080
}
12081

12082
void tFreeSSubmitRsp(SSubmitRsp *pRsp) {
58,768✔
12083
  if (NULL == pRsp) return;
58,768!
12084

12085
  if (pRsp->pBlocks) {
×
12086
    for (int32_t i = 0; i < pRsp->nBlocks; ++i) {
×
12087
      SSubmitBlkRsp *sRsp = pRsp->pBlocks + i;
×
12088
      taosMemoryFree(sRsp->tblFName);
×
12089
      tFreeSTableMetaRsp(sRsp->pMeta);
×
12090
      taosMemoryFree(sRsp->pMeta);
×
12091
    }
12092

12093
    taosMemoryFree(pRsp->pBlocks);
×
12094
  }
12095

12096
  taosMemoryFree(pRsp);
×
12097
}
12098

12099
int32_t tEncodeSVAlterTbReq(SEncoder *pEncoder, const SVAlterTbReq *pReq) {
11,628✔
12100
  int32_t code = 0;
11,628✔
12101
  int32_t lino;
12102

12103
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
11,628!
12104

12105
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tbName));
23,256!
12106
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->action));
23,256!
12107
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->colId));
23,256!
12108
  switch (pReq->action) {
11,628!
12109
    case TSDB_ALTER_TABLE_ADD_COLUMN:
2,406✔
12110
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
4,812!
12111
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
4,812!
12112
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
4,812!
12113
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
4,812!
12114
      break;
2,406✔
12115
    case TSDB_ALTER_TABLE_DROP_COLUMN:
406✔
12116
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
812!
12117
      break;
406✔
12118
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
1,566✔
12119
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
3,132!
12120
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->colModType));
3,132!
12121
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->colModBytes));
3,132!
12122
      break;
1,566✔
12123
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
180✔
12124
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
360!
12125
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colNewName));
360!
12126
      break;
180✔
12127
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
6,324✔
12128
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tagName));
12,648!
12129
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->isNull));
12,648!
12130
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->tagType));
12,648!
12131
      if (!pReq->isNull) {
6,324✔
12132
        TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pReq->pTagVal, pReq->nTagVal));
11,624!
12133
      }
12134
      break;
6,324✔
12135
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
10✔
12136
      int32_t nTags = taosArrayGetSize(pReq->pMultiTag);
10✔
12137
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, nTags));
10!
12138
      for (int32_t i = 0; i < nTags; i++) {
70✔
12139
        SMultiTagUpateVal *pTag = taosArrayGet(pReq->pMultiTag, i);
60✔
12140
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pTag->colId));
120!
12141
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTag->tagName));
120!
12142
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->isNull));
120!
12143
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->tagType));
120!
12144
        if (!pTag->isNull) {
60✔
12145
          TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pTag->pTagVal, pTag->nTagVal));
96!
12146
        }
12147
      }
12148
      break;
10✔
12149
    }
12150
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
188✔
12151
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->updateTTL));
376!
12152
      if (pReq->updateTTL) {
188✔
12153
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newTTL));
144!
12154
      }
12155
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newCommentLen));
376!
12156
      if (pReq->newCommentLen > 0) {
188✔
12157
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->newComment));
176!
12158
      }
12159
      break;
188✔
12160
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
10✔
12161
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
20!
12162
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
20!
12163
      break;
10✔
12164
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
82✔
12165
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
164!
12166
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
164!
12167
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
164!
12168
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
164!
12169
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
164!
12170
      break;
82✔
12171
    case TSDB_ALTER_TABLE_ALTER_COLUMN_REF:
222✔
12172
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
444!
12173
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refDbName));
444!
12174
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refTbName));
444!
12175
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refColName));
444!
12176
      break;
222✔
12177
    case TSDB_ALTER_TABLE_REMOVE_COLUMN_REF:
168✔
12178
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
336!
12179
      break;
168✔
12180
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COLUMN_REF:
66✔
12181
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
132!
12182
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
132!
12183
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
132!
12184
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
132!
12185
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refDbName));
132!
12186
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refTbName));
132!
12187
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refColName));
132!
12188
      break;
66✔
12189
    default:
×
12190
      break;
×
12191
  }
12192
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
23,256!
12193
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->source));
23,256!
12194
  if (pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION || pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN) {
11,628✔
12195
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->typeMod));
4,976!
12196
  }
12197

12198
  tEndEncode(pEncoder);
11,628✔
12199
_exit:
11,628✔
12200
  return code;
11,628✔
12201
}
12202

12203
static int32_t tDecodeSVAlterTbReqCommon(SDecoder *pDecoder, SVAlterTbReq *pReq) {
12,716✔
12204
  int32_t code = 0;
12,716✔
12205
  int32_t lino;
12206

12207
  TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tbName));
25,432!
12208
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->action));
25,432!
12209
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->colId));
25,432!
12210
  switch (pReq->action) {
12,716!
12211
    case TSDB_ALTER_TABLE_ADD_COLUMN:
2,488✔
12212
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
4,976!
12213
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
4,976!
12214
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
4,976!
12215
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
4,976!
12216
      break;
2,488✔
12217
    case TSDB_ALTER_TABLE_DROP_COLUMN:
472✔
12218
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
944!
12219
      break;
472✔
12220
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
1,593✔
12221
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
3,186!
12222
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->colModType));
3,186!
12223
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->colModBytes));
3,186!
12224
      break;
1,593✔
12225
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
186✔
12226
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
372!
12227
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colNewName));
372!
12228
      break;
186✔
12229
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
7,323✔
12230
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tagName));
14,646!
12231
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->isNull));
14,646!
12232
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->tagType));
14,646!
12233
      if (!pReq->isNull) {
7,323✔
12234
        TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &pReq->pTagVal, &pReq->nTagVal));
13,474!
12235
      }
12236
      break;
7,323✔
12237
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
20✔
12238
      int32_t nTags;
12239
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &nTags));
20!
12240
      pReq->pMultiTag = taosArrayInit(nTags, sizeof(SMultiTagUpateVal));
20✔
12241
      if (pReq->pMultiTag == NULL) {
20!
12242
        TAOS_CHECK_EXIT(terrno);
×
12243
      }
12244
      for (int32_t i = 0; i < nTags; i++) {
140✔
12245
        SMultiTagUpateVal tag;
12246
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &tag.colId));
120!
12247
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &tag.tagName));
120!
12248
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.isNull));
120!
12249
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.tagType));
120!
12250
        if (!tag.isNull) {
120✔
12251
          TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &tag.pTagVal, &tag.nTagVal));
96!
12252
        }
12253
        if (taosArrayPush(pReq->pMultiTag, &tag) == NULL) {
240!
12254
          TAOS_CHECK_EXIT(terrno);
×
12255
        }
12256
      }
12257
      break;
20✔
12258
    }
12259
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
224✔
12260
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->updateTTL));
448!
12261
      if (pReq->updateTTL) {
224✔
12262
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newTTL));
172!
12263
      }
12264
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newCommentLen));
448!
12265
      if (pReq->newCommentLen > 0) {
224✔
12266
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->newComment));
212!
12267
      }
12268
      break;
224✔
12269
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
32✔
12270
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
64!
12271
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
64!
12272
      break;
32✔
12273
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
82✔
12274
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
164!
12275
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
164!
12276
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
164!
12277
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
164!
12278
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
164!
12279
      break;
82✔
12280
    case TSDB_ALTER_TABLE_ALTER_COLUMN_REF:
152✔
12281
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
304!
12282
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refDbName));
304!
12283
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refTbName));
304!
12284
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refColName));
304!
12285
      break;
152✔
12286
    case TSDB_ALTER_TABLE_REMOVE_COLUMN_REF:
80✔
12287
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
160!
12288
      break;
80✔
12289
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COLUMN_REF:
64✔
12290
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
128!
12291
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
128!
12292
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
128!
12293
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
128!
12294
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refDbName));
128!
12295
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refTbName));
128!
12296
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refColName));
128!
12297
      break;
64✔
12298
    default:
×
12299
      break;
×
12300
  }
12301
_exit:
12,716✔
12302
  return code;
12,716✔
12303
}
12304

12305
int32_t tDecodeSVAlterTbReq(SDecoder *pDecoder, SVAlterTbReq *pReq) {
6,413✔
12306
  int32_t code = 0;
6,413✔
12307
  int32_t lino;
12308

12309
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
6,413!
12310
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
6,413!
12311

12312
  pReq->ctimeMs = 0;
6,413✔
12313
  if (!tDecodeIsEnd(pDecoder)) {
6,413!
12314
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
12,826!
12315
  }
12316
  if (!tDecodeIsEnd(pDecoder)) {
6,413!
12317
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->source));
12,826!
12318
  }
12319
  if (pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN || pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
6,413✔
12320
    if (!tDecodeIsEnd(pDecoder)) {
1,294!
12321
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->typeMod));
2,588!
12322
    }
12323
  }
12324

12325
  tEndDecode(pDecoder);
6,413✔
12326
_exit:
6,413✔
12327
  return code;
6,413✔
12328
}
12329

12330
int32_t tDecodeSVAlterTbReqSetCtime(SDecoder *pDecoder, SVAlterTbReq *pReq, int64_t ctimeMs) {
6,303✔
12331
  int32_t code = 0;
6,303✔
12332
  int32_t lino;
12333

12334
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
6,303!
12335
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
6,303!
12336

12337
  pReq->ctimeMs = 0;
6,303✔
12338
  if (!tDecodeIsEnd(pDecoder)) {
6,303!
12339
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
6,303✔
12340
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
12,606!
12341
  }
12342

12343
  tEndDecode(pDecoder);
6,303✔
12344
_exit:
6,303✔
12345
  return code;
6,303✔
12346
}
12347

12348
void tfreeMultiTagUpateVal(void *val) {
40✔
12349
  SMultiTagUpateVal *pTag = val;
40✔
12350
  taosMemoryFree(pTag->tagName);
40!
12351
  for (int i = 0; i < taosArrayGetSize(pTag->pTagArray); ++i) {
74✔
12352
    STagVal *p = (STagVal *)taosArrayGet(pTag->pTagArray, i);
34✔
12353
    if (IS_VAR_DATA_TYPE(p->type)) {
34!
12354
      taosMemoryFreeClear(p->pData);
4!
12355
    }
12356
  }
12357

12358
  taosArrayDestroy(pTag->pTagArray);
40✔
12359
}
40✔
12360
int32_t tEncodeSVAlterTbRsp(SEncoder *pEncoder, const SVAlterTbRsp *pRsp) {
12,614✔
12361
  int32_t code = 0;
12,614✔
12362
  int32_t lino;
12363

12364
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
12,614!
12365
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->code));
25,228!
12366
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta ? 1 : 0));
25,228!
12367
  if (pRsp->pMeta) {
12,614✔
12368
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
3,218!
12369
  }
12370
  tEndEncode(pEncoder);
12,614✔
12371
_exit:
12,614✔
12372
  return code;
12,614✔
12373
}
12374

12375
int32_t tDecodeSVAlterTbRsp(SDecoder *pDecoder, SVAlterTbRsp *pRsp) {
5,785✔
12376
  int32_t meta = 0;
5,785✔
12377
  int32_t code = 0;
5,785✔
12378
  int32_t lino;
12379
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
5,785!
12380
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->code));
11,570!
12381
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
5,785!
12382
  if (meta) {
5,785✔
12383
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
1,621!
12384
    if (NULL == pRsp->pMeta) {
1,621!
12385
      TAOS_CHECK_EXIT(terrno);
×
12386
    }
12387
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
1,621!
12388
  }
12389
  tEndDecode(pDecoder);
5,785✔
12390
_exit:
5,785✔
12391
  return code;
5,785✔
12392
}
12393

12394
int32_t tEncodeSMAlterStbRsp(SEncoder *pEncoder, const SMAlterStbRsp *pRsp) {
9,450✔
12395
  int32_t code = 0;
9,450✔
12396
  int32_t lino;
12397

12398
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
9,450!
12399
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
18,900!
12400
  if (pRsp->pMeta->pSchemas) {
9,450!
12401
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
9,450!
12402
  }
12403
  tEndEncode(pEncoder);
9,450✔
12404
_exit:
9,450✔
12405
  return code;
9,450✔
12406
}
12407

12408
int32_t tDecodeSMAlterStbRsp(SDecoder *pDecoder, SMAlterStbRsp *pRsp) {
4,485✔
12409
  int32_t meta = 0;
4,485✔
12410
  int32_t code = 0;
4,485✔
12411
  int32_t lino;
12412

12413
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
4,485!
12414
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
4,485!
12415
  if (meta) {
4,485!
12416
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
4,485!
12417
    if (NULL == pRsp->pMeta) {
4,485!
12418
      TAOS_CHECK_EXIT(terrno);
×
12419
    }
12420
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
4,485!
12421
  }
12422
  tEndDecode(pDecoder);
4,485✔
12423
_exit:
4,485✔
12424
  return code;
4,485✔
12425
}
12426

12427
void tFreeSMAlterStbRsp(SMAlterStbRsp *pRsp) {
4,725✔
12428
  if (NULL == pRsp) {
4,725!
12429
    return;
×
12430
  }
12431

12432
  if (pRsp->pMeta) {
4,725!
12433
    taosMemoryFree(pRsp->pMeta->pSchemas);
4,725!
12434
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
4,725!
12435
    taosMemoryFree(pRsp->pMeta->pColRefs);
4,725!
12436
    taosMemoryFree(pRsp->pMeta);
4,725!
12437
  }
12438
}
12439

12440
int32_t tEncodeSMCreateStbRsp(SEncoder *pEncoder, const SMCreateStbRsp *pRsp) {
19,636✔
12441
  int32_t code = 0;
19,636✔
12442
  int32_t lino;
12443

12444
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
19,636!
12445
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
39,272!
12446
  if (pRsp->pMeta->pSchemas) {
19,636!
12447
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
19,636!
12448
  }
12449
  tEndEncode(pEncoder);
19,636✔
12450

12451
_exit:
19,636✔
12452
  return code;
19,636✔
12453
}
12454

12455
int32_t tDecodeSMCreateStbRsp(SDecoder *pDecoder, SMCreateStbRsp *pRsp) {
7,886✔
12456
  int32_t meta = 0;
7,886✔
12457
  int32_t code = 0;
7,886✔
12458
  int32_t lino;
12459

12460
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
7,886!
12461
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
7,886!
12462
  if (meta) {
7,886!
12463
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
7,886!
12464
    if (NULL == pRsp->pMeta) {
7,886!
12465
      TAOS_CHECK_EXIT(terrno);
×
12466
    }
12467
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
7,886!
12468
  }
12469
  tEndDecode(pDecoder);
7,886✔
12470

12471
  return code;
7,886✔
12472

12473
_exit:
×
12474
  tFreeSTableMetaRsp(pRsp->pMeta);
×
12475
  taosMemoryFreeClear(pRsp->pMeta);
×
12476
  return code;
×
12477
}
12478

12479
void tFreeSMCreateStbRsp(SMCreateStbRsp *pRsp) {
9,818✔
12480
  if (NULL == pRsp) {
9,818!
12481
    return;
×
12482
  }
12483

12484
  if (pRsp->pMeta) {
9,818!
12485
    taosMemoryFree(pRsp->pMeta->pSchemas);
9,818!
12486
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
9,818!
12487
    taosMemoryFree(pRsp->pMeta->pColRefs);
9,818!
12488
    taosMemoryFree(pRsp->pMeta);
9,818!
12489
  }
12490
}
12491

12492
int32_t tEncodeSTqOffsetVal(SEncoder *pEncoder, const STqOffsetVal *pOffsetVal) {
257,288✔
12493
  int32_t code = 0;
257,288✔
12494
  int32_t lino;
12495

12496
  int8_t type = pOffsetVal->type < 0 ? pOffsetVal->type : (TQ_OFFSET_VERSION << 4) | pOffsetVal->type;
257,288✔
12497
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, type));
514,576!
12498
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
257,288✔
12499
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->uid));
16,818!
12500
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->ts));
16,818!
12501
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pOffsetVal->primaryKey.type));
16,818!
12502
    if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
8,409!
12503
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pOffsetVal->primaryKey.pData, pOffsetVal->primaryKey.nData));
2!
12504
    } else {
12505
      TAOS_CHECK_EXIT(tEncodeI64(pEncoder, VALUE_GET_TRIVIAL_DATUM(&pOffsetVal->primaryKey)));
16,816!
12506
    }
12507

12508
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
248,879✔
12509
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->version));
484,818!
12510
  } else {
12511
    // do nothing
12512
  }
12513
_exit:
6,470✔
12514
  return code;
257,288✔
12515
}
12516

12517
int32_t tDecodeSTqOffsetVal(SDecoder *pDecoder, STqOffsetVal *pOffsetVal) {
144,855✔
12518
  int32_t code = 0;
144,855✔
12519
  int32_t lino;
12520

12521
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->type));
289,725!
12522
  int8_t offsetVersion = 0;
144,870✔
12523
  if (pOffsetVal->type > 0) {
144,870✔
12524
    offsetVersion = (pOffsetVal->type >> 4);
141,596✔
12525
    pOffsetVal->type = pOffsetVal->type & 0x0F;
141,596✔
12526
  }
12527
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
144,870✔
12528
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->uid));
8,718!
12529
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->ts));
8,715!
12530
    if (offsetVersion >= TQ_OFFSET_VERSION) {
4,356!
12531
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->primaryKey.type));
8,719!
12532
      if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
4,360!
12533
        TAOS_CHECK_EXIT(
4!
12534
            tDecodeBinaryAlloc32(pDecoder, (void **)&pOffsetVal->primaryKey.pData, &pOffsetVal->primaryKey.nData));
12535
      } else {
12536
        TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &VALUE_GET_TRIVIAL_DATUM(&pOffsetVal->primaryKey)));
8,712!
12537
      }
12538
    }
12539
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
140,511✔
12540
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->version));
273,911!
12541
  } else {
12542
    // do nothing
12543
  }
12544
_exit:
3,568✔
12545
  return code;
144,889✔
12546
}
12547

12548
void tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) {
268,641✔
12549
  if (pVal->type == TMQ_OFFSET__RESET_NONE) {
268,641✔
12550
    (void)snprintf(buf, maxLen, "none");
1,447✔
12551
  } else if (pVal->type == TMQ_OFFSET__RESET_EARLIEST) {
267,194✔
12552
    (void)snprintf(buf, maxLen, "earliest");
5,496✔
12553
  } else if (pVal->type == TMQ_OFFSET__RESET_LATEST) {
261,698✔
12554
    (void)snprintf(buf, maxLen, "latest");
913✔
12555
  } else if (pVal->type == TMQ_OFFSET__LOG) {
260,785✔
12556
    (void)snprintf(buf, maxLen, "wal:%" PRId64, pVal->version);
252,418✔
12557
  } else if (pVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pVal->type == TMQ_OFFSET__SNAPSHOT_META) {
8,367!
12558
    if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
8,367!
12559
      char *tmp = taosMemoryCalloc(1, pVal->primaryKey.nData + 1);
×
12560
      if (tmp == NULL) return;
×
12561
      (void)memcpy(tmp, pVal->primaryKey.pData, pVal->primaryKey.nData);
×
12562
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%s", pVal->uid, pVal->ts,
×
12563
                     pVal->primaryKey.type, tmp);
×
12564
      taosMemoryFree(tmp);
×
12565
    } else {
12566
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%" PRId64, pVal->uid, pVal->ts,
8,381✔
12567
                     pVal->primaryKey.type, VALUE_GET_TRIVIAL_DATUM(&pVal->primaryKey));
8,381✔
12568
    }
12569
  }
12570
}
12571

12572
bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
61,035✔
12573
  if (pLeft->type == pRight->type) {
61,035✔
12574
    if (pLeft->type == TMQ_OFFSET__LOG) {
58,093✔
12575
      return pLeft->version == pRight->version;
54,200✔
12576
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_DATA) {
3,893!
12577
      if (pLeft->primaryKey.type != 0) {
3,899!
12578
        if (pLeft->primaryKey.type != pRight->primaryKey.type) return false;
×
12579
        if (tValueCompare(&pLeft->primaryKey, &pRight->primaryKey) != 0) return false;
×
12580
      }
12581
      return pLeft->uid == pRight->uid && pLeft->ts == pRight->ts;
3,899✔
12582
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_META) {
×
12583
      return pLeft->uid == pRight->uid;
×
12584
    } else {
12585
      uError("offset type:%d", pLeft->type);
×
12586
    }
12587
  }
12588
  return false;
2,949✔
12589
}
12590

12591
void tOffsetCopy(STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
314,688✔
12592
  tOffsetDestroy(pLeft);
314,688✔
12593
  *pLeft = *pRight;
314,726✔
12594
  if (IS_VAR_DATA_TYPE(pRight->primaryKey.type)) {
314,726!
12595
    pLeft->primaryKey.pData = taosMemoryMalloc(pRight->primaryKey.nData);
×
12596
    if (pLeft->primaryKey.pData == NULL) {
×
12597
      uError("failed to allocate memory for offset");
×
12598
      return;
×
12599
    }
12600
    (void)memcpy(pLeft->primaryKey.pData, pRight->primaryKey.pData, pRight->primaryKey.nData);
×
12601
  }
12602
}
12603

12604
void tOffsetDestroy(void *param) {
9,312,220✔
12605
  if (param == NULL) return;
9,312,220!
12606
  STqOffsetVal *pVal = (STqOffsetVal *)param;
9,312,220✔
12607
  if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
9,312,220!
12608
    taosMemoryFreeClear(pVal->primaryKey.pData);
×
12609
  }
12610
}
12611

12612
void tDeleteSTqOffset(void *param) {
10,722✔
12613
  if (param == NULL) return;
10,722✔
12614
  STqOffset *pVal = (STqOffset *)param;
10,721✔
12615
  tOffsetDestroy(&pVal->val);
10,721✔
12616
}
12617

12618
int32_t tEncodeSTqOffset(SEncoder *pEncoder, const STqOffset *pOffset) {
11,398✔
12619
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pOffset->val));
11,398!
12620
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pOffset->subKey));
22,796!
12621
  return 0;
11,398✔
12622
}
12623

12624
int32_t tDecodeSTqOffset(SDecoder *pDecoder, STqOffset *pOffset) {
10,711✔
12625
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pOffset->val));
10,711!
12626
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pOffset->subKey));
10,714✔
12627
  return 0;
10,717✔
12628
}
12629

12630
int32_t tEncodeMqVgOffset(SEncoder *pEncoder, const SMqVgOffset *pOffset) {
9,634✔
12631
  TAOS_CHECK_RETURN(tEncodeSTqOffset(pEncoder, &pOffset->offset));
9,634!
12632
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pOffset->consumerId));
19,268!
12633
  return 0;
9,634✔
12634
}
12635

12636
int32_t tDecodeMqVgOffset(SDecoder *pDecoder, SMqVgOffset *pOffset) {
10,590✔
12637
  TAOS_CHECK_RETURN(tDecodeSTqOffset(pDecoder, &pOffset->offset));
10,590!
12638
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pOffset->consumerId));
21,183!
12639
  return 0;
10,584✔
12640
}
12641

12642
int32_t tEncodeSTqCheckInfo(SEncoder *pEncoder, const STqCheckInfo *pInfo) {
226✔
12643
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->topic));
452!
12644
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->ntbUid));
452!
12645
  int32_t sz = taosArrayGetSize(pInfo->colIdList);
226✔
12646
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, sz));
226!
12647
  for (int32_t i = 0; i < sz; i++) {
940✔
12648
    int16_t colId = *(int16_t *)taosArrayGet(pInfo->colIdList, i);
714✔
12649
    TAOS_CHECK_RETURN(tEncodeI16(pEncoder, colId));
1,428!
12650
  }
12651
  return pEncoder->pos;
226✔
12652
}
12653

12654
int32_t tDecodeSTqCheckInfo(SDecoder *pDecoder, STqCheckInfo *pInfo) {
231✔
12655
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->topic));
231!
12656
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->ntbUid));
462!
12657
  int32_t sz = 0;
231✔
12658
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &sz));
231!
12659
  pInfo->colIdList = taosArrayInit(sz, sizeof(int16_t));
231✔
12660
  if (pInfo->colIdList == NULL) {
231!
12661
    TAOS_CHECK_RETURN(terrno);
×
12662
  }
12663
  for (int32_t i = 0; i < sz; i++) {
833✔
12664
    int16_t colId = 0;
602✔
12665
    TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &colId));
602!
12666
    if (taosArrayPush(pInfo->colIdList, &colId) == NULL) {
1,204!
12667
      TAOS_CHECK_RETURN(terrno);
×
12668
    }
12669
  }
12670
  return 0;
231✔
12671
}
12672
void tDeleteSTqCheckInfo(STqCheckInfo *pInfo) { taosArrayDestroy(pInfo->colIdList); }
16,841✔
12673

12674
int32_t tEncodeSMqRebVgReq(SEncoder *pCoder, const SMqRebVgReq *pReq) {
6,292✔
12675
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
6,292!
12676
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->leftForVer));
12,584!
12677
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->vgId));
12,584!
12678
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->oldConsumerId));
12,584!
12679
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->newConsumerId));
12,584!
12680
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->subKey));
12,584!
12681
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->subType));
12,584!
12682
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->withMeta));
12,584!
12683

12684
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
6,292✔
12685
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
10,520!
12686
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
1,032✔
12687
    TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
344!
12688
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
344!
12689
  }
12690
  tEndEncode(pCoder);
6,292✔
12691
  return 0;
6,292✔
12692
}
12693

12694
int32_t tDecodeSMqRebVgReq(SDecoder *pCoder, SMqRebVgReq *pReq) {
4,443✔
12695
  int32_t code = 0;
4,443✔
12696
  int32_t lino;
12697

12698
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
4,443!
12699

12700
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->leftForVer));
8,895!
12701

12702
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->vgId));
8,895!
12703
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->oldConsumerId));
8,895!
12704
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->newConsumerId));
8,893!
12705
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->subKey));
4,446!
12706
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->subType));
8,894!
12707
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->withMeta));
8,895!
12708

12709
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
4,448✔
12710
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
7,567!
12711
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
663✔
12712
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
224!
12713
    if (!tDecodeIsEnd(pCoder)) {
112!
12714
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
224!
12715
    }
12716
  }
12717

12718
  tEndDecode(pCoder);
4,445✔
12719
_exit:
4,442✔
12720
  return code;
4,442✔
12721
}
12722

12723
int32_t tEncodeDeleteRes(SEncoder *pCoder, const SDeleteRes *pRes) {
121,032✔
12724
  int32_t nUid = taosArrayGetSize(pRes->uidList);
121,032✔
12725
  int32_t code = 0;
121,031✔
12726
  int32_t lino;
12727

12728
  TAOS_CHECK_EXIT(tEncodeU64(pCoder, pRes->suid));
242,062!
12729
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, nUid));
121,031!
12730
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
271,202✔
12731
    TAOS_CHECK_EXIT(tEncodeU64(pCoder, *(uint64_t *)taosArrayGet(pRes->uidList, iUid)));
300,343!
12732
  }
12733
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->skey));
242,060!
12734
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ekey));
242,060!
12735
  TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRes->affectedRows));
242,060!
12736

12737
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tableFName));
242,060!
12738
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tsColName));
242,060!
12739
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ctimeMs));
242,060!
12740
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pRes->source));
242,060!
12741

12742
_exit:
121,030✔
12743
  return code;
121,030✔
12744
}
12745

12746
int32_t tDecodeDeleteRes(SDecoder *pCoder, SDeleteRes *pRes) {
70,787✔
12747
  int32_t  nUid;
12748
  uint64_t uid;
12749
  int32_t  code = 0;
70,787✔
12750
  int32_t  lino;
12751

12752
  TAOS_CHECK_EXIT(tDecodeU64(pCoder, &pRes->suid));
141,572!
12753
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &nUid));
70,784!
12754
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
166,169✔
12755
    TAOS_CHECK_EXIT(tDecodeU64(pCoder, &uid));
95,387!
12756
    if (pRes->uidList) {
95,387✔
12757
      if (taosArrayPush(pRes->uidList, &uid) == NULL) {
190,754!
12758
        TAOS_CHECK_EXIT(terrno);
×
12759
      }
12760
    }
12761
  }
12762
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->skey));
141,549!
12763
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ekey));
141,538!
12764
  TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRes->affectedRows));
141,528!
12765

12766
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tableFName));
70,763!
12767
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tsColName));
70,774!
12768

12769
  pRes->ctimeMs = 0;
70,766✔
12770
  if (!tDecodeIsEnd(pCoder)) {
70,766✔
12771
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ctimeMs));
141,527!
12772
  }
12773
  if (!tDecodeIsEnd(pCoder)) {
70,763!
12774
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pRes->source));
141,528!
12775
  }
12776

12777
_exit:
70,765✔
12778
  return code;
70,765✔
12779
}
12780

12781
int32_t tEncodeMqMetaRsp(SEncoder *pEncoder, const SMqMetaRsp *pRsp) {
634✔
12782
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
634!
12783
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->resMsgType));
1,268!
12784
  TAOS_CHECK_RETURN(tEncodeBinary(pEncoder, pRsp->metaRsp, pRsp->metaRspLen));
1,268!
12785
  return 0;
634✔
12786
}
12787

12788
int32_t tDecodeMqMetaRsp(SDecoder *pDecoder, SMqMetaRsp *pRsp) {
439✔
12789
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
439!
12790
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->resMsgType));
878!
12791
  TAOS_CHECK_RETURN(tDecodeBinaryAlloc(pDecoder, &pRsp->metaRsp, (uint64_t *)&pRsp->metaRspLen));
878!
12792
  return 0;
439✔
12793
}
12794

12795
void tDeleteMqMetaRsp(SMqMetaRsp *pRsp) { taosMemoryFree(pRsp->metaRsp); }
622!
12796

12797
int32_t tEncodeMqDataRspCommon(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
75,162✔
12798
  int32_t code = 0;
75,162✔
12799
  int32_t lino;
12800

12801
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->reqOffset));
75,162!
12802
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
75,156!
12803
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->blockNum));
150,310!
12804
  if (pRsp->blockNum != 0) {
75,155✔
12805
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withTbName));
105,458!
12806
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withSchema));
105,458!
12807

12808
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
1,424,737✔
12809
      int32_t bLen = *(int32_t *)taosArrayGet(pRsp->blockDataLen, i);
1,374,159✔
12810
      void   *data = taosArrayGetP(pRsp->blockData, i);
1,373,489✔
12811
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, (const uint8_t *)data, bLen));
2,747,104!
12812
      if (pRsp->withSchema) {
1,373,552✔
12813
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosArrayGetP(pRsp->blockSchema, i);
238,478✔
12814
        TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pEncoder, pSW));
237,794!
12815
      }
12816
      if (pRsp->withTbName) {
1,372,868✔
12817
        char *tbName = (char *)taosArrayGetP(pRsp->blockTbName, i);
239,462✔
12818
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, tbName));
238,602!
12819
      }
12820
    }
12821
  }
12822

12823
_exit:
73,004✔
12824
  return code;
73,004✔
12825
}
12826

12827
int32_t tEncodeMqDataRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
75,101✔
12828
  TAOS_CHECK_RETURN(tEncodeMqDataRspCommon(pEncoder, pRsp));
75,101!
12829
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->sleepTime));
150,208!
12830

12831
  return 0;
75,104✔
12832
}
12833

12834
int32_t tDecodeMqDataRspCommon(SDecoder *pDecoder, SMqDataRsp *pRsp) {
36,236✔
12835
  int32_t code = 0;
36,236✔
12836
  int32_t lino;
12837

12838
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
36,236!
12839
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
36,236!
12840
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
72,472!
12841

12842
  if (pRsp->blockNum != 0) {
36,236✔
12843
    if ((pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
25,919!
12844
      TAOS_CHECK_EXIT(terrno);
×
12845
    }
12846
    if ((pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(int32_t))) == NULL) {
25,919!
12847
      TAOS_CHECK_EXIT(terrno);
×
12848
    }
12849
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withTbName));
51,838!
12850
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withSchema));
51,838!
12851
    if (pRsp->withTbName) {
25,919✔
12852
      if ((pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
3,289!
12853
        TAOS_CHECK_EXIT(terrno);
×
12854
      }
12855
    }
12856
    if (pRsp->withSchema) {
25,919✔
12857
      if ((pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
3,289!
12858
        TAOS_CHECK_EXIT(terrno);
×
12859
      }
12860
    }
12861

12862
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
393,661✔
12863
      void    *data = NULL;
367,748✔
12864
      uint32_t bLen = 0;
367,748✔
12865
      TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, (uint8_t **)&data, &bLen));
367,704!
12866
      if (taosArrayPush(pRsp->blockData, &data) == NULL) {
735,391!
12867
        TAOS_CHECK_EXIT(terrno);
×
12868
      }
12869
      pRsp->blockDataElementFree = false;
367,687✔
12870

12871
      int32_t len = bLen;
367,687✔
12872
      if (taosArrayPush(pRsp->blockDataLen, &len) == NULL) {
735,339!
12873
        TAOS_CHECK_EXIT(terrno);
×
12874
      }
12875

12876
      if (pRsp->withSchema) {
367,652✔
12877
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosMemoryCalloc(1, sizeof(SSchemaWrapper));
118,376!
12878
        if (pSW == NULL) {
118,481!
12879
          TAOS_CHECK_EXIT(terrno);
×
12880
        }
12881

12882
        if ((code = tDecodeSSchemaWrapper(pDecoder, pSW))) {
236,797!
12883
          taosMemoryFree(pSW);
×
12884
          goto _exit;
×
12885
        }
12886

12887
        if (taosArrayPush(pRsp->blockSchema, &pSW) == NULL) {
236,742!
12888
          taosMemoryFree(pSW);
×
12889
          TAOS_CHECK_EXIT(terrno);
×
12890
        }
12891
      }
12892

12893
      if (pRsp->withTbName) {
367,702✔
12894
        char *tbName;
12895
        TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &tbName));
118,495!
12896
        if (taosArrayPush(pRsp->blockTbName, &tbName) == NULL) {
236,959!
12897
          TAOS_CHECK_EXIT(terrno);
×
12898
        }
12899
      }
12900
    }
12901
  }
12902

12903
_exit:
36,230✔
12904
  return code;
36,230✔
12905
}
12906

12907
int32_t tDecodeMqDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
36,207✔
12908
  TAOS_CHECK_RETURN(tDecodeMqDataRspCommon(pDecoder, pRsp));
36,207!
12909
  if (!tDecodeIsEnd(pDecoder)) {
36,207!
12910
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->sleepTime));
72,414!
12911
  }
12912

12913
  return 0;
36,207✔
12914
}
12915

12916
int32_t tDecodeMqRawDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
×
12917
  int32_t code = 0;
×
12918
  int32_t lino;
12919

12920
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
×
12921
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
×
12922
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
×
12923
_exit:
×
12924
  return code;
×
12925
}
12926

12927
static void tDeleteMqDataRspCommon(SMqDataRsp *pRsp) {
121,502✔
12928
  taosArrayDestroy(pRsp->blockDataLen);
121,502✔
12929
  pRsp->blockDataLen = NULL;
121,506✔
12930
  if (pRsp->blockDataElementFree) {
121,506✔
12931
    taosArrayDestroyP(pRsp->blockData, NULL);
26,325✔
12932
  } else {
12933
    taosArrayDestroy(pRsp->blockData);
95,181✔
12934
  }
12935
  pRsp->blockData = NULL;
121,508✔
12936
  taosArrayDestroyP(pRsp->blockSchema, (FDelete)tDeleteSchemaWrapper);
121,508✔
12937
  pRsp->blockSchema = NULL;
121,509✔
12938
  taosArrayDestroyP(pRsp->blockTbName, NULL);
121,509✔
12939
  pRsp->blockTbName = NULL;
121,511✔
12940
  tOffsetDestroy(&pRsp->reqOffset);
121,511✔
12941
  tOffsetDestroy(&pRsp->rspOffset);
121,508✔
12942
  taosMemoryFreeClear(pRsp->data);
121,507!
12943
}
121,508✔
12944

12945
void tDeleteMqDataRsp(SMqDataRsp *rsp) { tDeleteMqDataRspCommon(rsp); }
108,860✔
12946

12947
int32_t tEncodeSTaosxRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
58✔
12948
  int32_t code = 0;
58✔
12949
  int32_t lino = 0;
58✔
12950

12951
  TAOS_CHECK_EXIT(tEncodeMqDataRspCommon(pEncoder, pRsp));
58!
12952
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->createTableNum));
116!
12953
  if (pRsp->createTableNum) {
58!
12954
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
158✔
12955
      void   *createTableReq = taosArrayGetP(pRsp->createTableReq, i);
100✔
12956
      int32_t createTableLen = *(int32_t *)taosArrayGet(pRsp->createTableLen, i);
100✔
12957
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, createTableReq, createTableLen));
200!
12958
    }
12959
  }
12960

12961
_exit:
58✔
12962
  return code;
58✔
12963
}
12964

12965
int32_t tDecodeSTaosxRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
29✔
12966
  int32_t code = 0;
29✔
12967
  int32_t lino;
12968

12969
  TAOS_CHECK_EXIT(tDecodeMqDataRspCommon(pDecoder, pRsp));
29!
12970
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->createTableNum));
58!
12971
  if (pRsp->createTableNum) {
29!
12972
    if ((pRsp->createTableLen = taosArrayInit(pRsp->createTableNum, sizeof(int32_t))) == NULL) {
29!
12973
      TAOS_CHECK_EXIT(terrno);
×
12974
    }
12975
    if ((pRsp->createTableReq = taosArrayInit(pRsp->createTableNum, sizeof(void *))) == NULL) {
29!
12976
      TAOS_CHECK_EXIT(terrno);
×
12977
    }
12978
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
79✔
12979
      void    *pCreate = NULL;
50✔
12980
      uint64_t len = 0;
50✔
12981
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
50!
12982
      int32_t l = (int32_t)len;
50✔
12983
      if (taosArrayPush(pRsp->createTableLen, &l) == NULL) {
100!
12984
        TAOS_CHECK_EXIT(terrno);
×
12985
      }
12986
      if (taosArrayPush(pRsp->createTableReq, &pCreate) == NULL) {
100!
12987
        TAOS_CHECK_EXIT(terrno);
×
12988
      }
12989
    }
12990
  }
12991
_exit:
29✔
12992
  return code;
29✔
12993
}
12994

12995
void tDeleteSTaosxRsp(SMqDataRsp *pRsp) {
12,642✔
12996
  tDeleteMqDataRspCommon(pRsp);
12,642✔
12997

12998
  taosArrayDestroy(pRsp->createTableLen);
12,647✔
12999
  pRsp->createTableLen = NULL;
12,649✔
13000
  taosArrayDestroyP(pRsp->createTableReq, NULL);
12,649✔
13001
  pRsp->createTableReq = NULL;
12,649✔
13002
}
12,649✔
13003

13004
void tDeleteMqRawDataRsp(SMqDataRsp *pRsp) {
×
13005
  tOffsetDestroy(&pRsp->reqOffset);
×
13006
  tOffsetDestroy(&pRsp->rspOffset);
×
13007
  if (pRsp->rawData != NULL) {
×
13008
    taosMemoryFree(POINTER_SHIFT(pRsp->rawData, -sizeof(SMqRspHead)));
×
13009
  }
13010
}
×
13011

13012
int32_t tEncodeSSingleDeleteReq(SEncoder *pEncoder, const SSingleDeleteReq *pReq) {
5,175✔
13013
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->tbname));
10,350!
13014
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->startTs));
10,350!
13015
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->endTs));
10,350!
13016
  return 0;
5,175✔
13017
}
13018

13019
int32_t tDecodeSSingleDeleteReq(SDecoder *pDecoder, SSingleDeleteReq *pReq) {
5,176✔
13020
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->tbname));
5,176!
13021
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->startTs));
10,354!
13022
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->endTs));
10,353!
13023
  return 0;
5,176✔
13024
}
13025

13026
int32_t tEncodeSBatchDeleteReq(SEncoder *pEncoder, const SBatchDeleteReq *pReq) {
3,518✔
13027
  int32_t code = 0;
3,518✔
13028
  int32_t lino;
13029

13030
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->suid));
7,036!
13031
  int32_t sz = taosArrayGetSize(pReq->deleteReqs);
3,518✔
13032
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, sz));
3,515!
13033
  for (int32_t i = 0; i < sz; i++) {
8,695✔
13034
    SSingleDeleteReq *pOneReq = taosArrayGet(pReq->deleteReqs, i);
5,177✔
13035
    TAOS_CHECK_EXIT(tEncodeSSingleDeleteReq(pEncoder, pOneReq));
5,174!
13036
  }
13037
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
7,036!
13038
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->level));
7,036!
13039
_exit:
3,518✔
13040
  return code;
3,518✔
13041
}
13042

13043
static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
3,519✔
13044
  int32_t code = 0;
3,519✔
13045
  int32_t lino;
13046

13047
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->suid));
7,039!
13048
  int32_t sz;
13049
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &sz));
3,519!
13050
  pReq->deleteReqs = taosArrayInit(0, sizeof(SSingleDeleteReq));
3,519✔
13051
  if (pReq->deleteReqs == NULL) {
3,517!
13052
    TAOS_CHECK_EXIT(terrno);
×
13053
  }
13054
  for (int32_t i = 0; i < sz; i++) {
8,693✔
13055
    SSingleDeleteReq deleteReq;
13056
    TAOS_CHECK_EXIT(tDecodeSSingleDeleteReq(pDecoder, &deleteReq));
5,176!
13057
    if (taosArrayPush(pReq->deleteReqs, &deleteReq) == NULL) {
10,352!
13058
      TAOS_CHECK_EXIT(terrno);
×
13059
    }
13060
  }
13061
_exit:
3,517✔
13062
  return code;
3,517✔
13063
}
13064

13065
int32_t tDecodeSBatchDeleteReq(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
1,758✔
13066
  int32_t code = 0;
1,758✔
13067
  int32_t lino;
13068

13069
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
1,758!
13070

13071
  pReq->ctimeMs = 0;
1,758✔
13072
  if (!tDecodeIsEnd(pDecoder)) {
1,758!
13073
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
3,518!
13074
  }
13075
  if (!tDecodeIsEnd(pDecoder)) {
1,758!
13076
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->level));
3,518!
13077
  }
13078

13079
_exit:
1,758✔
13080
  return code;
1,758✔
13081
}
13082

13083
int32_t tDecodeSBatchDeleteReqSetCtime(SDecoder *pDecoder, SBatchDeleteReq *pReq, int64_t ctimeMs) {
1,761✔
13084
  int32_t code = 0;
1,761✔
13085
  int32_t lino;
13086

13087
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
1,761!
13088

13089
  pReq->ctimeMs = 0;
1,761✔
13090
  if (!tDecodeIsEnd(pDecoder)) {
1,761!
13091
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
1,761✔
13092
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
3,522!
13093
  }
13094

13095
_exit:
1,761✔
13096
  return code;
1,761✔
13097
}
13098
int32_t transformRawSSubmitTbData(void *data, int64_t suid, int64_t uid, int32_t sver) {
×
13099
  int32_t  code = 0;
×
13100
  int32_t  lino = 0;
×
13101
  SDecoder decoder = {0};
×
13102
  tDecoderInit(&decoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t *)data);
×
13103

13104
  int32_t flags = 0;
×
13105
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &flags));
×
13106
  flags |= TD_REQ_FROM_TAOX;
×
13107
  flags &= ~SUBMIT_REQ_AUTO_CREATE_TABLE;
×
13108

13109
  SEncoder encoder = {0};
×
13110
  tEncoderInit(&encoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t *)data);
×
13111
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, flags));
×
13112
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, suid));
×
13113
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, uid));
×
13114
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, sver));
×
13115
_exit:
×
13116
  return code;
×
13117
}
13118

13119
static int32_t tEncodeSSubmitTbData(SEncoder *pCoder, const SSubmitTbData *pSubmitTbData) {
19,898,519✔
13120
  int32_t code = 0;
19,898,519✔
13121
  int32_t lino;
13122

13123
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
19,898,519!
13124

13125
  int32_t flags = pSubmitTbData->flags | ((SUBMIT_REQUEST_VERSION) << 8);
19,950,543✔
13126
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, flags));
19,950,543!
13127

13128
  // auto create table
13129
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
19,950,543✔
13130
    if (!(pSubmitTbData->pCreateTbReq)) {
185,856!
13131
      uError("auto create table but request is NULL");
×
13132
      return TSDB_CODE_INVALID_MSG;
×
13133
    }
13134
    TAOS_CHECK_EXIT(tEncodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
185,856!
13135
  }
13136

13137
  // submit data
13138
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->suid));
39,901,056!
13139
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->uid));
39,901,056!
13140
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pSubmitTbData->sver));
39,901,056!
13141

13142
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
19,950,528✔
13143
    uint64_t  nColData = TARRAY_SIZE(pSubmitTbData->aCol);
81,810✔
13144
    SColData *aColData = (SColData *)TARRAY_DATA(pSubmitTbData->aCol);
81,810✔
13145

13146
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, nColData));
81,810!
13147

13148
    for (uint64_t i = 0; i < nColData; i++) {
333,913✔
13149
      TAOS_CHECK_EXIT(tEncodeColData(SUBMIT_REQUEST_VERSION, pCoder, &aColData[i]));
252,050!
13150
    }
13151
  } else {
13152
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, TARRAY_SIZE(pSubmitTbData->aRowP)));
39,737,436!
13153

13154
    SRow **rows = (SRow **)TARRAY_DATA(pSubmitTbData->aRowP);
19,868,718✔
13155
    for (int32_t iRow = 0; iRow < TARRAY_SIZE(pSubmitTbData->aRowP); ++iRow) {
1,821,750,506✔
13156
      TAOS_CHECK_EXIT(tEncodeRow(pCoder, rows[iRow]));
1,802,017,914!
13157
    }
13158
  }
13159
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->ctimeMs));
39,628,910!
13160

13161
  tEndEncode(pCoder);
19,814,455✔
13162
_exit:
19,938,228✔
13163
  return code;
19,938,228✔
13164
}
13165

13166
static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbData, void *rawData) {
16,585,305✔
13167
  int32_t code = 0;
16,585,305✔
13168
  int32_t lino;
13169
  int32_t flags;
13170
  uint8_t version;
13171

13172
  uint8_t *dataAfterCreate = NULL;
16,585,305✔
13173
  uint8_t *dataStart = pCoder->data + pCoder->pos;
16,585,305✔
13174
  uint32_t posAfterCreate = 0;
16,585,305✔
13175

13176
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
16,585,305!
13177
  uint32_t pos = pCoder->pos;
16,585,785✔
13178
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &flags));
16,585,368!
13179
  uint32_t flagsLen = pCoder->pos - pos;
16,585,368✔
13180

13181
  pSubmitTbData->flags = flags & 0xff;
16,585,368✔
13182
  version = (flags >> 8) & 0xff;
16,585,368✔
13183

13184
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
16,585,368✔
13185
    pSubmitTbData->pCreateTbReq = taosMemoryCalloc(1, sizeof(SVCreateTbReq));
101,267!
13186
    if (pSubmitTbData->pCreateTbReq == NULL) {
101,275!
13187
      TAOS_CHECK_EXIT(terrno);
×
13188
    }
13189

13190
    TAOS_CHECK_EXIT(tDecodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
101,275!
13191
    dataAfterCreate = pCoder->data + pCoder->pos;
101,259✔
13192
    posAfterCreate = pCoder->pos;
101,259✔
13193
  }
13194

13195
  // submit data
13196
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->suid));
33,170,378!
13197
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->uid));
33,169,741!
13198
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pSubmitTbData->sver));
33,169,255!
13199

13200
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
16,584,532✔
13201
    uint64_t nColData = 0;
14,062✔
13202

13203
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nColData));
14,062!
13204

13205
    pSubmitTbData->aCol = taosArrayInit(nColData, sizeof(SColData));
14,062✔
13206
    if (pSubmitTbData->aCol == NULL) {
14,062!
13207
      TAOS_CHECK_EXIT(terrno);
×
13208
    }
13209

13210
    for (int32_t i = 0; i < nColData; ++i) {
56,604✔
13211
      TAOS_CHECK_EXIT(tDecodeColData(version, pCoder, taosArrayReserve(pSubmitTbData->aCol, 1)));
42,548!
13212
    }
13213
  } else {
13214
    uint64_t nRow = 0;
16,570,470✔
13215
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nRow));
16,570,539!
13216

13217
    pSubmitTbData->aRowP = taosArrayInit(nRow, sizeof(SRow *));
16,570,539✔
13218
    if (pSubmitTbData->aRowP == NULL) {
16,571,844✔
13219
      TAOS_CHECK_EXIT(terrno);
5!
13220
    }
13221

13222
    for (int32_t iRow = 0; iRow < nRow; ++iRow) {
904,336,769✔
13223
      SRow **ppRow = taosArrayReserve(pSubmitTbData->aRowP, 1);
887,896,878✔
13224
      if (ppRow == NULL) {
887,802,425!
13225
        TAOS_CHECK_EXIT(terrno);
×
13226
      }
13227

13228
      TAOS_CHECK_EXIT(tDecodeRow(pCoder, ppRow));
887,802,425!
13229
    }
13230
  }
13231

13232
  pSubmitTbData->ctimeMs = 0;
16,453,947✔
13233
  if (!tDecodeIsEnd(pCoder)) {
16,453,947!
13234
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->ctimeMs));
33,170,304!
13235
  }
13236

13237
  if (rawData != NULL) {
16,454,073!
13238
    if (dataAfterCreate != NULL) {
×
13239
      TAOS_MEMCPY(dataAfterCreate - INT_BYTES - flagsLen, dataStart, INT_BYTES + flagsLen);
×
13240
      *(int32_t *)(dataAfterCreate - INT_BYTES - flagsLen) = pCoder->pos - posAfterCreate + flagsLen;
×
13241
      *(void **)rawData = dataAfterCreate - INT_BYTES - flagsLen;
×
13242
    } else {
13243
      *(void **)rawData = dataStart;
×
13244
    }
13245
  }
13246
  tEndDecode(pCoder);
16,454,073✔
13247

13248
_exit:
16,585,223✔
13249
  return code;
16,585,223✔
13250
}
13251

13252
int32_t tEncodeSubmitReq(SEncoder *pCoder, const SSubmitReq2 *pReq) {
19,661,410✔
13253
  int32_t code = 0;
19,661,410✔
13254
  int32_t lino;
13255

13256
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
19,661,410!
13257
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pReq->aSubmitTbData)));
39,326,064!
13258
  if (pReq->raw) {
19,662,727!
13259
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
×
13260
      void *data = taosArrayGetP(pReq->aSubmitTbData, i);
×
13261
      if (pCoder->data != NULL) {
×
13262
        TAOS_MEMCPY(pCoder->data + pCoder->pos, data, *(uint32_t *)data + INT_BYTES);
×
13263
      }
13264
      pCoder->pos += *(uint32_t *)data + INT_BYTES;
×
13265
    }
13266
  } else {
13267
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
39,607,913✔
13268
      SSubmitTbData *pSubmitTbData = taosArrayGet(pReq->aSubmitTbData, i);
19,918,697✔
13269
      if ((pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) && pSubmitTbData->pCreateTbReq == NULL) {
19,903,476✔
13270
        pSubmitTbData->flags &= ~SUBMIT_REQ_AUTO_CREATE_TABLE;
52✔
13271
      }
13272
      TAOS_CHECK_EXIT(tEncodeSSubmitTbData(pCoder, pSubmitTbData));
19,903,476!
13273
    }
13274
  }
13275

13276
  tEndEncode(pCoder);
19,605,305✔
13277
_exit:
19,698,647✔
13278
  return code;
19,698,647✔
13279
}
13280

13281
int32_t tDecodeSubmitReq(SDecoder *pCoder, SSubmitReq2 *pReq, SArray *rawList) {
15,569,252✔
13282
  int32_t code = 0;
15,569,252✔
13283

13284
  memset(pReq, 0, sizeof(*pReq));
15,569,252✔
13285

13286
  // decode
13287
  if (tStartDecode(pCoder) < 0) {
15,569,252!
13288
    code = TSDB_CODE_INVALID_MSG;
×
13289
    goto _exit;
×
13290
  }
13291

13292
  uint64_t nSubmitTbData;
13293
  if (tDecodeU64v(pCoder, &nSubmitTbData) < 0) {
15,569,525!
13294
    code = TSDB_CODE_INVALID_MSG;
×
13295
    goto _exit;
×
13296
  }
13297

13298
  pReq->aSubmitTbData = taosArrayInit(nSubmitTbData, sizeof(SSubmitTbData));
15,569,525✔
13299
  if (pReq->aSubmitTbData == NULL) {
15,569,371!
13300
    code = terrno;
×
13301
    goto _exit;
×
13302
  }
13303

13304
  for (uint64_t i = 0; i < nSubmitTbData; i++) {
32,154,636✔
13305
    SSubmitTbData *data = taosArrayReserve(pReq->aSubmitTbData, 1);
16,585,612✔
13306
    if (tDecodeSSubmitTbData(pCoder, data, rawList != NULL ? taosArrayReserve(rawList, 1) : NULL) < 0) {
16,585,447!
13307
      code = TSDB_CODE_INVALID_MSG;
×
13308
      goto _exit;
×
13309
    }
13310
  }
13311

13312
  tEndDecode(pCoder);
15,569,024✔
13313

13314
_exit:
15,568,917✔
13315
  return code;
15,568,917✔
13316
}
13317

13318
void tDestroySubmitTbData(SSubmitTbData *pTbData, int32_t flag) {
26,715,831✔
13319
  if (NULL == pTbData) {
26,715,831✔
13320
    return;
20,736✔
13321
  }
13322

13323
  if (flag == TSDB_MSG_FLG_ENCODE || flag == TSDB_MSG_FLG_CMPT) {
26,695,095✔
13324
    if (pTbData->pCreateTbReq) {
10,109,457✔
13325
      if (flag == TSDB_MSG_FLG_ENCODE) {
162,260!
13326
        tdDestroySVCreateTbReq(pTbData->pCreateTbReq);
162,266!
13327
      } else {
13328
        tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
×
13329
      }
13330
      taosMemoryFreeClear(pTbData->pCreateTbReq);
162,240!
13331
    }
13332

13333
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
10,109,477✔
13334
      int32_t   nColData = TARRAY_SIZE(pTbData->aCol);
122,795✔
13335
      SColData *aColData = (SColData *)TARRAY_DATA(pTbData->aCol);
122,795✔
13336

13337
      for (int32_t i = 0; i < nColData; ++i) {
377,368✔
13338
        tColDataDestroy(&aColData[i]);
254,556✔
13339
      }
13340
      taosArrayDestroy(pTbData->aCol);
122,812✔
13341
    } else {
13342
      int32_t nRow = TARRAY_SIZE(pTbData->aRowP);
9,986,682✔
13343
      SRow  **rows = (SRow **)TARRAY_DATA(pTbData->aRowP);
9,986,682✔
13344

13345
      for (int32_t i = 0; i < nRow; ++i) {
914,052,347✔
13346
        tRowDestroy(rows[i]);
904,298,303✔
13347
        rows[i] = NULL;
904,065,665✔
13348
      }
13349
      taosArrayDestroy(pTbData->aRowP);
9,754,044✔
13350
    }
13351
  } else if (flag == TSDB_MSG_FLG_DECODE) {
16,585,638✔
13352
    if (pTbData->pCreateTbReq) {
16,585,509✔
13353
      tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
101,071✔
13354
      taosMemoryFree(pTbData->pCreateTbReq);
101,073!
13355
    }
13356

13357
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
16,585,486✔
13358
      taosArrayDestroy(pTbData->aCol);
14,064✔
13359
    } else {
13360
      taosArrayDestroy(pTbData->aRowP);
16,571,422✔
13361
    }
13362
  }
13363

13364
  pTbData->aRowP = NULL;
26,697,872✔
13365
}
13366

13367
void tDestroySubmitReq(SSubmitReq2 *pReq, int32_t flag) {
25,615,246✔
13368
  if (pReq->aSubmitTbData == NULL) return;
25,615,246✔
13369

13370
  if (!pReq->raw) {
25,449,510!
13371
    int32_t        nSubmitTbData = TARRAY_SIZE(pReq->aSubmitTbData);
25,451,721✔
13372
    SSubmitTbData *aSubmitTbData = (SSubmitTbData *)TARRAY_DATA(pReq->aSubmitTbData);
25,451,721✔
13373

13374
    for (int32_t i = 0; i < nSubmitTbData; i++) {
52,051,299✔
13375
      tDestroySubmitTbData(&aSubmitTbData[i], flag);
26,597,707✔
13376
    }
13377
  }
13378

13379
  taosArrayDestroy(pReq->aSubmitTbData);
25,451,381✔
13380
  pReq->aSubmitTbData = NULL;
25,455,852✔
13381
}
13382

13383
int32_t tEncodeSSubmitRsp2(SEncoder *pCoder, const SSubmitRsp2 *pRsp) {
28,896,397✔
13384
  int32_t code = 0;
28,896,397✔
13385
  int32_t lino;
13386

13387
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
28,896,397!
13388

13389
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRsp->affectedRows));
57,792,740!
13390

13391
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pRsp->aCreateTbRsp)));
57,792,777!
13392
  for (int32_t i = 0; i < taosArrayGetSize(pRsp->aCreateTbRsp); ++i) {
29,072,811✔
13393
    TAOS_CHECK_EXIT(tEncodeSVCreateTbRsp(pCoder, taosArrayGet(pRsp->aCreateTbRsp, i)));
176,405!
13394
  }
13395

13396
  tEndEncode(pCoder);
28,896,345✔
13397
_exit:
28,896,393✔
13398
  return code;
28,896,393✔
13399
}
13400

13401
int32_t tDecodeSSubmitRsp2(SDecoder *pCoder, SSubmitRsp2 *pRsp) {
9,835,291✔
13402
  int32_t code = 0;
9,835,291✔
13403

13404
  memset(pRsp, 0, sizeof(SSubmitRsp2));
9,835,291✔
13405

13406
  // decode
13407
  if (tStartDecode(pCoder) < 0) {
9,835,291✔
13408
    code = TSDB_CODE_INVALID_MSG;
10✔
13409
    goto _exit;
10✔
13410
  }
13411

13412
  if (tDecodeI32v(pCoder, &pRsp->affectedRows) < 0) {
19,729,223!
13413
    code = TSDB_CODE_INVALID_MSG;
×
13414
    goto _exit;
×
13415
  }
13416

13417
  uint64_t nCreateTbRsp;
13418
  if (tDecodeU64v(pCoder, &nCreateTbRsp) < 0) {
9,858,394!
13419
    code = TSDB_CODE_INVALID_MSG;
×
13420
    goto _exit;
×
13421
  }
13422

13423
  if (nCreateTbRsp) {
9,858,394✔
13424
    pRsp->aCreateTbRsp = taosArrayInit(nCreateTbRsp, sizeof(SVCreateTbRsp));
75,988✔
13425
    if (pRsp->aCreateTbRsp == NULL) {
75,984!
13426
      code = terrno;
×
13427
      goto _exit;
×
13428
    }
13429

13430
    for (int32_t i = 0; i < nCreateTbRsp; ++i) {
157,849✔
13431
      SVCreateTbRsp *pCreateTbRsp = taosArrayReserve(pRsp->aCreateTbRsp, 1);
81,867✔
13432
      if (tDecodeSVCreateTbRsp(pCoder, pCreateTbRsp) < 0) {
81,867!
13433
        code = TSDB_CODE_INVALID_MSG;
×
13434
        goto _exit;
×
13435
      }
13436
    }
13437
  }
13438

13439
  tEndDecode(pCoder);
9,858,388✔
13440

13441
_exit:
9,841,624✔
13442
  if (code) {
9,841,624✔
13443
    if (pRsp->aCreateTbRsp) {
10!
13444
      taosArrayDestroyEx(pRsp->aCreateTbRsp, NULL /* todo */);
×
13445
    }
13446
  }
13447
  return code;
9,844,121✔
13448
}
13449

13450
void tDestroySSubmitRsp2(SSubmitRsp2 *pRsp, int32_t flag) {
33,946,834✔
13451
  if (NULL == pRsp) {
33,946,834✔
13452
    return;
9,710,255✔
13453
  }
13454

13455
  if (flag & TSDB_MSG_FLG_ENCODE) {
24,236,579✔
13456
    if (pRsp->aCreateTbRsp) {
14,448,222✔
13457
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
71,290✔
13458
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
71,290✔
13459
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
159,494✔
13460
        if (aCreateTbRsp[i].pMeta) {
88,204✔
13461
          taosMemoryFree(aCreateTbRsp[i].pMeta);
78,981!
13462
        }
13463
      }
13464
      taosArrayDestroy(pRsp->aCreateTbRsp);
71,290✔
13465
    }
13466
  } else if (flag & TSDB_MSG_FLG_DECODE) {
9,788,357!
13467
    if (pRsp->aCreateTbRsp) {
9,838,667✔
13468
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
75,749✔
13469
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
75,749✔
13470
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
157,610✔
13471
        if (aCreateTbRsp[i].pMeta) {
81,857✔
13472
          taosMemoryFree(aCreateTbRsp[i].pMeta);
60,471!
13473
        }
13474
      }
13475
      taosArrayDestroy(pRsp->aCreateTbRsp);
75,753✔
13476
    }
13477
  }
13478
}
13479

13480
int32_t tSerializeSMPauseStreamReq(void *buf, int32_t bufLen, const SMPauseStreamReq *pReq) {
76✔
13481
  int32_t  code = 0;
76✔
13482
  int32_t  lino;
13483
  int32_t  tlen;
13484
  SEncoder encoder = {0};
76✔
13485
  tEncoderInit(&encoder, buf, bufLen);
76✔
13486
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
76!
13487
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
152!
13488
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
152!
13489
  tEndEncode(&encoder);
76✔
13490

13491
_exit:
76✔
13492
  if (code) {
76!
13493
    tlen = code;
×
13494
  } else {
13495
    tlen = encoder.pos;
76✔
13496
  }
13497
  tEncoderClear(&encoder);
76✔
13498
  return tlen;
76✔
13499
}
13500

13501
int32_t tDeserializeSMPauseStreamReq(void *buf, int32_t bufLen, SMPauseStreamReq *pReq) {
34✔
13502
  SDecoder decoder = {0};
34✔
13503
  int32_t  code = 0;
34✔
13504
  int32_t  lino;
13505

13506
  tDecoderInit(&decoder, buf, bufLen);
34✔
13507
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
34!
13508
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
34!
13509
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
68!
13510
  tEndDecode(&decoder);
34✔
13511

13512
_exit:
34✔
13513
  tDecoderClear(&decoder);
34✔
13514
  return code;
34✔
13515
}
13516

13517
int32_t tSerializeSMResumeStreamReq(void *buf, int32_t bufLen, const SMResumeStreamReq *pReq) {
74✔
13518
  SEncoder encoder = {0};
74✔
13519
  int32_t  code = 0;
74✔
13520
  int32_t  lino;
13521
  int32_t  tlen;
13522
  tEncoderInit(&encoder, buf, bufLen);
74✔
13523
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
74!
13524
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
148!
13525
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
148!
13526
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUntreated));
148!
13527
  tEndEncode(&encoder);
74✔
13528

13529
_exit:
74✔
13530
  if (code) {
74!
13531
    tlen = code;
×
13532
  } else {
13533
    tlen = encoder.pos;
74✔
13534
  }
13535
  tEncoderClear(&encoder);
74✔
13536
  return tlen;
74✔
13537
}
13538

13539
int32_t tDeserializeSMResumeStreamReq(void *buf, int32_t bufLen, SMResumeStreamReq *pReq) {
33✔
13540
  SDecoder decoder = {0};
33✔
13541
  int32_t  code = 0;
33✔
13542
  int32_t  lino;
13543

13544
  tDecoderInit(&decoder, buf, bufLen);
33✔
13545
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
33!
13546
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
33!
13547
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
66!
13548
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUntreated));
66!
13549
  tEndDecode(&decoder);
33✔
13550

13551
_exit:
33✔
13552
  tDecoderClear(&decoder);
33✔
13553
  return code;
33✔
13554
}
13555

13556
int32_t tSerializeSMResetStreamReq(void *buf, int32_t bufLen, const SMResetStreamReq *pReq) {
×
13557
  SEncoder encoder = {0};
×
13558
  int32_t  code = 0;
×
13559
  int32_t  lino;
13560
  int32_t  tlen;
13561
  tEncoderInit(&encoder, buf, bufLen);
×
13562
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13563
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
13564
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
×
13565
  tEndEncode(&encoder);
×
13566

13567
_exit:
×
13568
  if (code) {
×
13569
    tlen = code;
×
13570
  } else {
13571
    tlen = encoder.pos;
×
13572
  }
13573
  tEncoderClear(&encoder);
×
13574
  return tlen;
×
13575
}
13576

13577
int32_t tDeserializeSMResetStreamReq(void *buf, int32_t bufLen, SMResetStreamReq *pReq) {
×
13578
  SDecoder decoder = {0};
×
13579
  int32_t  code = 0;
×
13580
  int32_t  lino;
13581

13582
  tDecoderInit(&decoder, buf, bufLen);
×
13583
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13584
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
13585
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
×
13586
  tEndDecode(&decoder);
×
13587

13588
_exit:
×
13589
  tDecoderClear(&decoder);
×
13590
  return code;
×
13591
}
13592

13593
int32_t tEncodeMqSubTopicEp(void **buf, const SMqSubTopicEp *pTopicEp) {
7,066✔
13594
  int32_t tlen = 0;
7,066✔
13595
  tlen += taosEncodeString(buf, pTopicEp->topic);
7,066✔
13596
  tlen += taosEncodeString(buf, pTopicEp->db);
7,066✔
13597
  int32_t sz = taosArrayGetSize(pTopicEp->vgs);
7,066✔
13598
  tlen += taosEncodeFixedI32(buf, sz);
7,066✔
13599
  for (int32_t i = 0; i < sz; i++) {
16,314✔
13600
    SMqSubVgEp *pVgEp = (SMqSubVgEp *)taosArrayGet(pTopicEp->vgs, i);
9,248✔
13601
    tlen += tEncodeSMqSubVgEp(buf, pVgEp);
9,248✔
13602
  }
13603
  tlen += taosEncodeSSchemaWrapper(buf, &pTopicEp->schema);
7,066✔
13604
  return tlen;
7,066✔
13605
}
13606

13607
void *tDecodeMqSubTopicEp(void *buf, SMqSubTopicEp *pTopicEp) {
3,433✔
13608
  buf = taosDecodeStringTo(buf, pTopicEp->topic);
3,433✔
13609
  buf = taosDecodeStringTo(buf, pTopicEp->db);
6,866!
13610
  int32_t sz;
13611
  buf = taosDecodeFixedI32(buf, &sz);
3,433✔
13612
  pTopicEp->vgs = taosArrayInit(sz, sizeof(SMqSubVgEp));
3,433✔
13613
  if (pTopicEp->vgs == NULL) {
3,433!
13614
    return NULL;
×
13615
  }
13616
  for (int32_t i = 0; i < sz; i++) {
7,904✔
13617
    SMqSubVgEp vgEp;
13618
    buf = tDecodeSMqSubVgEp(buf, &vgEp);
4,471✔
13619
    if (taosArrayPush(pTopicEp->vgs, &vgEp) == NULL) {
8,942!
13620
      taosArrayDestroy(pTopicEp->vgs);
×
13621
      pTopicEp->vgs = NULL;
×
13622
      return NULL;
×
13623
    }
13624
  }
13625
  buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema);
3,433✔
13626
  return buf;
3,433✔
13627
}
13628

13629
void tDeleteMqSubTopicEp(SMqSubTopicEp *pSubTopicEp) {
6,966✔
13630
  taosMemoryFreeClear(pSubTopicEp->schema.pSchema);
6,966!
13631
  pSubTopicEp->schema.nCols = 0;
6,966✔
13632
  taosArrayDestroy(pSubTopicEp->vgs);
6,966✔
13633
}
6,966✔
13634

13635
int32_t tSerializeSCMCreateViewReq(void *buf, int32_t bufLen, const SCMCreateViewReq *pReq) {
944✔
13636
  SEncoder encoder = {0};
944✔
13637
  int32_t  code = 0;
944✔
13638
  int32_t  lino;
13639
  int32_t  tlen;
13640
  tEncoderInit(&encoder, buf, bufLen);
944✔
13641

13642
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
944!
13643
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
1,888!
13644
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
1,888!
13645
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
1,888!
13646
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->querySql));
1,888!
13647
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
1,888!
13648
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
1,888!
13649
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
1,888!
13650
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfCols));
1,888!
13651
  for (int32_t i = 0; i < pReq->numOfCols; ++i) {
3,704✔
13652
    SSchema *pSchema = &pReq->pSchema[i];
2,760✔
13653
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
2,760!
13654
  }
13655

13656
  tEndEncode(&encoder);
944✔
13657

13658
_exit:
944✔
13659
  if (code) {
944!
13660
    tlen = code;
×
13661
  } else {
13662
    tlen = encoder.pos;
944✔
13663
  }
13664
  tEncoderClear(&encoder);
944✔
13665
  return tlen;
944✔
13666
}
13667

13668
int32_t tDeserializeSCMCreateViewReq(void *buf, int32_t bufLen, SCMCreateViewReq *pReq) {
529✔
13669
  SDecoder decoder = {0};
529✔
13670
  int32_t  code = 0;
529✔
13671
  int32_t  lino;
13672

13673
  tDecoderInit(&decoder, buf, bufLen);
529✔
13674

13675
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
529!
13676
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
529!
13677
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
529!
13678
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
529!
13679
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->querySql));
1,058!
13680
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
1,058!
13681
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
1,058!
13682
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
1,058!
13683
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfCols));
1,058!
13684

13685
  if (pReq->numOfCols > 0) {
529!
13686
    pReq->pSchema = taosMemoryCalloc(pReq->numOfCols, sizeof(SSchema));
529!
13687
    if (pReq->pSchema == NULL) {
529!
13688
      TAOS_CHECK_EXIT(terrno);
×
13689
    }
13690

13691
    for (int32_t i = 0; i < pReq->numOfCols; ++i) {
2,131✔
13692
      SSchema *pSchema = pReq->pSchema + i;
1,602✔
13693
      TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
1,602!
13694
    }
13695
  }
13696

13697
  tEndDecode(&decoder);
529✔
13698

13699
_exit:
529✔
13700
  tDecoderClear(&decoder);
529✔
13701
  return code;
529✔
13702
}
13703

13704
void tFreeSCMCreateViewReq(SCMCreateViewReq *pReq) {
1,584✔
13705
  if (NULL == pReq) {
1,584!
13706
    return;
×
13707
  }
13708

13709
  taosMemoryFreeClear(pReq->querySql);
1,584!
13710
  taosMemoryFreeClear(pReq->sql);
1,584!
13711
  taosMemoryFreeClear(pReq->pSchema);
1,584!
13712
}
13713

13714
int32_t tSerializeSCMDropViewReq(void *buf, int32_t bufLen, const SCMDropViewReq *pReq) {
816✔
13715
  SEncoder encoder = {0};
816✔
13716
  int32_t  code = 0;
816✔
13717
  int32_t  lino;
13718
  int32_t  tlen;
13719
  tEncoderInit(&encoder, buf, bufLen);
816✔
13720

13721
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
816!
13722
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
1,632!
13723
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
1,632!
13724
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
1,632!
13725
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
1,632!
13726
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
1,632!
13727

13728
  tEndEncode(&encoder);
816✔
13729

13730
_exit:
816✔
13731
  if (code) {
816!
13732
    tlen = code;
×
13733
  } else {
13734
    tlen = encoder.pos;
816✔
13735
  }
13736
  tEncoderClear(&encoder);
816✔
13737
  return tlen;
816✔
13738
}
13739

13740
int32_t tDeserializeSCMDropViewReq(void *buf, int32_t bufLen, SCMDropViewReq *pReq) {
468✔
13741
  SDecoder decoder = {0};
468✔
13742
  int32_t  code = 0;
468✔
13743
  int32_t  lino;
13744

13745
  tDecoderInit(&decoder, buf, bufLen);
468✔
13746

13747
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
468!
13748
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
468!
13749
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
468!
13750
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
468!
13751
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
936!
13752
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
936!
13753

13754
  tEndDecode(&decoder);
468✔
13755

13756
_exit:
468✔
13757
  tDecoderClear(&decoder);
468✔
13758
  return code;
468✔
13759
}
13760
void tFreeSCMDropViewReq(SCMDropViewReq *pReq) {
468✔
13761
  if (NULL == pReq) {
468!
13762
    return;
×
13763
  }
13764

13765
  taosMemoryFree(pReq->sql);
468!
13766
}
13767

13768
int32_t tSerializeSViewMetaReq(void *buf, int32_t bufLen, const SViewMetaReq *pReq) {
93,302✔
13769
  SEncoder encoder = {0};
93,302✔
13770
  int32_t  code = 0;
93,302✔
13771
  int32_t  lino;
13772
  int32_t  tlen;
13773
  tEncoderInit(&encoder, buf, bufLen);
93,302✔
13774

13775
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
93,306!
13776
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
186,610!
13777

13778
  tEndEncode(&encoder);
93,305✔
13779

13780
_exit:
93,307✔
13781
  if (code) {
93,307!
13782
    tlen = code;
×
13783
  } else {
13784
    tlen = encoder.pos;
93,307✔
13785
  }
13786
  tEncoderClear(&encoder);
93,307✔
13787
  return tlen;
93,306✔
13788
}
13789

13790
int32_t tDeserializeSViewMetaReq(void *buf, int32_t bufLen, SViewMetaReq *pReq) {
1,546,884✔
13791
  SDecoder decoder = {0};
1,546,884✔
13792
  int32_t  code = 0;
1,546,884✔
13793
  int32_t  lino;
13794

13795
  tDecoderInit(&decoder, buf, bufLen);
1,546,884✔
13796

13797
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,546,883!
13798
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
1,546,896!
13799

13800
  tEndDecode(&decoder);
1,546,885✔
13801

13802
_exit:
1,546,882✔
13803
  tDecoderClear(&decoder);
1,546,882✔
13804
  return code;
1,546,894✔
13805
}
13806

13807
static int32_t tEncodeSViewMetaRsp(SEncoder *pEncoder, const SViewMetaRsp *pRsp) {
862✔
13808
  int32_t code = 0;
862✔
13809
  int32_t lino;
13810

13811
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->name));
1,724!
13812
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->dbFName));
1,724!
13813
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->user));
1,724!
13814
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->dbId));
1,724!
13815
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->viewId));
1,724!
13816
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->querySql));
1,724!
13817
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->precision));
1,724!
13818
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->type));
1,724!
13819
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->version));
1,724!
13820
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->numOfCols));
1,724!
13821
  for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
3,666✔
13822
    SSchema *pSchema = &pRsp->pSchema[i];
2,804✔
13823
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
2,804!
13824
  }
13825

13826
_exit:
862✔
13827
  return code;
862✔
13828
}
13829

13830
int32_t tSerializeSViewMetaRsp(void *buf, int32_t bufLen, const SViewMetaRsp *pRsp) {
862✔
13831
  SEncoder encoder = {0};
862✔
13832
  int32_t  code = 0;
862✔
13833
  int32_t  lino;
13834
  int32_t  tlen;
13835
  tEncoderInit(&encoder, buf, bufLen);
862✔
13836

13837
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
862!
13838
  TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pRsp));
862!
13839

13840
  tEndEncode(&encoder);
862✔
13841

13842
_exit:
862✔
13843
  if (code) {
862!
13844
    tlen = code;
×
13845
  } else {
13846
    tlen = encoder.pos;
862✔
13847
  }
13848
  tEncoderClear(&encoder);
862✔
13849
  return tlen;
862✔
13850
}
13851

13852
static int32_t tDecodeSViewMetaRsp(SDecoder *pDecoder, SViewMetaRsp *pRsp) {
335✔
13853
  int32_t code = 0;
335✔
13854
  int32_t lino;
13855

13856
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->name));
335!
13857
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->dbFName));
335!
13858
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->user));
670!
13859
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->dbId));
670!
13860
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->viewId));
670!
13861
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->querySql));
670!
13862
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->precision));
670!
13863
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->type));
670!
13864
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->version));
670!
13865
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->numOfCols));
670!
13866
  if (pRsp->numOfCols > 0) {
335!
13867
    pRsp->pSchema = taosMemoryCalloc(pRsp->numOfCols, sizeof(SSchema));
335!
13868
    if (pRsp->pSchema == NULL) {
335!
13869
      TAOS_CHECK_EXIT(terrno);
×
13870
    }
13871

13872
    for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
1,416✔
13873
      SSchema *pSchema = pRsp->pSchema + i;
1,081✔
13874
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, pSchema));
1,081!
13875
    }
13876
  }
13877

13878
_exit:
335✔
13879
  return code;
335✔
13880
}
13881

13882
int32_t tDeserializeSViewMetaRsp(void *buf, int32_t bufLen, SViewMetaRsp *pRsp) {
335✔
13883
  SDecoder decoder = {0};
335✔
13884
  int32_t  code = 0;
335✔
13885
  int32_t  lino;
13886

13887
  tDecoderInit(&decoder, buf, bufLen);
335✔
13888

13889
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
335!
13890
  TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, pRsp));
335!
13891

13892
  tEndDecode(&decoder);
335✔
13893

13894
_exit:
335✔
13895
  tDecoderClear(&decoder);
335✔
13896
  return code;
335✔
13897
}
13898

13899
void tFreeSViewMetaRsp(SViewMetaRsp *pRsp) {
766✔
13900
  if (NULL == pRsp) {
766!
13901
    return;
×
13902
  }
13903

13904
  taosMemoryFree(pRsp->user);
766!
13905
  taosMemoryFree(pRsp->querySql);
766!
13906
  taosMemoryFree(pRsp->pSchema);
766!
13907
}
13908

13909
int32_t tSerializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
6✔
13910
  SEncoder encoder = {0};
6✔
13911
  int32_t  code = 0;
6✔
13912
  int32_t  lino;
13913
  int32_t  tlen;
13914
  tEncoderInit(&encoder, buf, bufLen);
6✔
13915

13916
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
13917

13918
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
6✔
13919
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
6!
13920
  for (int32_t i = 0; i < numOfMeta; ++i) {
6!
13921
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
×
13922
    TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pMetaRsp));
×
13923
  }
13924

13925
  tEndEncode(&encoder);
6✔
13926

13927
_exit:
6✔
13928
  if (code) {
6!
13929
    tlen = code;
×
13930
  } else {
13931
    tlen = encoder.pos;
6✔
13932
  }
13933
  tEncoderClear(&encoder);
6✔
13934
  return tlen;
6✔
13935
}
13936

13937
int32_t tDeserializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
3✔
13938
  SDecoder decoder = {0};
3✔
13939
  int32_t  code = 0;
3✔
13940
  int32_t  lino;
13941

13942
  tDecoderInit(&decoder, buf, bufLen);
3✔
13943

13944
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
13945

13946
  int32_t numOfMeta = 0;
3✔
13947
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
3!
13948
  pRsp->pViewRsp = taosArrayInit(numOfMeta, POINTER_BYTES);
3✔
13949
  if (pRsp->pViewRsp == NULL) {
3!
13950
    TAOS_CHECK_EXIT(terrno);
×
13951
  }
13952

13953
  for (int32_t i = 0; i < numOfMeta; ++i) {
3!
13954
    SViewMetaRsp *metaRsp = taosMemoryCalloc(1, sizeof(SViewMetaRsp));
×
13955
    if (NULL == metaRsp) {
×
13956
      TAOS_CHECK_EXIT(terrno);
×
13957
    }
13958
    TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, metaRsp));
×
13959
    if (taosArrayPush(pRsp->pViewRsp, &metaRsp) == NULL) {
×
13960
      TAOS_CHECK_EXIT(terrno);
×
13961
    }
13962
  }
13963

13964
  tEndDecode(&decoder);
3✔
13965

13966
_exit:
3✔
13967
  tDecoderClear(&decoder);
3✔
13968
  return code;
3✔
13969
}
13970

13971
void tFreeSViewHbRsp(SViewHbRsp *pRsp) {
3✔
13972
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
3✔
13973
  for (int32_t i = 0; i < numOfMeta; ++i) {
3!
13974
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
×
13975
    tFreeSViewMetaRsp(pMetaRsp);
×
13976
    taosMemoryFree(pMetaRsp);
×
13977
  }
13978

13979
  taosArrayDestroy(pRsp->pViewRsp);
3✔
13980
}
3✔
13981

13982
void setDefaultOptionsForField(SFieldWithOptions *field) {
8,465✔
13983
  setColEncode(&field->compress, getDefaultEncode(field->type));
8,465✔
13984
  setColCompress(&field->compress, getDefaultCompress(field->type));
8,464✔
13985
  setColLevel(&field->compress, getDefaultLevel(field->type));
8,461✔
13986
}
8,459✔
13987

13988
void setFieldWithOptions(SFieldWithOptions *fieldWithOptions, SField *field) {
8,464✔
13989
  fieldWithOptions->bytes = field->bytes;
8,464✔
13990
  fieldWithOptions->flags = field->flags;
8,464✔
13991
  fieldWithOptions->type = field->type;
8,464✔
13992
  tstrncpy(fieldWithOptions->name, field->name, TSDB_COL_NAME_LEN);
8,464✔
13993
}
8,464✔
13994
int32_t tSerializeTableTSMAInfoReq(void *buf, int32_t bufLen, const STableTSMAInfoReq *pReq) {
2,350✔
13995
  SEncoder encoder = {0};
2,350✔
13996
  int32_t  code = 0;
2,350✔
13997
  int32_t  lino;
13998
  int32_t  tlen;
13999
  tEncoderInit(&encoder, buf, bufLen);
2,350✔
14000

14001
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,350!
14002
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,700!
14003
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fetchingWithTsmaName));
4,700!
14004

14005
  tEndEncode(&encoder);
2,350✔
14006

14007
_exit:
2,350✔
14008
  if (code) {
2,350!
14009
    tlen = code;
×
14010
  } else {
14011
    tlen = encoder.pos;
2,350✔
14012
  }
14013
  tEncoderClear(&encoder);
2,350✔
14014
  return tlen;
2,350✔
14015
}
14016

14017
int32_t tDeserializeTableTSMAInfoReq(void *buf, int32_t bufLen, STableTSMAInfoReq *pReq) {
730✔
14018
  SDecoder decoder = {0};
730✔
14019
  int32_t  code = 0;
730✔
14020
  int32_t  lino;
14021

14022
  tDecoderInit(&decoder, buf, bufLen);
730✔
14023

14024
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
730!
14025
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
730!
14026
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (uint8_t *)&pReq->fetchingWithTsmaName));
1,460!
14027

14028
  tEndDecode(&decoder);
730✔
14029

14030
_exit:
730✔
14031
  tDecoderClear(&decoder);
730✔
14032
  return code;
730✔
14033
}
14034

14035
static int32_t tEncodeTableTSMAInfo(SEncoder *pEncoder, const STableTSMAInfo *pTsmaInfo) {
2,086✔
14036
  int32_t code = 0;
2,086✔
14037
  int32_t lino;
14038

14039
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->name));
4,172!
14040
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->tsmaId));
4,172!
14041
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->tb));
4,172!
14042
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->dbFName));
4,172!
14043
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->suid));
4,172!
14044
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->destTbUid));
4,172!
14045
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->dbId));
4,172!
14046
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTsmaInfo->version));
4,172!
14047
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetTb));
4,172!
14048
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetDbFName));
4,172!
14049
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->interval));
4,172!
14050
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->unit));
4,172!
14051

14052
  int32_t size = pTsmaInfo->pFuncs ? pTsmaInfo->pFuncs->size : 0;
2,086!
14053
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
2,086!
14054
  for (int32_t i = 0; i < size; ++i) {
14,554✔
14055
    STableTSMAFuncInfo *pFuncInfo = taosArrayGet(pTsmaInfo->pFuncs, i);
12,468✔
14056
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pFuncInfo->funcId));
24,936!
14057
    TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pFuncInfo->colId));
24,936!
14058
  }
14059

14060
  size = pTsmaInfo->pTags ? pTsmaInfo->pTags->size : 0;
2,086!
14061
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
2,086!
14062
  for (int32_t i = 0; i < size; ++i) {
16,612✔
14063
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pTags, i);
14,526✔
14064
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
14,526!
14065
  }
14066
  size = pTsmaInfo->pUsedCols ? pTsmaInfo->pUsedCols->size : 0;
2,086!
14067
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
2,086!
14068
  for (int32_t i = 0; i < size; ++i) {
14,554✔
14069
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pUsedCols, i);
12,468✔
14070
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
12,468!
14071
  }
14072

14073
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->ast));
4,172!
14074
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->streamUid));
4,172!
14075
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->reqTs));
4,172!
14076
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->rspTs));
4,172!
14077
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->delayDuration));
4,172!
14078
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->fillHistoryFinished));
4,172!
14079

14080
_exit:
2,086✔
14081
  return code;
2,086✔
14082
}
14083

14084
static int32_t tDecodeTableTSMAInfo(SDecoder *pDecoder, STableTSMAInfo *pTsmaInfo) {
1,774✔
14085
  int32_t code = 0;
1,774✔
14086
  int32_t lino;
14087

14088
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->name));
1,774!
14089
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->tsmaId));
3,548!
14090
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->tb));
1,774!
14091
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->dbFName));
1,774!
14092
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->suid));
3,548!
14093
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->destTbUid));
3,548!
14094
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->dbId));
3,548!
14095
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pTsmaInfo->version));
3,548!
14096
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetTb));
1,774!
14097
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetDbFName));
1,774!
14098
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->interval));
3,548!
14099
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pTsmaInfo->unit));
3,548!
14100
  int32_t size = 0;
1,774✔
14101
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,774!
14102
  if (size > 0) {
1,774✔
14103
    pTsmaInfo->pFuncs = taosArrayInit(size, sizeof(STableTSMAFuncInfo));
1,773✔
14104
    if (!pTsmaInfo->pFuncs) {
1,773!
14105
      TAOS_CHECK_EXIT(terrno);
×
14106
    }
14107
    for (int32_t i = 0; i < size; ++i) {
260,340✔
14108
      STableTSMAFuncInfo funcInfo = {0};
258,567✔
14109
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &funcInfo.funcId));
258,567!
14110
      TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &funcInfo.colId));
258,567!
14111
      if (!taosArrayPush(pTsmaInfo->pFuncs, &funcInfo)) {
517,134!
14112
        TAOS_CHECK_EXIT(terrno);
×
14113
      }
14114
    }
14115
  }
14116

14117
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,774!
14118
  if (size > 0) {
1,774✔
14119
    pTsmaInfo->pTags = taosArrayInit(size, sizeof(SSchema));
1,773✔
14120
    if (!pTsmaInfo->pTags) {
1,773!
14121
      TAOS_CHECK_EXIT(terrno);
×
14122
    }
14123
    for (int32_t i = 0; i < size; ++i) {
13,058✔
14124
      SSchema schema = {0};
11,285✔
14125
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
11,285!
14126
      if (taosArrayPush(pTsmaInfo->pTags, &schema) == NULL) {
22,570!
14127
        TAOS_CHECK_EXIT(terrno);
×
14128
      }
14129
    }
14130
  }
14131

14132
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,774!
14133
  if (size > 0) {
1,774✔
14134
    pTsmaInfo->pUsedCols = taosArrayInit(size, sizeof(SSchema));
1,773✔
14135
    if (!pTsmaInfo->pUsedCols) {
1,773!
14136
      TAOS_CHECK_EXIT(terrno);
×
14137
    }
14138
    for (int32_t i = 0; i < size; ++i) {
260,340✔
14139
      SSchema schema = {0};
258,567✔
14140
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
258,567!
14141
      if (taosArrayPush(pTsmaInfo->pUsedCols, &schema) == NULL) {
517,134!
14142
        TAOS_CHECK_EXIT(terrno);
×
14143
      }
14144
    }
14145
  }
14146
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pTsmaInfo->ast));
3,548!
14147
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->streamUid));
3,548!
14148
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->reqTs));
3,548!
14149
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->rspTs));
3,548!
14150
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->delayDuration));
3,548!
14151
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pTsmaInfo->fillHistoryFinished));
3,548!
14152

14153
_exit:
1,774✔
14154
  return code;
1,774✔
14155
}
14156

14157
static int32_t tEncodeTableTSMAInfoRsp(SEncoder *pEncoder, const STableTSMAInfoRsp *pRsp) {
26,504✔
14158
  int32_t code = 0;
26,504✔
14159
  int32_t lino;
14160

14161
  int32_t size = pRsp->pTsmas ? pRsp->pTsmas->size : 0;
26,504!
14162
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
26,504!
14163
  for (int32_t i = 0; i < size; ++i) {
28,590✔
14164
    STableTSMAInfo *pInfo = taosArrayGetP(pRsp->pTsmas, i);
2,086✔
14165
    TAOS_CHECK_EXIT(tEncodeTableTSMAInfo(pEncoder, pInfo));
2,086!
14166
  }
14167
_exit:
26,504✔
14168
  return code;
26,504✔
14169
}
14170

14171
static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pRsp) {
4,119✔
14172
  int32_t size = 0;
4,119✔
14173
  int32_t code = 0;
4,119✔
14174
  int32_t lino;
14175

14176
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
4,119!
14177
  if (size <= 0) return 0;
4,119✔
14178
  pRsp->pTsmas = taosArrayInit(size, POINTER_BYTES);
1,197✔
14179
  if (!pRsp->pTsmas) {
1,197!
14180
    TAOS_CHECK_EXIT(terrno);
×
14181
  }
14182
  for (int32_t i = 0; i < size; ++i) {
2,971✔
14183
    STableTSMAInfo *pTsma = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
1,774!
14184
    if (!pTsma) {
1,774!
14185
      TAOS_CHECK_EXIT(terrno);
×
14186
    }
14187
    if (taosArrayPush(pRsp->pTsmas, &pTsma) == NULL) {
3,548!
14188
      TAOS_CHECK_EXIT(terrno);
×
14189
    }
14190
    TAOS_CHECK_EXIT(tDecodeTableTSMAInfo(pDecoder, pTsma));
1,774!
14191
  }
14192
_exit:
1,197✔
14193
  return code;
1,197✔
14194
}
14195

14196
int32_t tSerializeTableTSMAInfoRsp(void *buf, int32_t bufLen, const STableTSMAInfoRsp *pRsp) {
1,598✔
14197
  SEncoder encoder = {0};
1,598✔
14198
  int32_t  code = 0;
1,598✔
14199
  int32_t  lino;
14200
  int32_t  tlen;
14201
  tEncoderInit(&encoder, buf, bufLen);
1,598✔
14202

14203
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,598!
14204
  TAOS_CHECK_EXIT(tEncodeTableTSMAInfoRsp(&encoder, pRsp));
1,598!
14205

14206
  tEndEncode(&encoder);
1,598✔
14207

14208
_exit:
1,598✔
14209
  if (code) {
1,598!
14210
    tlen = code;
×
14211
  } else {
14212
    tlen = encoder.pos;
1,598✔
14213
  }
14214
  tEncoderClear(&encoder);
1,598✔
14215
  return tlen;
1,598✔
14216
}
14217

14218
int32_t tDeserializeTableTSMAInfoRsp(void *buf, int32_t bufLen, STableTSMAInfoRsp *pRsp) {
1,325✔
14219
  SDecoder decoder = {0};
1,325✔
14220
  int32_t  code = 0;
1,325✔
14221
  int32_t  lino;
14222

14223
  tDecoderInit(&decoder, buf, bufLen);
1,325✔
14224

14225
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,325!
14226
  TAOS_CHECK_EXIT(tDecodeTableTSMAInfoRsp(&decoder, pRsp));
1,325!
14227

14228
  tEndDecode(&decoder);
1,325✔
14229

14230
_exit:
1,325✔
14231
  tDecoderClear(&decoder);
1,325✔
14232
  return code;
1,325✔
14233
}
14234

14235
void tFreeTableTSMAInfo(void *p) {
6,741✔
14236
  STableTSMAInfo *pTsmaInfo = p;
6,741✔
14237
  if (pTsmaInfo) {
6,741!
14238
    taosArrayDestroy(pTsmaInfo->pFuncs);
6,741✔
14239
    taosArrayDestroy(pTsmaInfo->pTags);
6,741✔
14240
    taosArrayDestroy(pTsmaInfo->pUsedCols);
6,741✔
14241
    taosMemoryFree(pTsmaInfo->ast);
6,741!
14242
  }
14243
}
6,741✔
14244

14245
void tFreeAndClearTableTSMAInfo(void *p) {
5,296✔
14246
  STableTSMAInfo *pTsmaInfo = (STableTSMAInfo *)p;
5,296✔
14247
  if (pTsmaInfo) {
5,296!
14248
    tFreeTableTSMAInfo(pTsmaInfo);
5,296✔
14249
    taosMemoryFree(pTsmaInfo);
5,296!
14250
  }
14251
}
5,296✔
14252

14253
int32_t tCloneTbTSMAInfo(STableTSMAInfo *pInfo, STableTSMAInfo **pRes) {
3,924✔
14254
  int32_t code = TSDB_CODE_SUCCESS;
3,924✔
14255
  if (NULL == pInfo) {
3,924!
14256
    return TSDB_CODE_SUCCESS;
×
14257
  }
14258
  STableTSMAInfo *pRet = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
3,924!
14259
  if (!pRet) return terrno;
3,924!
14260

14261
  *pRet = *pInfo;
3,924✔
14262
  if (pInfo->pFuncs) {
3,924!
14263
    pRet->pFuncs = taosArrayDup(pInfo->pFuncs, NULL);
3,924✔
14264
    if (!pRet->pFuncs) code = terrno;
3,924!
14265
  }
14266
  if (pInfo->pTags && code == TSDB_CODE_SUCCESS) {
3,924!
14267
    pRet->pTags = taosArrayDup(pInfo->pTags, NULL);
3,924✔
14268
    if (!pRet->pTags) code = terrno;
3,924!
14269
  }
14270
  if (pInfo->pUsedCols && code == TSDB_CODE_SUCCESS) {
3,924!
14271
    pRet->pUsedCols = taosArrayDup(pInfo->pUsedCols, NULL);
3,924✔
14272
    if (!pRet->pUsedCols) code = terrno;
3,924!
14273
  }
14274
  if (pInfo->ast && code == TSDB_CODE_SUCCESS) {
3,924!
14275
    pRet->ast = taosStrdup(pInfo->ast);
3,924!
14276
    if (!pRet->ast) code = terrno;
3,924!
14277
  }
14278
  if (code) {
3,924!
14279
    tFreeAndClearTableTSMAInfo(pRet);
×
14280
    pRet = NULL;
×
14281
  }
14282
  *pRes = pRet;
3,924✔
14283
  return code;
3,924✔
14284
}
14285

14286
void tFreeTableTSMAInfoRsp(STableTSMAInfoRsp *pRsp) {
18,312✔
14287
  if (pRsp && pRsp->pTsmas) {
18,312!
14288
    taosArrayDestroyP(pRsp->pTsmas, tFreeAndClearTableTSMAInfo);
15,539✔
14289
  }
14290
}
18,312✔
14291

14292
static int32_t tEncodeStreamProgressReq(SEncoder *pEncoder, const SStreamProgressReq *pReq) {
10,956✔
14293
  int32_t code = 0;
10,956✔
14294
  int32_t lino;
14295

14296
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->streamId));
21,912!
14297
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->vgId));
21,912!
14298
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->fetchIdx));
21,912!
14299
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->subFetchIdx));
21,912!
14300

14301
_exit:
10,956✔
14302
  return code;
10,956✔
14303
}
14304

14305
int32_t tSerializeStreamProgressReq(void *buf, int32_t bufLen, const SStreamProgressReq *pReq) {
10,956✔
14306
  SEncoder encoder = {0};
10,956✔
14307
  int32_t  code = 0;
10,956✔
14308
  int32_t  lino;
14309
  int32_t  tlen;
14310
  tEncoderInit(&encoder, buf, bufLen);
10,956✔
14311

14312
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10,956!
14313
  TAOS_CHECK_EXIT(tEncodeStreamProgressReq(&encoder, pReq));
10,956!
14314

14315
  tEndEncode(&encoder);
10,956✔
14316

14317
_exit:
10,956✔
14318
  if (code) {
10,956!
14319
    tlen = code;
×
14320
  } else {
14321
    tlen = encoder.pos;
10,956✔
14322
  }
14323
  tEncoderClear(&encoder);
10,956✔
14324
  return tlen;
10,956✔
14325
}
14326

14327
static int32_t tDecodeStreamProgressReq(SDecoder *pDecoder, SStreamProgressReq *pReq) {
3,444✔
14328
  int32_t code = 0;
3,444✔
14329
  int32_t lino;
14330

14331
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->streamId));
6,888!
14332
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgId));
6,888!
14333
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->fetchIdx));
6,888!
14334
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->subFetchIdx));
6,888!
14335

14336
_exit:
3,444✔
14337
  return code;
3,444✔
14338
}
14339

14340
int32_t tDeserializeStreamProgressReq(void *buf, int32_t bufLen, SStreamProgressReq *pReq) {
3,444✔
14341
  SDecoder decoder = {0};
3,444✔
14342
  int32_t  code = 0;
3,444✔
14343
  int32_t  lino;
14344

14345
  tDecoderInit(&decoder, (char *)buf, bufLen);
3,444✔
14346

14347
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,444!
14348
  TAOS_CHECK_EXIT(tDecodeStreamProgressReq(&decoder, pReq));
3,444!
14349

14350
  tEndDecode(&decoder);
3,444✔
14351

14352
_exit:
3,444✔
14353
  tDecoderClear(&decoder);
3,444✔
14354
  return code;
3,444✔
14355
}
14356

14357
static int32_t tEncodeStreamProgressRsp(SEncoder *pEncoder, const SStreamProgressRsp *pRsp) {
6,886✔
14358
  int32_t code = 0;
6,886✔
14359
  int32_t lino;
14360

14361
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->streamId));
13,772!
14362
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
13,772!
14363
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->fillHisFinished));
13,772!
14364
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->progressDelay));
13,772!
14365
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->fetchIdx));
13,772!
14366
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->subFetchIdx));
13,772!
14367

14368
_exit:
6,886✔
14369
  return code;
6,886✔
14370
}
14371

14372
int32_t tSerializeStreamProgressRsp(void *buf, int32_t bufLen, const SStreamProgressRsp *pRsp) {
6,888✔
14373
  SEncoder encoder = {0};
6,888✔
14374
  int32_t  code = 0;
6,888✔
14375
  int32_t  lino;
14376
  int32_t  tlen;
14377
  tEncoderInit(&encoder, buf, bufLen);
6,888✔
14378

14379
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,886!
14380
  TAOS_CHECK_EXIT(tEncodeStreamProgressRsp(&encoder, pRsp));
6,886!
14381

14382
  tEndEncode(&encoder);
6,887✔
14383

14384
_exit:
6,887✔
14385
  if (code) {
6,887!
14386
    tlen = code;
×
14387
  } else {
14388
    tlen = encoder.pos;
6,887✔
14389
  }
14390
  tEncoderClear(&encoder);
6,887✔
14391
  return tlen;
6,886✔
14392
}
14393

14394
static int32_t tDecodeStreamProgressRsp(SDecoder *pDecoder, SStreamProgressRsp *pRsp) {
5,477✔
14395
  int32_t code = 0;
5,477✔
14396
  int32_t lino;
14397

14398
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->streamId));
10,954!
14399
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
10,954!
14400
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pRsp->fillHisFinished));
10,954!
14401
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->progressDelay));
10,954!
14402
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->fetchIdx));
10,953!
14403
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->subFetchIdx));
10,952!
14404

14405
_exit:
5,476✔
14406
  return code;
5,476✔
14407
}
14408

14409
int32_t tDeserializeSStreamProgressRsp(void *buf, int32_t bufLen, SStreamProgressRsp *pRsp) {
5,478✔
14410
  SDecoder decoder = {0};
5,478✔
14411
  int32_t  code = 0;
5,478✔
14412
  int32_t  lino;
14413

14414
  tDecoderInit(&decoder, buf, bufLen);
5,478✔
14415

14416
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,477!
14417
  TAOS_CHECK_EXIT(tDecodeStreamProgressRsp(&decoder, pRsp));
5,477!
14418

14419
  tEndDecode(&decoder);
5,476✔
14420

14421
_exit:
5,476✔
14422
  tDecoderClear(&decoder);
5,476✔
14423
  return code;
5,477✔
14424
}
14425

14426
int32_t tEncodeSMDropTbReqOnSingleVg(SEncoder *pEncoder, const SMDropTbReqsOnSingleVg *pReq) {
16✔
14427
  const SVgroupInfo *pVgInfo = &pReq->vgInfo;
16✔
14428
  int32_t            code = 0;
16✔
14429
  int32_t            lino;
14430

14431
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->vgId));
32!
14432
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashBegin));
32!
14433
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashEnd));
32!
14434
  TAOS_CHECK_EXIT(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
16!
14435
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->numOfTable));
32!
14436
  int32_t size = pReq->pTbs ? pReq->pTbs->size : 0;
16!
14437
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
16!
14438
  for (int32_t i = 0; i < size; ++i) {
32✔
14439
    const SVDropTbReq *pInfo = taosArrayGet(pReq->pTbs, i);
16✔
14440
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pEncoder, pInfo));
16!
14441
  }
14442
_exit:
16✔
14443
  return code;
16✔
14444
}
14445

14446
int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder *pDecoder, SMDropTbReqsOnSingleVg *pReq) {
×
14447
  int32_t code = 0;
×
14448
  int32_t lino;
14449

14450
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.vgId));
×
14451
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashBegin));
×
14452
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashEnd));
×
14453
  TAOS_CHECK_EXIT(tDecodeSEpSet(pDecoder, &pReq->vgInfo.epSet));
×
14454
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.numOfTable));
×
14455
  int32_t size = 0;
×
14456
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
14457
  pReq->pTbs = taosArrayInit(size, sizeof(SVDropTbReq));
×
14458
  if (!pReq->pTbs) {
×
14459
    TAOS_CHECK_EXIT(terrno);
×
14460
  }
14461
  SVDropTbReq pTbReq = {0};
×
14462
  for (int32_t i = 0; i < size; ++i) {
×
14463
    TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pDecoder, &pTbReq));
×
14464
    if (taosArrayPush(pReq->pTbs, &pTbReq) == NULL) {
×
14465
      TAOS_CHECK_EXIT(terrno);
×
14466
    }
14467
  }
14468

14469
_exit:
×
14470
  return code;
×
14471
}
14472

14473
void tFreeSMDropTbReqOnSingleVg(void *p) {
×
14474
  SMDropTbReqsOnSingleVg *pReq = p;
×
14475
  taosArrayDestroy(pReq->pTbs);
×
14476
}
×
14477

14478
int32_t tSerializeSMDropTbsReq(void *buf, int32_t bufLen, const SMDropTbsReq *pReq) {
8✔
14479
  SEncoder encoder = {0};
8✔
14480
  int32_t  code = 0;
8✔
14481
  int32_t  lino;
14482
  int32_t  tlen;
14483

14484
  tEncoderInit(&encoder, buf, bufLen);
8✔
14485
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
14486
  int32_t size = pReq->pVgReqs ? pReq->pVgReqs->size : 0;
8!
14487
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
8!
14488
  for (int32_t i = 0; i < size; ++i) {
24✔
14489
    SMDropTbReqsOnSingleVg *pVgReq = taosArrayGet(pReq->pVgReqs, i);
16✔
14490
    TAOS_CHECK_EXIT(tEncodeSMDropTbReqOnSingleVg(&encoder, pVgReq));
16!
14491
  }
14492
  tEndEncode(&encoder);
8✔
14493

14494
_exit:
8✔
14495
  if (code) {
8!
14496
    tlen = code;
×
14497
  } else {
14498
    tlen = encoder.pos;
8✔
14499
  }
14500
  tEncoderClear(&encoder);
8✔
14501
  return tlen;
8✔
14502
}
14503

14504
int32_t tDeserializeSMDropTbsReq(void *buf, int32_t bufLen, SMDropTbsReq *pReq) {
×
14505
  SDecoder decoder = {0};
×
14506
  int32_t  code = 0;
×
14507
  int32_t  lino;
14508

14509
  tDecoderInit(&decoder, buf, bufLen);
×
14510
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
14511
  int32_t size = 0;
×
14512
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
×
14513
  pReq->pVgReqs = taosArrayInit(size, sizeof(SMDropTbReqsOnSingleVg));
×
14514
  if (!pReq->pVgReqs) {
×
14515
    TAOS_CHECK_EXIT(terrno);
×
14516
  }
14517
  for (int32_t i = 0; i < size; ++i) {
×
14518
    SMDropTbReqsOnSingleVg vgReq = {0};
×
14519
    TAOS_CHECK_EXIT(tDecodeSMDropTbReqOnSingleVg(&decoder, &vgReq));
×
14520
    if (taosArrayPush(pReq->pVgReqs, &vgReq) == NULL) {
×
14521
      TAOS_CHECK_EXIT(terrno);
×
14522
    }
14523
  }
14524
  tEndDecode(&decoder);
×
14525
_exit:
×
14526
  tDecoderClear(&decoder);
×
14527
  return code;
×
14528
}
14529

14530
void tFreeSMDropTbsReq(void *p) {
×
14531
  SMDropTbsReq *pReq = p;
×
14532
  taosArrayDestroyEx(pReq->pVgReqs, tFreeSMDropTbReqOnSingleVg);
×
14533
}
×
14534

14535
int32_t tEncodeVFetchTtlExpiredTbsRsp(SEncoder *pCoder, const SVFetchTtlExpiredTbsRsp *pRsp) {
66✔
14536
  int32_t code = 0;
66✔
14537
  int32_t lino;
14538

14539
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pRsp->vgId));
132!
14540
  int32_t size = pRsp->pExpiredTbs ? pRsp->pExpiredTbs->size : 0;
66!
14541
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, size));
66!
14542
  for (int32_t i = 0; i < size; ++i) {
334✔
14543
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pCoder, taosArrayGet(pRsp->pExpiredTbs, i)));
269!
14544
  }
14545

14546
_exit:
65✔
14547
  return code;
65✔
14548
}
14549

14550
int32_t tDecodeVFetchTtlExpiredTbsRsp(SDecoder *pCoder, SVFetchTtlExpiredTbsRsp *pRsp) {
33✔
14551
  int32_t code = 0;
33✔
14552
  int32_t lino;
14553

14554
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pRsp->vgId));
66!
14555
  int32_t size = 0;
33✔
14556
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &size));
33!
14557
  if (size > 0) {
33!
14558
    pRsp->pExpiredTbs = taosArrayInit(size, sizeof(SVDropTbReq));
33✔
14559
    if (!pRsp->pExpiredTbs) {
33!
14560
      TAOS_CHECK_EXIT(terrno);
×
14561
    }
14562
    SVDropTbReq tb = {0};
33✔
14563
    for (int32_t i = 0; i < size; ++i) {
168✔
14564
      TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pCoder, &tb));
135!
14565
      if (taosArrayPush(pRsp->pExpiredTbs, &tb) == NULL) {
270!
14566
        TAOS_CHECK_EXIT(terrno);
×
14567
      }
14568
    }
14569
  }
14570
_exit:
×
14571
  return code;
33✔
14572
}
14573

14574
void tFreeFetchTtlExpiredTbsRsp(void *p) {
70,982✔
14575
  SVFetchTtlExpiredTbsRsp *pRsp = p;
70,982✔
14576
  taosArrayDestroy(pRsp->pExpiredTbs);
70,982✔
14577
}
70,982✔
14578

14579
int32_t tEncodeMqBatchMetaRsp(SEncoder *pEncoder, const SMqBatchMetaRsp *pRsp) {
36✔
14580
  int32_t code = 0;
36✔
14581
  int32_t lino;
14582

14583
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
36!
14584

14585
  int32_t size = taosArrayGetSize(pRsp->batchMetaReq);
36✔
14586
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
36!
14587
  if (size > 0) {
36!
14588
    for (int32_t i = 0; i < size; i++) {
304✔
14589
      void   *pMetaReq = taosArrayGetP(pRsp->batchMetaReq, i);
268✔
14590
      int32_t metaLen = *(int32_t *)taosArrayGet(pRsp->batchMetaLen, i);
268✔
14591
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pMetaReq, metaLen));
536!
14592
    }
14593
  }
14594
_exit:
36✔
14595
  return code;
36✔
14596
}
14597

14598
int32_t tDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
30✔
14599
  int32_t size = 0;
30✔
14600
  int32_t code = 0;
30✔
14601
  int32_t lino;
14602

14603
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
30!
14604
  if (size > 0) {
30!
14605
    pRsp->batchMetaReq = taosArrayInit(size, POINTER_BYTES);
30✔
14606
    if (!pRsp->batchMetaReq) {
30!
14607
      TAOS_CHECK_EXIT(terrno);
×
14608
    }
14609
    pRsp->batchMetaLen = taosArrayInit(size, sizeof(int32_t));
30✔
14610
    if (!pRsp->batchMetaLen) {
30!
14611
      TAOS_CHECK_EXIT(terrno);
×
14612
    }
14613
    for (int32_t i = 0; i < size; i++) {
286✔
14614
      void    *pCreate = NULL;
256✔
14615
      uint64_t len = 0;
256✔
14616
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
256!
14617
      int32_t l = (int32_t)len;
256✔
14618
      if (taosArrayPush(pRsp->batchMetaReq, &pCreate) == NULL) {
512!
14619
        TAOS_CHECK_EXIT(terrno);
×
14620
      }
14621
      if (taosArrayPush(pRsp->batchMetaLen, &l) == NULL) {
512!
14622
        TAOS_CHECK_EXIT(terrno);
×
14623
      }
14624
    }
14625
  }
14626
_exit:
30✔
14627
  return code;
30✔
14628
}
14629

14630
int32_t tSemiDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
19✔
14631
  int32_t code = 0;
19✔
14632
  int32_t lino;
14633

14634
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
19!
14635
  if (pDecoder->size < pDecoder->pos) {
19!
14636
    return TSDB_CODE_INVALID_PARA;
×
14637
  }
14638
  pRsp->metaBuffLen = TD_CODER_REMAIN_CAPACITY(pDecoder);
19✔
14639
  pRsp->pMetaBuff = taosMemoryCalloc(1, pRsp->metaBuffLen);
19!
14640
  if (pRsp->pMetaBuff == NULL) {
19!
14641
    TAOS_CHECK_EXIT(terrno);
×
14642
  }
14643
  memcpy(pRsp->pMetaBuff, TD_CODER_CURRENT(pDecoder), pRsp->metaBuffLen);
19✔
14644

14645
_exit:
19✔
14646
  return code;
19✔
14647
}
14648

14649
void tDeleteMqBatchMetaRsp(SMqBatchMetaRsp *pRsp) {
12,671✔
14650
  taosMemoryFreeClear(pRsp->pMetaBuff);
12,671!
14651
  taosArrayDestroyP(pRsp->batchMetaReq, NULL);
12,671✔
14652
  taosArrayDestroy(pRsp->batchMetaLen);
12,671✔
14653
  pRsp->batchMetaReq = NULL;
12,670✔
14654
  pRsp->batchMetaLen = NULL;
12,670✔
14655
}
12,670✔
14656

14657
bool hasExtSchema(const SExtSchema *pExtSchema) { return pExtSchema->typeMod != 0; }
240✔
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