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

taosdata / TDengine / #4686

21 Aug 2025 12:03PM UTC coverage: 60.092% (-0.005%) from 60.097%
#4686

push

travis-ci

web-flow
jdbc release 3.7.3 (#32682)

* chore(jdbc): update jdbc version

* docs(jdbc): release 3.7.3

138041 of 292193 branches covered (47.24%)

Branch coverage included in aggregate %.

208485 of 284466 relevant lines covered (73.29%)

24747801.12 hits per line

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

62.56
/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
#include "streamMsg.h"
48

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

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

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

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

81
static int32_t tSerializeSMonitorParas(SEncoder *encoder, const SMonitorParas *pMonitorParas) {
2,552,412✔
82
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pMonitorParas->tsEnableMonitor));
5,104,824!
83
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsMonitorInterval));
5,104,824!
84
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogScope));
5,104,824!
85
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogMaxLen));
5,104,824!
86
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThreshold));
5,104,824!
87
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
5,104,824!
88
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pMonitorParas->tsSlowLogExceptDb));
5,104,824!
89
  return 0;
2,552,412✔
90
}
91

92
static int32_t tDeserializeSMonitorParas(SDecoder *decoder, SMonitorParas *pMonitorParas) {
744,415✔
93
  TAOS_CHECK_RETURN(tDecodeI8(decoder, (int8_t *)&pMonitorParas->tsEnableMonitor));
1,488,822!
94
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsMonitorInterval));
1,488,818!
95
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogScope));
1,488,817!
96
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogMaxLen));
1,488,817!
97
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThreshold));
1,488,822!
98
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
1,488,828!
99
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pMonitorParas->tsSlowLogExceptDb));
744,417!
100
  return 0;
744,428✔
101
}
102

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

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

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

124
  return 0;
×
125
}
126

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

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

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

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

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

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

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

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

188
int32_t tEncodeSEpSet(SEncoder *pEncoder, const SEpSet *pEp) {
79,303,946✔
189
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->inUse));
158,607,892!
190
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->numOfEps));
158,607,892!
191
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
475,865,195✔
192
    TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pEp->eps[i].port));
793,122,498!
193
    TAOS_CHECK_RETURN(tEncodeCStrWithLen(pEncoder, pEp->eps[i].fqdn, TSDB_FQDN_LEN));
793,122,498!
194
  }
195
  return 0;
79,303,946✔
196
}
197

198
int32_t tDecodeSEpSet(SDecoder *pDecoder, SEpSet *pEp) {
652,000✔
199
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->inUse));
1,303,937!
200
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->numOfEps));
1,303,867!
201
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
3,908,980✔
202
    TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pEp->eps[i].port));
6,513,551!
203
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pEp->eps[i].fqdn));
3,256,620✔
204
  }
205
  return 0;
652,049✔
206
}
207

208
int32_t tEncodeSQueryNodeAddr(SEncoder *pEncoder, SQueryNodeAddr *pAddr) {
1,425,064✔
209
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pAddr->nodeId));
2,850,128!
210
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pAddr->epSet));
1,425,064✔
211
  return 0;
1,426,300✔
212
}
213

214
int32_t tEncodeSQueryNodeLoad(SEncoder *pEncoder, SQueryNodeLoad *pLoad) {
1,425,099✔
215
  TAOS_CHECK_RETURN(tEncodeSQueryNodeAddr(pEncoder, &pLoad->addr));
1,425,099✔
216
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pLoad->load));
2,852,346!
217
  return 0;
1,426,173✔
218
}
219

220
int32_t tDecodeSQueryNodeAddr(SDecoder *pDecoder, SQueryNodeAddr *pAddr) {
279,134✔
221
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pAddr->nodeId));
558,268!
222
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pAddr->epSet));
279,134!
223
  return 0;
279,134✔
224
}
225

226
int32_t tDecodeSQueryNodeLoad(SDecoder *pDecoder, SQueryNodeLoad *pLoad) {
279,134✔
227
  TAOS_CHECK_RETURN(tDecodeSQueryNodeAddr(pDecoder, &pLoad->addr));
279,134!
228
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pLoad->load));
558,268!
229
  return 0;
279,134✔
230
}
231

232
int32_t taosEncodeSEpSet(void **buf, const SEpSet *pEp) {
21,220✔
233
  int32_t tlen = 0;
21,220✔
234
  tlen += taosEncodeFixedI8(buf, pEp->inUse);
21,220✔
235
  tlen += taosEncodeFixedI8(buf, pEp->numOfEps);
21,220✔
236
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
127,320✔
237
    tlen += taosEncodeFixedU16(buf, pEp->eps[i].port);
106,100✔
238
    tlen += taosEncodeString(buf, pEp->eps[i].fqdn);
212,200✔
239
  }
240
  return tlen;
21,220✔
241
}
242

243
void *taosDecodeSEpSet(const void *buf, SEpSet *pEp) {
6,127✔
244
  buf = taosDecodeFixedI8(buf, &pEp->inUse);
6,127✔
245
  buf = taosDecodeFixedI8(buf, &pEp->numOfEps);
6,127✔
246
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
36,762✔
247
    buf = taosDecodeFixedU16(buf, &pEp->eps[i].port);
30,635!
248
    buf = taosDecodeStringTo(buf, pEp->eps[i].fqdn);
61,270✔
249
  }
250
  return (void *)buf;
6,127✔
251
}
252

253
static int32_t tSerializeSClientHbReq(SEncoder *pEncoder, const SClientHbReq *pReq) {
425,064✔
254
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pReq->connKey));
850,128!
255

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

271
    int32_t queryNum = 0;
425,062✔
272
    if (pReq->query) {
425,062✔
273
      queryNum = 1;
422,960✔
274
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
422,960!
275
      TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->query->connId));
845,920!
276

277
      int32_t num = taosArrayGetSize(pReq->query->queryDesc);
422,960✔
278
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
422,960!
279

280
      for (int32_t i = 0; i < num; ++i) {
457,152✔
281
        SQueryDesc *desc = taosArrayGet(pReq->query->queryDesc, i);
34,192✔
282
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, desc->sql));
68,384!
283
        TAOS_CHECK_RETURN(tEncodeU64(pEncoder, desc->queryId));
68,384!
284
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->useconds));
68,384!
285
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->stime));
68,384!
286
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->reqRid));
68,384!
287
        TAOS_CHECK_RETURN(tEncodeI8(pEncoder, desc->stableQuery));
68,384!
288
        TAOS_CHECK_RETURN(tEncodeI8(pEncoder, desc->isSubQuery));
68,384!
289
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, desc->fqdn));
68,384!
290
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, desc->subPlanNum));
68,384!
291

292
        int32_t snum = desc->subDesc ? taosArrayGetSize(desc->subDesc) : 0;
34,192!
293
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, snum));
34,192!
294
        for (int32_t m = 0; m < snum; ++m) {
73,406✔
295
          SQuerySubDesc *sDesc = taosArrayGet(desc->subDesc, m);
39,214✔
296
          TAOS_CHECK_RETURN(tEncodeI64(pEncoder, sDesc->tid));
78,428!
297
          TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, sDesc->status));
78,428!
298
        }
299
      }
300
    } else {
301
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
2,102!
302
    }
303
  }
304

305
  int32_t kvNum = taosHashGetSize(pReq->info);
425,064✔
306
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
425,064!
307
  void *pIter = taosHashIterate(pReq->info, NULL);
425,064✔
308
  while (pIter != NULL) {
713,338✔
309
    SKv *kv = pIter;
288,274✔
310
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
288,274!
311
    pIter = taosHashIterate(pReq->info, pIter);
288,274✔
312
  }
313
  TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->userIp));
850,128!
314
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->userApp));
850,128!
315

316
  return 0;
425,064✔
317
}
318

319
static int32_t tDeserializeSClientHbReq(SDecoder *pDecoder, SClientHbReq *pReq) {
662,734✔
320
  int32_t code = 0;
662,734✔
321
  int32_t line = 0;
662,734✔
322
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pReq->connKey));
1,325,469!
323

324
  if (pReq->connKey.connType == CONN_TYPE__QUERY) {
662,735✔
325
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.appId));
1,325,431!
326
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReq->app.pid));
1,325,435!
327
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->app.name));
662,723!
328
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.startTime));
1,325,447!
329
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertsReq));
1,325,454!
330
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertRows));
1,325,406!
331
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertElapsedTime));
1,325,386!
332
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertBytes));
1,325,401!
333
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.fetchBytes));
1,325,365!
334
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.queryElapsedTime));
1,325,348!
335
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfSlowQueries));
1,325,358!
336
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.totalRequests));
1,325,350!
337
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.currentRequests));
1,325,360!
338

339
    int32_t queryNum = 0;
662,691✔
340
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
662,645!
341
    if (queryNum) {
662,645✔
342
      pReq->query = taosMemoryCalloc(1, sizeof(*pReq->query));
656,605!
343
      if (NULL == pReq->query) {
656,700!
344
        return terrno;
×
345
      }
346
      code = tDecodeU32(pDecoder, &pReq->query->connId);
656,700✔
347
      TAOS_CHECK_GOTO(code, &line, _error);
656,698!
348

349
      int32_t num = 0;
656,698✔
350
      code = tDecodeI32(pDecoder, &num);
656,694✔
351
      TAOS_CHECK_GOTO(code, &line, _error);
656,694!
352

353
      if (num > 0) {
656,694✔
354
        pReq->query->queryDesc = taosArrayInit(num, sizeof(SQueryDesc));
387,300✔
355
        if (NULL == pReq->query->queryDesc) {
387,276!
356
          return terrno;
×
357
        }
358

359
        for (int32_t i = 0; i < num; ++i) {
845,026✔
360
          SQueryDesc desc = {0};
457,720✔
361
          code = tDecodeCStrTo(pDecoder, desc.sql);
457,720✔
362
          TAOS_CHECK_GOTO(code, &line, _error);
457,757!
363

364
          code = tDecodeU64(pDecoder, &desc.queryId);
457,751✔
365
          TAOS_CHECK_GOTO(code, &line, _error);
457,751!
366

367
          code = tDecodeI64(pDecoder, &desc.useconds);
457,745✔
368
          TAOS_CHECK_GOTO(code, &line, _error);
457,745!
369

370
          code = tDecodeI64(pDecoder, &desc.stime);
457,738✔
371
          TAOS_CHECK_GOTO(code, &line, _error);
457,738!
372

373
          code = tDecodeI64(pDecoder, &desc.reqRid);
457,741✔
374
          TAOS_CHECK_GOTO(code, &line, _error);
457,741!
375

376
          code = tDecodeI8(pDecoder, (int8_t *)&desc.stableQuery);
457,732✔
377
          TAOS_CHECK_GOTO(code, &line, _error);
457,732!
378

379
          code = tDecodeI8(pDecoder, (int8_t *)&desc.isSubQuery);
457,713✔
380
          TAOS_CHECK_GOTO(code, &line, _error);
457,713!
381

382
          code = tDecodeCStrTo(pDecoder, desc.fqdn);
457,713✔
383
          TAOS_CHECK_GOTO(code, &line, _error);
457,741!
384

385
          code = tDecodeI32(pDecoder, &desc.subPlanNum);
457,740✔
386
          TAOS_CHECK_GOTO(code, &line, _error);
457,740!
387

388
          int32_t snum = 0;
457,740✔
389
          code = tDecodeI32(pDecoder, &snum);
457,717✔
390
          if (snum > 0) {
457,717✔
391
            desc.subDesc = taosArrayInit(snum, sizeof(SQuerySubDesc));
457,619✔
392
            if (NULL == desc.subDesc) {
457,642✔
393
              code = terrno;
3✔
394
              TAOS_CHECK_GOTO(code, &line, _error);
×
395
            }
396

397
            for (int32_t m = 0; m < snum; ++m) {
1,705,078✔
398
              SQuerySubDesc sDesc = {0};
1,247,415✔
399
              code = tDecodeI64(pDecoder, &sDesc.tid);
1,247,437✔
400
              TAOS_CHECK_GOTO(code, &line, _error);
1,247,437!
401

402
              code = (tDecodeCStrTo(pDecoder, sDesc.status));
1,247,437✔
403
              TAOS_CHECK_GOTO(code, &line, _error);
1,247,472!
404
              if (!taosArrayPush(desc.subDesc, &sDesc)) {
2,494,911!
405
                code = terrno;
×
406
                TAOS_CHECK_GOTO(code, &line, _error);
×
407
              }
408
            }
409
          }
410

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

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

425
  int32_t kvNum = 0;
662,756✔
426
  TAOS_CHECK_GOTO(tDecodeI32(pDecoder, &kvNum), &line, _error);
662,752!
427
  if (pReq->info == NULL) {
662,752!
428
    pReq->info = taosHashInit(kvNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
662,756✔
429
  }
430
  if (pReq->info == NULL) {
662,731!
431
    code = terrno;
×
432
    TAOS_CHECK_GOTO(code, &line, _error);
×
433
  }
434
  for (int32_t i = 0; i < kvNum; i++) {
1,125,512✔
435
    SKv kv = {0};
462,770✔
436
    TAOS_CHECK_GOTO(tDecodeSKv(pDecoder, &kv), &line, _error);
462,769!
437

438
    int32_t code = taosHashPut(pReq->info, &kv.key, sizeof(kv.key), &kv, sizeof(kv));
462,769✔
439
    TAOS_CHECK_GOTO(terrno = code, &line, _error);
462,782!
440
  }
441
  if (!tDecodeIsEnd(pDecoder)) {
662,742!
442
    TAOS_CHECK_GOTO(tDecodeU32(pDecoder, &pReq->userIp), &line, _error);
1,325,523!
443
    TAOS_CHECK_GOTO(tDecodeCStrTo(pDecoder, pReq->userApp), &line, _error);
662,759!
444
  }
445

446
_error:
662,742✔
447
  if (code != 0) {
662,742!
448
    tFreeClientHbReq(pReq);
449
  }
450
  return code;
662,742✔
451
}
452

453
static int32_t tSerializeSClientHbRsp(SEncoder *pEncoder, const SClientHbRsp *pRsp) {
1,324,361✔
454
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pRsp->connKey));
2,648,722!
455
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->status));
2,648,722!
456

457
  int32_t queryNum = 0;
1,324,361✔
458
  if (pRsp->query) {
1,324,361✔
459
    queryNum = 1;
1,313,049✔
460
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
1,313,049!
461
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pRsp->query->connId));
2,626,098!
462
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->query->killRid));
2,626,098!
463
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->totalDnodes));
2,626,098!
464
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->onlineDnodes));
2,626,098!
465
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->query->killConnection));
2,626,098!
466
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pRsp->query->epSet));
1,313,049!
467
    int32_t num = taosArrayGetSize(pRsp->query->pQnodeList);
1,313,048✔
468
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
1,312,810!
469
    for (int32_t i = 0; i < num; ++i) {
2,723,669✔
470
      SQueryNodeLoad *pLoad = taosArrayGet(pRsp->query->pQnodeList, i);
1,410,671✔
471
      TAOS_CHECK_RETURN(tEncodeSQueryNodeLoad(pEncoder, pLoad));
1,409,769!
472
    }
473
  } else {
474
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
11,312!
475
  }
476

477
  int32_t kvNum = taosArrayGetSize(pRsp->info);
1,324,310✔
478
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
1,324,904!
479
  for (int32_t i = 0; i < kvNum; i++) {
1,577,948✔
480
    SKv *kv = taosArrayGet(pRsp->info, i);
253,056✔
481
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
253,044!
482
  }
483

484
  return 0;
1,324,892✔
485
}
486

487
static int32_t tDeserializeSClientHbRsp(SDecoder *pDecoder, SClientHbRsp *pRsp) {
211,846✔
488
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pRsp->connKey));
423,692!
489
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->status));
423,692!
490

491
  int32_t queryNum = 0;
211,846✔
492
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
211,846!
493
  if (queryNum) {
211,846✔
494
    pRsp->query = taosMemoryCalloc(1, sizeof(*pRsp->query));
210,795!
495
    if (NULL == pRsp->query) {
210,795!
496
      return terrno;
×
497
    }
498
    TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pRsp->query->connId));
421,590!
499
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->query->killRid));
421,590!
500
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->totalDnodes));
421,590!
501
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->onlineDnodes));
421,590!
502
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->query->killConnection));
421,590!
503
    TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pRsp->query->epSet));
210,795!
504
    int32_t pQnodeNum = 0;
210,795✔
505
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pQnodeNum));
210,795!
506
    if (pQnodeNum > 0) {
210,795✔
507
      pRsp->query->pQnodeList = taosArrayInit(pQnodeNum, sizeof(SQueryNodeLoad));
78,711✔
508
      if (NULL == pRsp->query->pQnodeList) return terrno;
78,711!
509
      for (int32_t i = 0; i < pQnodeNum; ++i) {
357,842✔
510
        SQueryNodeLoad load = {0};
279,131✔
511
        TAOS_CHECK_RETURN(tDecodeSQueryNodeLoad(pDecoder, &load));
279,131!
512
        if (!taosArrayPush(pRsp->query->pQnodeList, &load)) return terrno;
558,262!
513
      }
514
    }
515
  }
516

517
  int32_t kvNum = 0;
211,846✔
518
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &kvNum));
211,846!
519
  pRsp->info = taosArrayInit(kvNum, sizeof(SKv));
211,846✔
520
  if (pRsp->info == NULL) {
211,846!
521
    return terrno;
×
522
  }
523
  for (int32_t i = 0; i < kvNum; i++) {
225,722✔
524
    SKv kv = {0};
13,876✔
525
    TAOS_CHECK_RETURN(tDecodeSKv(pDecoder, &kv));
13,876!
526
    if (!taosArrayPush(pRsp->info, &kv)) return terrno;
27,752!
527
  }
528

529
  return 0;
211,846✔
530
}
531

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

539
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
261,724!
540
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->reqId));
523,448!
541

542
  int32_t reqNum = taosArrayGetSize(pBatchReq->reqs);
261,724✔
543
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, reqNum));
261,724!
544
  for (int32_t i = 0; i < reqNum; i++) {
686,788✔
545
    SClientHbReq *pReq = taosArrayGet(pBatchReq->reqs, i);
425,064✔
546
    TAOS_CHECK_EXIT(tSerializeSClientHbReq(&encoder, pReq));
425,064!
547
  }
548

549
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->ipWhiteListVer));
523,448!
550

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

556
  tEndEncode(&encoder);
261,724✔
557

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

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

574
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
503,588!
575
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->reqId));
1,007,287!
576

577
  int32_t reqNum = 0;
503,638✔
578
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &reqNum));
503,650!
579
  if (reqNum > 0) {
503,650✔
580
    pBatchReq->reqs = taosArrayInit(reqNum, sizeof(SClientHbReq));
503,308✔
581
    if (NULL == pBatchReq->reqs) {
503,243!
582
      return terrno;
×
583
    }
584
  }
585
  for (int32_t i = 0; i < reqNum; i++) {
1,166,345✔
586
    SClientHbReq req = {0};
662,709✔
587
    TAOS_CHECK_EXIT(tDeserializeSClientHbReq(&decoder, &req));
662,709!
588
    if (!taosArrayPush(pBatchReq->reqs, &req)) {
1,325,523!
589
      TAOS_CHECK_EXIT(terrno);
×
590
    }
591
  }
592

593
  if (!tDecodeIsEnd(&decoder)) {
503,636!
594
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->ipWhiteListVer));
1,007,271!
595
  }
596

597
  if (!tDecodeIsEnd(&decoder)) {
503,635✔
598
    for (int32_t i = 0; i < reqNum; i++) {
1,166,056✔
599
      SClientHbReq *pReq = taosArrayGet(pBatchReq->reqs, i);
662,770✔
600
      TAOS_CHECK_EXIT(tDeserializeIpRange(&decoder, (SIpRange *)&pReq->userDualIp));
662,688!
601
    }
602
  }
603
  tEndDecode(&decoder);
503,619✔
604

605
_exit:
503,626✔
606
  tDecoderClear(&decoder);
503,626✔
607
  return code;
503,620✔
608
}
609

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

617
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,007,039!
618
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->reqId));
2,014,276!
619
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->rspId));
2,014,276!
620
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pBatchRsp->svrTimestamp));
2,014,276!
621

622
  int32_t rspNum = taosArrayGetSize(pBatchRsp->rsps);
1,007,138✔
623
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, rspNum));
1,006,913!
624
  for (int32_t i = 0; i < rspNum; i++) {
2,332,046✔
625
    SClientHbRsp *pRsp = taosArrayGet(pBatchRsp->rsps, i);
1,325,169✔
626
    TAOS_CHECK_EXIT(tSerializeSClientHbRsp(&encoder, pRsp));
1,324,357!
627
  }
628
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pBatchRsp->monitorParas));
1,006,877!
629
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableAuditDelete));
2,013,326!
630
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableStrongPass));
2,013,326!
631
  tEndEncode(&encoder);
1,006,663✔
632

633
_exit:
1,006,591✔
634
  if (code) {
1,006,591!
635
    tlen = code;
×
636
  } else {
637
    tlen = encoder.pos;
1,006,591✔
638
  }
639
  tEncoderClear(&encoder);
1,006,591✔
640
  return tlen;
1,006,580✔
641
}
642

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

649
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
130,177!
650
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->reqId));
260,353!
651
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->rspId));
260,353!
652
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pBatchRsp->svrTimestamp));
260,352!
653

654
  int32_t rspNum = 0;
130,176✔
655
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &rspNum));
130,176!
656
  if (pBatchRsp->rsps == NULL) {
130,176!
657
    if ((pBatchRsp->rsps = taosArrayInit(rspNum, sizeof(SClientHbRsp))) == NULL) {
130,176!
658
      TAOS_CHECK_EXIT(terrno);
×
659
    }
660
  }
661
  for (int32_t i = 0; i < rspNum; i++) {
342,023✔
662
    SClientHbRsp rsp = {0};
211,846✔
663
    TAOS_CHECK_EXIT(tDeserializeSClientHbRsp(&decoder, &rsp));
211,846!
664
    if (taosArrayPush(pBatchRsp->rsps, &rsp) == NULL) {
423,692!
665
      TAOS_CHECK_EXIT(terrno);
×
666
    }
667
  }
668

669
  if (!tDecodeIsEnd(&decoder)) {
130,177!
670
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pBatchRsp->monitorParas));
130,177!
671
  }
672

673
  if (!tDecodeIsEnd(&decoder)) {
130,177!
674
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableAuditDelete));
260,354!
675
  } else {
676
    pBatchRsp->enableAuditDelete = 0;
×
677
  }
678

679
  if (!tDecodeIsEnd(&decoder)) {
130,177!
680
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableStrongPass));
260,354!
681
  } else {
682
    pBatchRsp->enableStrongPass = 0;
×
683
  }
684

685
  tEndDecode(&decoder);
130,177✔
686

687
_exit:
130,177✔
688
  tDecoderClear(&decoder);
130,177✔
689
  return code;
130,176✔
690
}
691

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

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

721
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
65,224✔
722
    SFieldWithOptions *pField = taosArrayGet(pReq->pColumns, i);
62,365✔
723
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
124,714!
724
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
124,714!
725
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
124,714!
726
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
124,714!
727
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
124,714!
728
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->typeMod));
124,714!
729
  }
730

731
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
14,034✔
732
    SField *pField = taosArrayGet(pReq->pTags, i);
11,188✔
733
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
22,350!
734
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
22,350!
735
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
22,350!
736
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
22,350!
737
  }
738

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

744
  if (pReq->commentLen > 0) {
2,846✔
745
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
48!
746
  }
747
  if (pReq->ast1Len > 0) {
2,846✔
748
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst1, pReq->ast1Len));
8!
749
  }
750
  if (pReq->ast2Len > 0) {
2,846✔
751
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst2, pReq->ast2Len));
8!
752
  }
753
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark1));
5,692!
754
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark2));
5,692!
755
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->keep));
5,692!
756

757
  ENCODESQL();
7,316!
758

759
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->virtualStb));
5,692!
760

761
  tEndEncode(&encoder);
2,846✔
762

763
_exit:
2,865✔
764
  if (code) {
2,865!
765
    tlen = code;
×
766
  } else {
767
    tlen = encoder.pos;
2,865✔
768
  }
769
  tEncoderClear(&encoder);
2,865✔
770
  return tlen;
2,867✔
771
}
772

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

779
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,237!
780
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
10,237!
781
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
20,474!
782
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
20,474!
783
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
71,659✔
784
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
122,844!
785
  }
786
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
20,474!
787
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay1));
20,474!
788
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay2));
20,474!
789
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark1));
20,474!
790
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark2));
20,474!
791
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
20,474!
792
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->colVer));
20,474!
793
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagVer));
20,474!
794
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfColumns));
20,474!
795
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
20,474!
796
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
20,474!
797
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
20,474!
798
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast1Len));
20,474!
799
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast2Len));
20,474!
800

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

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

824
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
76,121✔
825
    SField field = {0};
65,884✔
826
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
65,884!
827
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
65,884!
828
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
65,884!
829
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
65,884!
830
    if (taosArrayPush(pReq->pTags, &field) == NULL) {
131,768!
831
      TAOS_CHECK_EXIT(terrno);
×
832
    }
833
  }
834

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

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

851
  if (pReq->ast1Len > 0) {
10,237!
852
    pReq->pAst1 = taosMemoryMalloc(pReq->ast1Len);
×
853
    if (pReq->pAst1 == NULL) {
×
854
      TAOS_CHECK_EXIT(terrno);
×
855
    }
856
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst1));
×
857
  }
858

859
  if (pReq->ast2Len > 0) {
10,237!
860
    pReq->pAst2 = taosMemoryMalloc(pReq->ast2Len);
×
861
    if (pReq->pAst2 == NULL) {
×
862
      TAOS_CHECK_EXIT(terrno);
×
863
    }
864
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst2));
×
865
  }
866

867
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark1));
20,474!
868
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark2));
20,474!
869
  if (!tDecodeIsEnd(&decoder)) {
10,237!
870
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->keep));
20,474!
871
  }
872

873
  DECODESQL();
28,355!
874

875
  if (!tDecodeIsEnd(&decoder)) {
10,237!
876
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->virtualStb));
20,474!
877
  } else {
878
    pReq->virtualStb = 0;
×
879
  }
880

881
  tEndDecode(&decoder);
10,237✔
882

883
_exit:
10,237✔
884
  tDecoderClear(&decoder);
10,237✔
885
  return code;
10,237✔
886
}
887

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

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

905
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
82!
906
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
164!
907
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
164!
908
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
164!
909
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
574✔
910
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
984!
911
  }
912
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
164!
913
  ENCODESQL();
228!
914
  tEndEncode(&encoder);
82✔
915

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

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

932
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,807!
933
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
2,807!
934
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
5,614!
935
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
5,614!
936
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
19,649✔
937
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
33,684!
938
  }
939
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
5,614!
940

941
  DECODESQL();
8,412!
942

943
  tEndDecode(&decoder);
2,807✔
944

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

950
void tFreeSMDropStbReq(SMDropStbReq *pReq) { FREESQL(); }
2,839!
951

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

959
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,304!
960
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
10,608!
961
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
10,608!
962
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFields));
10,608!
963

964
  // if (pReq->alterType == )
965
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
10,628✔
966
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
5,324✔
967
      SFieldWithOptions *pField = taosArrayGet(pReq->pFields, i);
4✔
968
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
8!
969
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
8!
970
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
8!
971
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
8!
972

973
    } else {
974
      SField *pField = taosArrayGet(pReq->pFields, i);
5,320✔
975
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
10,640!
976
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
10,640!
977
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
10,640!
978
    }
979
  }
980
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
10,608!
981
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
10,608!
982
  if (pReq->commentLen > 0) {
5,304✔
983
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->comment));
20!
984
  }
985
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->keep));
10,608!
986
  ENCODESQL();
15,846!
987
  if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN ||
5,304✔
988
      pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
3,174✔
989
    if (taosArrayGetSize(pReq->pTypeMods) > 0) {
2,134✔
990
      int8_t hasTypeMod = 1;
2,122✔
991
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, hasTypeMod));
4,244!
992
      for (int32_t i = 0; i < pReq->pTypeMods->size; ++i) {
4,244✔
993
        const STypeMod *pTypeMod = taosArrayGet(pReq->pTypeMods, i);
2,122✔
994
        TAOS_CHECK_ERRNO(tEncodeI32(&encoder, *pTypeMod));
4,244!
995
      }
996
    } else {
997
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, 0));
12!
998
    }
999
  }
1000
  tEndEncode(&encoder);
5,304✔
1001

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

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

1018
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,828!
1019
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
10,828!
1020
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
21,656!
1021
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFields));
21,656!
1022
  pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SField));
10,828✔
1023
  if (pReq->pFields == NULL) {
10,828!
1024
    TAOS_CHECK_EXIT(terrno);
×
1025
  }
1026

1027
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
22,272✔
1028
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
11,444✔
1029
      taosArrayDestroy(pReq->pFields);
426✔
1030
      if ((pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SFieldWithOptions))) == NULL) {
426!
1031
        TAOS_CHECK_EXIT(terrno);
×
1032
      }
1033
      SFieldWithOptions field = {0};
426✔
1034
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
426!
1035
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
426!
1036
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
426!
1037
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
426!
1038
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
852!
1039
        TAOS_CHECK_EXIT(terrno);
×
1040
      }
1041
    } else {
1042
      SField field = {0};
11,018✔
1043
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
11,018!
1044
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
11,018!
1045
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
11,018!
1046
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
22,036!
1047
        TAOS_CHECK_EXIT(terrno);
×
1048
      }
1049
    }
1050
  }
1051

1052
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
21,656!
1053
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
21,656!
1054
  if (pReq->commentLen > 0) {
10,828✔
1055
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
25!
1056
    if (pReq->comment == NULL) {
25!
1057
      TAOS_CHECK_EXIT(terrno);
×
1058
    }
1059
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->comment));
25!
1060
  }
1061
  if (!tDecodeIsEnd(&decoder)) {
10,828!
1062
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->keep));
21,656!
1063
  }
1064
  DECODESQL();
32,451!
1065
  if (!tDecodeIsEnd(&decoder) && (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN ||
10,828✔
1066
                                  pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION)) {
426!
1067
    int8_t hasTypeMod = 0;
4,685✔
1068
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &hasTypeMod));
4,685!
1069
    if (hasTypeMod == 1) {
4,685✔
1070
      pReq->pTypeMods = taosArrayInit(pReq->numOfFields, sizeof(STypeMod));
4,679✔
1071
      if (!pReq->pTypeMods) {
4,679!
1072
        TAOS_CHECK_EXIT(terrno);
×
1073
      }
1074
      for (int32_t i = 0; i < pReq->numOfFields; ++i) {
9,358✔
1075
        STypeMod typeMod = 0;
4,679✔
1076
        TAOS_CHECK_EXIT(tDecodeI32(&decoder, &typeMod));
4,679!
1077
        if (taosArrayPush(pReq->pTypeMods, &typeMod) == NULL) {
9,358!
1078
          TAOS_CHECK_EXIT(terrno);
×
1079
        }
1080
      }
1081
    }
1082
  }
1083
  tEndDecode(&decoder);
10,828✔
1084

1085
_exit:
10,828✔
1086
  tDecoderClear(&decoder);
10,828✔
1087
  return code;
10,828✔
1088
}
1089

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

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

1105
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
105,934!
1106
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpset));
105,935!
1107

1108
  tEndEncode(&encoder);
105,923✔
1109

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

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

1125
  tDecoderInit(&decoder, buf, bufLen);
51,600✔
1126

1127
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
51,600✔
1128
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, pEpset));
40,899!
1129

1130
  tEndDecode(&decoder);
40,899✔
1131
_exit:
51,600✔
1132
  tDecoderClear(&decoder);
51,600✔
1133
  return code;
51,600✔
1134
}
1135

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

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

1177
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
×
1178
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
×
1179
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
×
1180
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
×
1181
  }
1182
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->recursiveTsma));
×
1183
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->baseTsmaName));
×
1184
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->streamReqLen));
×
1185
  if (pReq->streamReqLen > 0) {
×
1186
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->createStreamReq, pReq->streamReqLen));
×
1187
  }
1188
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dropStreamReqLen));
×
1189
  if (pReq->dropStreamReqLen > 0) {
×
1190
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->dropStreamReq, pReq->dropStreamReqLen));
×
1191
  }
1192
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->uid));
×
1193
  tEndEncode(&encoder);
×
1194

1195
_exit:
×
1196
  if (code) {
×
1197
    tlen = code;
×
1198
  } else {
1199
    tlen = encoder.pos;
×
1200
  }
1201
  tEncoderClear(&encoder);
×
1202
  return tlen;
×
1203
}
1204

1205
int32_t tDeserializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
×
1206
  SDecoder decoder = {0};
×
1207
  int32_t  code = 0;
×
1208
  int32_t  lino;
1209
  tDecoderInit(&decoder, buf, bufLen);
×
1210

1211
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1212
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
1213
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
×
1214
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
×
1215
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->intervalUnit));
×
1216
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->slidingUnit));
×
1217
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->timezone));
×
1218
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
×
1219
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->interval));
×
1220
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->offset));
×
1221
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->sliding));
×
1222
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
×
1223
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
×
1224
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->exprLen));
×
1225
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagsFilterLen));
×
1226
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
×
1227
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->astLen));
×
1228
  if (pReq->exprLen > 0) {
×
1229
    pReq->expr = taosMemoryMalloc(pReq->exprLen);
×
1230
    if (pReq->expr == NULL) {
×
1231
      TAOS_CHECK_EXIT(terrno);
×
1232
    }
1233
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->expr));
×
1234
  }
1235
  if (pReq->tagsFilterLen > 0) {
×
1236
    pReq->tagsFilter = taosMemoryMalloc(pReq->tagsFilterLen);
×
1237
    if (pReq->tagsFilter == NULL) {
×
1238
      TAOS_CHECK_EXIT(terrno);
×
1239
    }
1240
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tagsFilter));
×
1241
  }
1242
  if (pReq->sqlLen > 0) {
×
1243
    pReq->sql = taosMemoryMalloc(pReq->sqlLen);
×
1244
    if (pReq->sql == NULL) {
×
1245
      TAOS_CHECK_EXIT(terrno);
×
1246
    }
1247
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
×
1248
  }
1249
  if (pReq->astLen > 0) {
×
1250
    pReq->ast = taosMemoryMalloc(pReq->astLen);
×
1251
    if (pReq->ast == NULL) {
×
1252
      TAOS_CHECK_EXIT(terrno);
×
1253
    }
1254
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
×
1255
  }
1256
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
×
1257
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
×
1258
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->normSourceTbUid));
×
1259

1260
  int32_t numOfVgVer;
1261
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
×
1262
  if (numOfVgVer > 0) {
×
1263
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
×
1264
    if (pReq->pVgroupVerList == NULL) {
×
1265
      TAOS_CHECK_EXIT(terrno);
×
1266
    }
1267

1268
    for (int32_t i = 0; i < numOfVgVer; ++i) {
×
1269
      SVgroupVer v = {0};
×
1270
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
×
1271
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
×
1272
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
×
1273
        TAOS_CHECK_EXIT(terrno);
×
1274
      }
1275
    }
1276
  }
1277
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->recursiveTsma));
×
1278
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->baseTsmaName));
×
1279
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->streamReqLen));
×
1280
  if (pReq->streamReqLen > 0) {
×
1281
    pReq->createStreamReq = taosMemoryMalloc(pReq->streamReqLen);
×
1282
    if (pReq->createStreamReq == NULL) {
×
1283
      TAOS_CHECK_EXIT(terrno);
×
1284
    }
1285
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->createStreamReq));
×
1286
  }
1287
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dropStreamReqLen));
×
1288
  if (pReq->dropStreamReqLen > 0) {
×
1289
    pReq->dropStreamReq = taosMemoryMalloc(pReq->dropStreamReqLen);
×
1290
    if (pReq->dropStreamReq == NULL) {
×
1291
      TAOS_CHECK_EXIT(terrno);
×
1292
    }
1293
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dropStreamReq));
×
1294
  }
1295
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->uid));
×
1296
  tEndDecode(&decoder);
×
1297

1298
_exit:
×
1299
  tDecoderClear(&decoder);
×
1300
  return code;
×
1301
}
1302

1303
void tFreeSMCreateSmaReq(SMCreateSmaReq *pReq) {
×
1304
  taosMemoryFreeClear(pReq->expr);
×
1305
  taosMemoryFreeClear(pReq->tagsFilter);
×
1306
  taosMemoryFreeClear(pReq->sql);
×
1307
  taosMemoryFreeClear(pReq->ast);
×
1308
  taosArrayDestroy(pReq->pVgroupVerList);
×
1309
}
×
1310

1311
int32_t tSerializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
16✔
1312
  SEncoder encoder = {0};
16✔
1313
  int32_t  code = 0;
16✔
1314
  int32_t  lino;
1315
  int32_t  tlen;
1316
  tEncoderInit(&encoder, buf, bufLen);
16✔
1317

1318
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
1319
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
32!
1320
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
32!
1321

1322
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dropStreamReqLen));
32!
1323
  if (pReq->dropStreamReqLen > 0) {
16!
1324
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->dropStreamReq, pReq->dropStreamReqLen));
×
1325
  }
1326

1327
  tEndEncode(&encoder);
16✔
1328

1329
_exit:
16✔
1330
  if (code) {
16!
1331
    tlen = code;
×
1332
  } else {
1333
    tlen = encoder.pos;
16✔
1334
  }
1335
  tEncoderClear(&encoder);
16✔
1336
  return tlen;
16✔
1337
}
1338

1339
int32_t tDeserializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
2,124✔
1340
  SDecoder decoder = {0};
2,124✔
1341
  int32_t  code = 0;
2,124✔
1342
  int32_t  lino;
1343
  tDecoderInit(&decoder, buf, bufLen);
2,124✔
1344

1345
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,124!
1346
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
2,124!
1347
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
4,248!
1348

1349
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dropStreamReqLen));
4,248!
1350
  if (pReq->dropStreamReqLen > 0) {
2,124!
1351
    pReq->dropStreamReq = taosMemoryMalloc(pReq->dropStreamReqLen);
×
1352
    if (pReq->dropStreamReq == NULL) {
×
1353
      TAOS_CHECK_EXIT(terrno);
×
1354
    }
1355
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dropStreamReq));
×
1356
  }
1357

1358
  tEndDecode(&decoder);
2,124✔
1359

1360
_exit:
2,124✔
1361
  tDecoderClear(&decoder);
2,124✔
1362
  return code;
2,124✔
1363
}
1364

1365
int32_t tSerializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
×
1366
  SEncoder encoder = {0};
×
1367
  int32_t  code = 0;
×
1368
  int32_t  lino;
1369
  int32_t  tlen;
1370
  tEncoderInit(&encoder, buf, bufLen);
×
1371

1372
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1373
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
×
1374
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stbName));
×
1375
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
×
1376
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->idxName));
×
1377
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->idxType));
×
1378

1379
  tEndEncode(&encoder);
×
1380

1381
_exit:
×
1382
  if (code) {
×
1383
    tlen = code;
×
1384
  } else {
1385
    tlen = encoder.pos;
×
1386
  }
1387
  tEncoderClear(&encoder);
×
1388
  return tlen;
×
1389
}
1390

1391
int32_t tDeserializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
952✔
1392
  SDecoder decoder = {0};
952✔
1393
  int32_t  code = 0;
952✔
1394
  int32_t  lino;
1395
  tDecoderInit(&decoder, buf, bufLen);
952✔
1396

1397
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
952!
1398
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
952!
1399
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stbName));
952!
1400
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
952!
1401
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->idxName));
952!
1402
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->idxType));
1,904!
1403

1404
  tEndDecode(&decoder);
952✔
1405
_exit:
952✔
1406
  tDecoderClear(&decoder);
952✔
1407
  return code;
952✔
1408
}
1409

1410
int32_t tDeserializeSDropTagIdxReq(void *buf, int32_t bufLen, SDropTagIndexReq *pReq) {
2,120✔
1411
  SDecoder decoder = {0};
2,120✔
1412
  int32_t  code = 0;
2,120✔
1413
  int32_t  lino;
1414
  tDecoderInit(&decoder, buf, bufLen);
2,120✔
1415

1416
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,120!
1417
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
2,120!
1418
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
4,240!
1419

1420
  tEndDecode(&decoder);
2,120✔
1421
_exit:
2,120✔
1422
  tDecoderClear(&decoder);
2,120✔
1423
  return code;
2,120✔
1424
}
1425

1426
int32_t tSerializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1427
  SEncoder encoder = {0};
×
1428
  int32_t  code = 0;
×
1429
  int32_t  lino;
1430
  int32_t  tlen;
1431
  tEncoderInit(&encoder, buf, bufLen);
×
1432

1433
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1434

1435
  tEndEncode(&encoder);
×
1436
_exit:
×
1437
  if (code) {
×
1438
    tlen = code;
×
1439
  } else {
1440
    tlen = encoder.pos;
×
1441
  }
1442
  tEncoderClear(&encoder);
×
1443
  return tlen;
×
1444
}
1445

1446
int32_t tDeserializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1447
  SDecoder decoder = {0};
×
1448
  int32_t  code = 0;
×
1449
  int32_t  lino;
1450
  tDecoderInit(&decoder, buf, bufLen);
×
1451
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1452
  tEndDecode(&decoder);
×
1453
_exit:
×
1454
  tDecoderClear(&decoder);
×
1455
  return code;
×
1456
}
1457
void tFreeSMCreateFullTextReq(SMCreateFullTextReq *pReq) {
×
1458
  // impl later
1459
  return;
×
1460
}
1461

1462
int32_t tSerializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1463
  SEncoder encoder = {0};
×
1464
  int32_t  code = 0;
×
1465
  int32_t  lino;
1466
  int32_t  tlen;
1467
  tEncoderInit(&encoder, buf, bufLen);
×
1468

1469
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1470
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
1471
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
×
1472

1473
  int32_t nVgroup = taosArrayGetSize(pReq->pVloads);
×
1474
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, nVgroup));
×
1475
  for (int32_t i = 0; i < nVgroup; ++i) {
×
1476
    SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1477
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, vload->vgId));
×
1478
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, vload->nTimeSeries));
×
1479
  }
1480

1481
  tEndEncode(&encoder);
×
1482

1483
_exit:
×
1484
  if (code) {
×
1485
    tlen = code;
×
1486
  } else {
1487
    tlen = encoder.pos;
×
1488
  }
1489
  tEncoderClear(&encoder);
×
1490
  return tlen;
×
1491
}
1492

1493
int32_t tDeserializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1494
  int32_t  code = 0;
×
1495
  int32_t  lino;
1496
  SDecoder decoder = {0};
×
1497
  tDecoderInit(&decoder, buf, bufLen);
×
1498

1499
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1500
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
1501
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
×
1502
  int32_t nVgroup = 0;
×
1503
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nVgroup));
×
1504
  if (nVgroup > 0) {
×
1505
    pReq->pVloads = taosArrayInit_s(sizeof(SVnodeLoadLite), nVgroup);
×
1506
    if (!pReq->pVloads) {
×
1507
      TAOS_CHECK_EXIT(terrno);
×
1508
    }
1509
    for (int32_t i = 0; i < nVgroup; ++i) {
×
1510
      SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1511
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &(vload->vgId)));
×
1512
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &(vload->nTimeSeries)));
×
1513
    }
1514
  }
1515

1516
  tEndDecode(&decoder);
×
1517

1518
_exit:
×
1519
  tDecoderClear(&decoder);
×
1520
  return code;
×
1521
}
1522

1523
void tFreeSNotifyReq(SNotifyReq *pReq) {
×
1524
  if (pReq) {
×
1525
    taosArrayDestroy(pReq->pVloads);
×
1526
  }
1527
}
×
1528

1529
int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
1,204,236✔
1530
  SEncoder encoder = {0};
1,204,236✔
1531
  int32_t  code = 0;
1,204,236✔
1532
  int32_t  lino;
1533
  int32_t  tlen;
1534
  tEncoderInit(&encoder, buf, bufLen);
1,204,236✔
1535

1536
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,204,236!
1537

1538
  // status
1539
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sver));
2,408,472!
1540
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dnodeVer));
2,408,472!
1541
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
2,408,472!
1542
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
2,408,472!
1543
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->rebootTime));
2,408,472!
1544
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->updateTime));
2,408,472!
1545
  TAOS_CHECK_EXIT(tEncodeFloat(&encoder, pReq->numOfCores));
2,408,472!
1546
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfSupportVnodes));
2,408,472!
1547
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->numOfDiskCfg));
2,408,472!
1548
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memTotal));
2,408,472!
1549
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memAvail));
2,408,472!
1550
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeEp));
2,408,472!
1551
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
2,408,472!
1552

1553
  // cluster cfg
1554
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->clusterCfg.statusInterval));
2,408,472!
1555
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterCfg.checkTime));
2,408,472!
1556
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.timezone));
2,408,472!
1557
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.locale));
2,408,472!
1558
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.charset));
2,408,472!
1559
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.enableWhiteList));
2,408,472!
1560
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.encryptionKeyStat));
2,408,472!
1561
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->clusterCfg.encryptionKeyChksum));
2,408,472!
1562

1563
  // vnode loads
1564
  int32_t vlen = (int32_t)taosArrayGetSize(pReq->pVloads);
1,204,236✔
1565
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, vlen));
1,204,236!
1566
  for (int32_t i = 0; i < vlen; ++i) {
5,377,330✔
1567
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
4,173,094✔
1568
    int64_t     reserved = 0;
4,173,094✔
1569
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->vgId));
8,346,188!
1570
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncState));
8,346,188!
1571
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncRestore));
8,346,188!
1572
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncCanRead));
8,346,188!
1573
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->cacheUsage));
8,346,188!
1574
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTables));
8,346,188!
1575
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTimeSeries));
8,346,188!
1576
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->totalStorage));
8,346,188!
1577
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->compStorage));
8,346,188!
1578
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->pointsWritten));
8,346,188!
1579
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->numOfCachedTables));
8,346,188!
1580
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->learnerProgress));
8,346,188!
1581
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->roleTimeMs));
8,346,188!
1582
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->startTimeMs));
8,346,188!
1583
  }
1584

1585
  // mnode loads
1586
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncState));
2,408,472!
1587
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncRestore));
2,408,472!
1588

1589
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->qload.dnodeId));
2,408,472!
1590
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedQuery));
2,408,472!
1591
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedCQuery));
2,408,472!
1592
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedFetch));
2,408,472!
1593
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDrop));
2,408,472!
1594
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedNotify));
2,408,472!
1595
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedHb));
2,408,472!
1596
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDelete));
2,408,472!
1597
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.cacheDataSize));
2,408,472!
1598
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfQueryInQueue));
2,408,472!
1599
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfFetchInQueue));
2,408,472!
1600
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInQueryQueue));
2,408,472!
1601
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInFetchQueue));
2,408,472!
1602

1603
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->statusSeq));
2,408,472!
1604
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.syncTerm));
2,408,472!
1605
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.roleTimeMs));
2,408,472!
1606
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.ttlChangeOnWrite));
2,408,472!
1607

1608
  // vnode extra
1609
  for (int32_t i = 0; i < vlen; ++i) {
5,377,330✔
1610
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
4,173,094✔
1611
    int64_t     reserved = 0;
4,173,094✔
1612
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncTerm));
8,346,188!
1613
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
4,173,094!
1614
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
4,173,094!
1615
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
4,173,094!
1616
  }
1617

1618
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
2,408,472!
1619
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
2,408,472!
1620
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pReq->clusterCfg.monitorParas));
1,204,236!
1621

1622
  for (int32_t i = 0; i < vlen; ++i) {
5,377,330✔
1623
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
4,173,094✔
1624
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncAppliedIndex));
8,346,188!
1625
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncCommitIndex));
8,346,188!
1626
  }
1627
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
2,408,472!
1628

1629
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
2,408,472!
1630

1631
  // Encode buffer info
1632
  for (int32_t i = 0; i < vlen; ++i) {
5,377,330✔
1633
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
4,173,094✔
1634
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->bufferSegmentUsed));
8,346,188!
1635
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->bufferSegmentSize));
8,346,188!
1636
  }
1637

1638
  tEndEncode(&encoder);
1,204,236✔
1639

1640
_exit:
1,204,236✔
1641
  if (code) {
1,204,236!
1642
    tlen = code;
×
1643
  } else {
1644
    tlen = encoder.pos;
1,204,236✔
1645
  }
1646
  tEncoderClear(&encoder);
1,204,236✔
1647
  return tlen;
1,204,236✔
1648
}
1649

1650
int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
601,587✔
1651
  SDecoder decoder = {0};
601,587✔
1652
  int32_t  code = 0;
601,587✔
1653
  int32_t  lino;
1654
  tDecoderInit(&decoder, buf, bufLen);
601,587✔
1655

1656
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
601,587!
1657

1658
  // status
1659
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sver));
1,203,174!
1660
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dnodeVer));
1,203,174!
1661
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
1,203,174!
1662
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
1,203,174!
1663
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->rebootTime));
1,203,174!
1664
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->updateTime));
1,203,174!
1665
  TAOS_CHECK_EXIT(tDecodeFloat(&decoder, &pReq->numOfCores));
1,203,174!
1666
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfSupportVnodes));
1,203,174!
1667
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->numOfDiskCfg));
1,203,174!
1668
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memTotal));
1,203,174!
1669
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memAvail));
1,203,174!
1670
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeEp));
601,587!
1671
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
601,587!
1672

1673
  // cluster cfg
1674
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->clusterCfg.statusInterval));
1,203,174!
1675
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterCfg.checkTime));
1,203,174!
1676
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.timezone));
601,587!
1677
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.locale));
601,587!
1678
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.charset));
601,587!
1679
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.enableWhiteList));
1,203,174!
1680
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.encryptionKeyStat));
1,203,174!
1681
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->clusterCfg.encryptionKeyChksum));
1,203,174!
1682

1683
  // vnode loads
1684
  int32_t vlen = 0;
601,587✔
1685
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vlen));
601,587!
1686
  pReq->pVloads = taosArrayInit(vlen, sizeof(SVnodeLoad));
601,587✔
1687
  if (pReq->pVloads == NULL) {
601,587!
1688
    TAOS_CHECK_EXIT(terrno);
×
1689
  }
1690

1691
  for (int32_t i = 0; i < vlen; ++i) {
2,687,615✔
1692
    SVnodeLoad vload = {0};
2,086,028✔
1693
    vload.syncTerm = -1;
2,086,028✔
1694

1695
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.vgId));
2,086,028!
1696
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncState));
2,086,028!
1697
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncRestore));
2,086,028!
1698
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncCanRead));
2,086,028!
1699
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.cacheUsage));
2,086,028!
1700
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTables));
2,086,028!
1701
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTimeSeries));
2,086,028!
1702
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.totalStorage));
2,086,028!
1703
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.compStorage));
2,086,028!
1704
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.pointsWritten));
2,086,028!
1705
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.numOfCachedTables));
2,086,028!
1706
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.learnerProgress));
2,086,028!
1707
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.roleTimeMs));
2,086,028!
1708
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.startTimeMs));
2,086,028!
1709
    if (taosArrayPush(pReq->pVloads, &vload) == NULL) {
4,172,056!
1710
      TAOS_CHECK_EXIT(terrno);
×
1711
    }
1712
  }
1713

1714
  // mnode loads
1715
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncState));
1,203,174!
1716
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncRestore));
1,203,174!
1717
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->qload.dnodeId));
1,203,174!
1718
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedQuery));
1,203,174!
1719
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedCQuery));
1,203,174!
1720
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedFetch));
1,203,174!
1721
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDrop));
1,203,174!
1722
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedNotify));
1,203,174!
1723
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedHb));
1,203,174!
1724
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDelete));
1,203,174!
1725
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.cacheDataSize));
1,203,174!
1726
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfQueryInQueue));
1,203,174!
1727
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfFetchInQueue));
1,203,174!
1728
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInQueryQueue));
1,203,174!
1729
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInFetchQueue));
1,203,174!
1730
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->statusSeq));
1,203,174!
1731

1732
  pReq->mload.syncTerm = -1;
601,587✔
1733
  pReq->mload.roleTimeMs = 0;
601,587✔
1734
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1735
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.syncTerm));
1,203,174!
1736
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.roleTimeMs));
1,203,174!
1737
  }
1738

1739
  pReq->clusterCfg.ttlChangeOnWrite = false;
601,587✔
1740
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1741
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.ttlChangeOnWrite));
1,203,174!
1742
  }
1743

1744
  // vnode extra
1745
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1746
    for (int32_t i = 0; i < vlen; ++i) {
2,687,615✔
1747
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
2,086,028✔
1748
      int64_t     reserved = 0;
2,086,028✔
1749
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncTerm));
4,172,056!
1750
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
2,086,028!
1751
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
2,086,028!
1752
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
2,086,028!
1753
    }
1754
  }
1755
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1756
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
1,203,174!
1757
  }
1758

1759
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1760
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
1,203,174!
1761
  }
1762

1763
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1764
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pReq->clusterCfg.monitorParas));
601,587!
1765
  }
1766

1767
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1768
    for (int32_t i = 0; i < vlen; ++i) {
2,687,615✔
1769
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
2,086,028✔
1770
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncAppliedIndex));
4,172,056!
1771
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncCommitIndex));
4,172,056!
1772
    }
1773
  }
1774

1775
  if (!tDecodeIsEnd(&decoder)) {
601,587!
1776
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
1,203,174!
1777
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
1,203,174!
1778
  }
1779

1780
  // Decode buffer info
1781
  if (!tDecodeIsEnd(&decoder)) {
601,587✔
1782
    for (int32_t i = 0; i < vlen; ++i) {
2,343,880✔
1783
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
2,086,028✔
1784
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->bufferSegmentUsed));
4,172,056!
1785
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->bufferSegmentSize));
4,172,056!
1786
    }
1787
  }
1788

1789
  tEndDecode(&decoder);
601,587✔
1790

1791
_exit:
601,587✔
1792
  tDecoderClear(&decoder);
601,587✔
1793
  return code;
601,587✔
1794
}
1795

1796
void tFreeSStatusReq(SStatusReq *pReq) { taosArrayDestroy(pReq->pVloads); }
602,118✔
1797

1798
int32_t tSerializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
5,352✔
1799
  SEncoder encoder = {0};
5,352✔
1800
  int32_t  code = 0;
5,352✔
1801
  int32_t  lino;
1802
  int32_t  tlen;
1803
  tEncoderInit(&encoder, buf, bufLen);
5,352✔
1804
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,352!
1805
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cver));
10,704!
1806
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->forceReadConfig));
10,704!
1807
  if (pReq->forceReadConfig) {
5,352✔
1808
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pReq->array));
18!
1809
  }
1810
  tEndEncode(&encoder);
5,352✔
1811
_exit:
5,352✔
1812
  if (code) {
5,352!
1813
    tlen = code;
×
1814
  } else {
1815
    tlen = encoder.pos;
5,352✔
1816
  }
1817
  tEncoderClear(&encoder);
5,352✔
1818
  return tlen;
5,352✔
1819
}
1820

1821
int32_t tDeserializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
2,677✔
1822
  SDecoder decoder = {0};
2,677✔
1823
  int32_t  code = 0;
2,677✔
1824
  int32_t  lino;
1825
  tDecoderInit(&decoder, buf, bufLen);
2,677✔
1826
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,677!
1827
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cver));
5,354!
1828
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->forceReadConfig));
5,354!
1829
  if (pReq->forceReadConfig) {
2,677✔
1830
    pReq->array = taosArrayInit(128, sizeof(SConfigItem));
9✔
1831
    if (pReq->array == NULL) {
9!
1832
      TAOS_CHECK_EXIT(terrno);
×
1833
    }
1834
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pReq->array));
9!
1835
  }
1836
  tEndDecode(&decoder);
2,677✔
1837
_exit:
2,677✔
1838
  tDecoderClear(&decoder);
2,677✔
1839
  return code;
2,677✔
1840
}
1841

1842
void tFreeSConfigReq(SConfigReq *pReq) { taosArrayDestroy(pReq->array); }
2,677✔
1843

1844
int32_t tSerializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
5,354✔
1845
  SEncoder encoder = {0};
5,354✔
1846
  int32_t  code = 0;
5,354✔
1847
  int32_t  lino;
1848
  int32_t  tlen;
1849
  tEncoderInit(&encoder, buf, bufLen);
5,354✔
1850
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,354!
1851
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->forceReadConfig));
10,708!
1852
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isConifgVerified));
10,708!
1853
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isVersionVerified));
10,708!
1854
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->cver));
10,708!
1855
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
5,354!
1856
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pRsp->array));
5,354!
1857
  }
1858
  tEndEncode(&encoder);
5,354✔
1859
_exit:
5,354✔
1860
  if (code) {
5,354!
1861
    tlen = code;
×
1862
  } else {
1863
    tlen = encoder.pos;
5,354✔
1864
  }
1865
  tEncoderClear(&encoder);
5,354✔
1866
  return tlen;
5,354✔
1867
}
1868

1869
int32_t tDeserializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
2,672✔
1870
  SDecoder decoder = {0};
2,672✔
1871
  int32_t  code = 0;
2,672✔
1872
  int32_t  lino;
1873
  tDecoderInit(&decoder, buf, bufLen);
2,672✔
1874
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,672!
1875
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->forceReadConfig));
5,344!
1876
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isConifgVerified));
5,344!
1877
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isVersionVerified));
5,344!
1878
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->cver));
5,344!
1879
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
2,672!
1880
    pRsp->array = taosArrayInit(128, sizeof(SConfigItem));
2,672✔
1881
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pRsp->array));
2,672!
1882
  }
1883
_exit:
2,672✔
1884
  tEndDecode(&decoder);
2,672✔
1885
  tDecoderClear(&decoder);
2,672✔
1886
  return code;
2,672✔
1887
}
1888

1889
void tFreeSConfigRsp(SConfigRsp *pRsp) { taosArrayDestroy(pRsp->array); }
2,672✔
1890

1891
int32_t tSerializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
9,078✔
1892
  int32_t  code = 0, lino = 0;
9,078✔
1893
  int32_t  tlen = 0;
9,078✔
1894
  SEncoder encoder = {0};
9,078✔
1895
  tEncoderInit(&encoder, buf, bufLen);
9,078✔
1896

1897
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
9,078!
1898
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
18,156!
1899
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
18,156!
1900

1901
  tEndEncode(&encoder);
9,078✔
1902

1903
  tlen = encoder.pos;
9,078✔
1904
_exit:
9,078✔
1905
  tEncoderClear(&encoder);
9,078✔
1906
  return code < 0 ? code : tlen;
9,078!
1907
}
1908

1909
int32_t tDeserializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
4,537✔
1910
  int32_t  code = 0, lino = 0;
4,537✔
1911
  SDecoder decoder = {0};
4,537✔
1912
  tDecoderInit(&decoder, buf, bufLen);
4,537✔
1913

1914
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,537!
1915
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
9,074!
1916
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
4,537!
1917

1918
_exit:
4,537✔
1919
  tEndDecode(&decoder);
4,537✔
1920
  tDecoderClear(&decoder);
4,537✔
1921
  return code;
4,537✔
1922
}
1923

1924
int32_t tSerializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
22,276✔
1925
  SEncoder encoder = {0};
22,276✔
1926
  int32_t  code = 0;
22,276✔
1927
  int32_t  lino;
1928
  int32_t  tlen;
1929
  tEncoderInit(&encoder, buf, bufLen);
22,276✔
1930

1931
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
22,276!
1932

1933
  // status
1934
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeVer));
44,552!
1935

1936
  // dnode cfg
1937
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeCfg.dnodeId));
44,552!
1938
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeCfg.clusterId));
44,552!
1939

1940
  // dnode eps
1941
  int32_t dlen = (int32_t)taosArrayGetSize(pRsp->pDnodeEps);
22,276✔
1942
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, dlen));
22,276!
1943
  for (int32_t i = 0; i < dlen; ++i) {
92,280✔
1944
    SDnodeEp *pDnodeEp = taosArrayGet(pRsp->pDnodeEps, i);
70,004✔
1945
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pDnodeEp->id));
140,008!
1946
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pDnodeEp->isMnode));
140,008!
1947
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pDnodeEp->ep.fqdn));
140,008!
1948
    TAOS_CHECK_EXIT(tEncodeU16(&encoder, pDnodeEp->ep.port));
140,008!
1949
  }
1950

1951
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusSeq));
44,552!
1952

1953
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ipWhiteVer));
44,552!
1954
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->analVer));
44,552!
1955
  tEndEncode(&encoder);
22,276✔
1956

1957
_exit:
22,276✔
1958
  if (code) {
22,276!
1959
    tlen = code;
×
1960
  } else {
1961
    tlen = encoder.pos;
22,276✔
1962
  }
1963
  tEncoderClear(&encoder);
22,276✔
1964
  return tlen;
22,276✔
1965
}
1966

1967
int32_t tDeserializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
11,098✔
1968
  SDecoder decoder = {0};
11,098✔
1969
  int32_t  code = 0;
11,098✔
1970
  int32_t  lino;
1971
  tDecoderInit(&decoder, buf, bufLen);
11,098✔
1972

1973
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,098!
1974

1975
  // status
1976
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeVer));
22,196!
1977

1978
  // cluster cfg
1979
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeCfg.dnodeId));
22,196!
1980
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeCfg.clusterId));
22,196!
1981

1982
  // dnode eps
1983
  int32_t dlen = 0;
11,098✔
1984
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dlen));
11,098!
1985
  pRsp->pDnodeEps = taosArrayInit(dlen, sizeof(SDnodeEp));
11,098✔
1986
  if (pRsp->pDnodeEps == NULL) {
11,098!
1987
    TAOS_CHECK_EXIT(terrno);
×
1988
  }
1989

1990
  for (int32_t i = 0; i < dlen; ++i) {
45,961✔
1991
    SDnodeEp dnodeEp = {0};
34,863✔
1992
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dnodeEp.id));
34,863!
1993
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &dnodeEp.isMnode));
34,863!
1994
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, dnodeEp.ep.fqdn));
34,863!
1995
    TAOS_CHECK_EXIT(tDecodeU16(&decoder, &dnodeEp.ep.port));
34,863!
1996
    if (taosArrayPush(pRsp->pDnodeEps, &dnodeEp) == NULL) {
69,726!
1997
      TAOS_CHECK_EXIT(terrno);
×
1998
    }
1999
  }
2000

2001
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusSeq));
22,196!
2002

2003
  if (!tDecodeIsEnd(&decoder)) {
11,098!
2004
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ipWhiteVer));
22,196!
2005
  }
2006

2007
  if (!tDecodeIsEnd(&decoder)) {
11,098!
2008
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->analVer));
22,196!
2009
  }
2010

2011
  tEndDecode(&decoder);
11,098✔
2012
_exit:
11,098✔
2013
  tDecoderClear(&decoder);
11,098✔
2014
  return code;
11,098✔
2015
}
2016

2017
void tFreeSStatusRsp(SStatusRsp *pRsp) { taosArrayDestroy(pRsp->pDnodeEps); }
601,788✔
2018

2019
int32_t tSerializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
1,012✔
2020
  SEncoder encoder = {0};
1,012✔
2021
  int32_t  code = 0;
1,012✔
2022
  int32_t  lino;
2023
  int32_t  tlen;
2024
  tEncoderInit(&encoder, buf, bufLen);
1,012✔
2025

2026
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,012!
2027
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->contLen));
2,024!
2028
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pCont));
2,024!
2029
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->type));
2,024!
2030

2031
  tEndEncode(&encoder);
1,012✔
2032

2033
_exit:
1,012✔
2034
  if (code) {
1,012!
2035
    tlen = code;
×
2036
  } else {
2037
    tlen = encoder.pos;
1,012✔
2038
  }
2039
  tEncoderClear(&encoder);
1,012✔
2040
  return tlen;
1,012✔
2041
}
2042

2043
int32_t tDeserializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
11,373✔
2044
  SDecoder decoder = {0};
11,373✔
2045
  int32_t  code = 0;
11,373✔
2046
  int32_t  lino;
2047
  tDecoderInit(&decoder, buf, bufLen);
11,373✔
2048

2049
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,373!
2050
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->contLen));
22,746!
2051
  if (pReq->contLen > 0) {
11,373!
2052
    pReq->pCont = taosMemoryMalloc(pReq->contLen + 1);
11,373!
2053
    if (pReq->pCont == NULL) {
11,373!
2054
      TAOS_CHECK_EXIT(terrno);
×
2055
    }
2056
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCont));
11,373!
2057
  }
2058
  if (!tDecodeIsEnd(&decoder)) {
11,373!
2059
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->type));
22,746!
2060
  }
2061
  tEndDecode(&decoder);
11,373✔
2062
_exit:
11,373✔
2063
  tDecoderClear(&decoder);
11,373✔
2064
  return code;
11,373✔
2065
}
2066

2067
void tFreeSStatisReq(SStatisReq *pReq) { taosMemoryFreeClear(pReq->pCont); }
11,373!
2068

2069
int32_t tSerializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
70✔
2070
  SEncoder encoder = {0};
70✔
2071
  int32_t  code = 0;
70✔
2072
  int32_t  lino;
2073
  int32_t  tlen;
2074
  tEncoderInit(&encoder, buf, bufLen);
70✔
2075

2076
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
70!
2077
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
140!
2078
  ENCODESQL();
210!
2079
  tEndEncode(&encoder);
70✔
2080

2081
_exit:
70✔
2082
  if (code) {
70!
2083
    tlen = code;
×
2084
  } else {
2085
    tlen = encoder.pos;
70✔
2086
  }
2087
  tEncoderClear(&encoder);
70✔
2088
  return tlen;
70✔
2089
}
2090

2091
int32_t tDeserializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
105✔
2092
  SDecoder decoder = {0};
105✔
2093
  int32_t  code = 0;
105✔
2094
  int32_t  lino;
2095
  tDecoderInit(&decoder, buf, bufLen);
105✔
2096

2097
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
105!
2098
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
105!
2099
  DECODESQL();
315!
2100
  tEndDecode(&decoder);
105✔
2101

2102
_exit:
105✔
2103
  tDecoderClear(&decoder);
105✔
2104
  return code;
105✔
2105
}
2106

2107
void tFreeSDropUserReq(SDropUserReq *pReq) { FREESQL(); }
140!
2108

2109
int32_t tSerializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
210,951✔
2110
  SEncoder encoder = {0};
210,951✔
2111
  int32_t  code = 0;
210,951✔
2112
  int32_t  lino;
2113
  int32_t  tlen;
2114
  tEncoderInit(&encoder, buf, bufLen);
210,951✔
2115

2116
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
210,951!
2117

2118
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->operation));
421,908!
2119
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
421,908!
2120
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->table));
421,908!
2121
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
421,908!
2122
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pSql));
421,908!
2123

2124
  tEndEncode(&encoder);
210,954✔
2125

2126
_exit:
210,953✔
2127
  if (code) {
210,953!
2128
    tlen = code;
×
2129
  } else {
2130
    tlen = encoder.pos;
210,953✔
2131
  }
2132
  tEncoderClear(&encoder);
210,953✔
2133
  return tlen;
210,953✔
2134
}
2135

2136
int32_t tDeserializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
116,071✔
2137
  SDecoder decoder = {0};
116,071✔
2138
  int32_t  code = 0;
116,071✔
2139
  int32_t  lino;
2140
  tDecoderInit(&decoder, buf, bufLen);
116,071✔
2141

2142
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
116,072!
2143

2144
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->operation));
116,073!
2145
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
116,073!
2146
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->table));
116,072!
2147
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
232,143!
2148
  if (pReq->sqlLen > 0) {
116,072!
2149
    pReq->pSql = taosMemoryMalloc(pReq->sqlLen + 1);
116,073!
2150
    if (pReq->pSql == NULL) {
116,073!
2151
      TAOS_CHECK_EXIT(terrno);
×
2152
    }
2153
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pSql));
116,073!
2154
  }
2155
  tEndDecode(&decoder);
116,071✔
2156
_exit:
116,072✔
2157
  tDecoderClear(&decoder);
116,072✔
2158
  return code;
116,073✔
2159
}
2160

2161
void tFreeSAuditReq(SAuditReq *pReq) { taosMemoryFreeClear(pReq->pSql); }
116,071!
2162

2163
SIpWhiteListDual *cloneIpWhiteList(SIpWhiteListDual *pIpWhiteList) {
6,587✔
2164
  if (pIpWhiteList == NULL) return NULL;
6,587!
2165

2166
  int32_t sz = sizeof(SIpWhiteListDual) + pIpWhiteList->num * sizeof(SIpRange);
6,587✔
2167

2168
  SIpWhiteListDual *pNew = taosMemoryCalloc(1, sz);
6,587!
2169
  if (pNew) {
6,587!
2170
    memcpy(pNew, pIpWhiteList, sz);
6,587✔
2171
  }
2172
  return pNew;
6,587✔
2173
}
2174

2175
int32_t cvtIpWhiteListToDual(SIpWhiteList *pWhiteList, SIpWhiteListDual **pWhiteListDual) {
×
2176
  int32_t           code = 0;
×
2177
  int32_t           lino = 0;
×
2178
  SIpWhiteListDual *pList = NULL;
×
2179
  SIpRange          p6 = {0};
×
2180

2181
  pList = taosMemoryCalloc(1, sizeof(SIpWhiteListDual) + sizeof(SIpRange) * (pWhiteList->num + 1));
×
2182
  if (pList == NULL) {
×
2183
    TAOS_CHECK_GOTO(terrno, &lino, _OVER);
×
2184
  }
2185
  pList->num = pWhiteList->num;
×
2186
  for (int i = 0; i < pWhiteList->num; i++) {
×
2187
    SIpV4Range *pIp4 = &(pWhiteList->pIpRange[i]);
×
2188
    SIpRange   *pRange = &(pList->pIpRanges[i]);
×
2189

2190
    pRange->type = 0;
×
2191
    memcpy(&pRange->ipV4, pIp4, sizeof(SIpV4Range));
×
2192
  }
2193

2194
  code = createDefaultIp6Range(&p6);
×
2195
  TAOS_CHECK_GOTO(code, &lino, _OVER);
×
2196

2197
  memcpy(pList->pIpRanges + pList->num, &p6, sizeof(SIpRange));
×
2198
  pList->num++;
×
2199

2200
_OVER:
×
2201
  if (code != 0) {
×
2202
    taosMemoryFree(pList);
×
2203
  } else {
2204
    *pWhiteListDual = pList;
×
2205
  }
2206
  return code;
×
2207
}
2208

2209
int32_t createDefaultIp6Range(SIpRange *pRange) {
1,863✔
2210
  int32_t code = 0;
1,863✔
2211
  SIpAddr add6 = {.type = 1, .ipv6 = {"::1"}, .mask = 128};
1,863✔
2212
  return tIpStrToUint(&add6, pRange);
1,863✔
2213
}
2214

2215
int32_t createDefaultIp4Range(SIpRange *pRange) {
1,869✔
2216
  int32_t code = 0;
1,869✔
2217
  SIpAddr add4 = {.type = 0, .ipv4 = {"127.0.0.1"}, .mask = 32};
1,869✔
2218
  return tIpStrToUint(&add4, pRange);
1,869✔
2219
}
2220
int32_t cvtIpWhiteListDualToV4(SIpWhiteListDual *pWhiteListDual, SIpWhiteList **pWhiteList) {
×
2221
  int32_t code = 0;
×
2222

2223
  int32_t       num = 0;
×
2224
  SIpWhiteList *p = taosMemCalloc(1, sizeof(SIpWhiteList) + sizeof(SIpV4Range) * pWhiteListDual->num);
×
2225
  if (p == NULL) {
×
2226
    return terrno;
×
2227
  }
2228

2229
  for (int32_t i = 0; i < pWhiteListDual->num; ++i) {
×
2230
    SIpRange *pRange = &pWhiteListDual->pIpRanges[i];
×
2231
    if (pRange->type == 0) {
×
2232
      memcpy(&p->pIpRange[num], &pRange->ipV4, sizeof(SIpV4Range));
×
2233
    }
2234
    num++;
×
2235
  }
2236
  p->num = num;
×
2237

2238
  *pWhiteList = p;
×
2239

2240
  return code;
×
2241
}
2242
int32_t tSerializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
234✔
2243
  SEncoder encoder = {0};
234✔
2244
  int32_t  code = 0;
234✔
2245
  int32_t  lino;
2246
  int32_t  tlen;
2247
  tEncoderInit(&encoder, buf, bufLen);
234✔
2248

2249
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
234!
2250
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createType));
468!
2251
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
468!
2252
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
468!
2253
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
468!
2254
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
468!
2255
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
468!
2256
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
468!
2257
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
244✔
2258
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
20!
2259
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
20!
2260
  }
2261
  ENCODESQL();
702!
2262
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isImport));
468!
2263
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createDb));
468!
2264
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->passIsMd5));
468!
2265

2266
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
244✔
2267
    SIpRange *pRange = &pReq->pIpDualRanges[i];
10✔
2268
    code = tSerializeIpRange(&encoder, pRange);
10✔
2269
    TAOS_CHECK_EXIT(code);
10!
2270
  }
2271
  tEndEncode(&encoder);
234✔
2272

2273
_exit:
234✔
2274
  if (code) {
234!
2275
    tlen = code;
×
2276
  } else {
2277
    tlen = encoder.pos;
234✔
2278
  }
2279
  tEncoderClear(&encoder);
234✔
2280
  return tlen;
234✔
2281
}
2282

2283
int32_t tDeserializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
288✔
2284
  SDecoder decoder = {0};
288✔
2285
  int32_t  code = 0;
288✔
2286
  int32_t  lino;
2287
  tDecoderInit(&decoder, buf, bufLen);
288✔
2288

2289
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
288!
2290
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createType));
576!
2291
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
576!
2292
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
576!
2293
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
576!
2294
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
288!
2295
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
288!
2296
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
576!
2297
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
288!
2298
  if (pReq->pIpRanges == NULL) {
288!
2299
    TAOS_CHECK_EXIT(terrno);
×
2300
  }
2301
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
298✔
2302
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
20!
2303
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
20!
2304
  }
2305
  DECODESQL();
864!
2306
  if (!tDecodeIsEnd(&decoder)) {
288!
2307
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isImport));
576!
2308
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createDb));
576!
2309
  }
2310
  if (!tDecodeIsEnd(&decoder)) {
288!
2311
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->passIsMd5));
576!
2312
  }
2313

2314
  if (!tDecodeIsEnd(&decoder)) {
288✔
2315
    pReq->pIpDualRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpRange));
6!
2316
    if (pReq->pIpDualRanges == NULL) {
6!
2317
      TAOS_CHECK_EXIT(terrno);
×
2318
    }
2319
    for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
16✔
2320
      SIpRange *pRange = &pReq->pIpDualRanges[i];
10✔
2321
      code = tDeserializeIpRange(&decoder, pRange);
10✔
2322
      TAOS_CHECK_EXIT(code);
10!
2323
    }
2324
  }
2325

2326
  tEndDecode(&decoder);
288✔
2327

2328
_exit:
288✔
2329
  tDecoderClear(&decoder);
288✔
2330
  return code;
288✔
2331
}
2332

2333
static int32_t getIpv4Range(SUpdateUserIpWhite *pReq, SIpV4Range **pIpRange, int32_t *num) {
×
2334
  int32_t code = 0;
×
2335
  if (pReq->numOfRange <= 0) {
×
2336
    return code;
×
2337
  }
2338

2339
  SIpV4Range *p = taosMemoryCalloc(1, pReq->numOfRange * sizeof(SIpV4Range));
×
2340
  if (p == NULL) {
×
2341
    return terrno;
×
2342
  }
2343

2344
  int32_t cnt = 0;
×
2345
  for (int32_t i = 0; i < pReq->numOfRange; i++) {
×
2346
    SIpRange *pRange = &pReq->pIpDualRanges[i];
×
2347
    if (pRange->type == 0) {
×
2348
      SIpV4Range *pIp4 = (SIpV4Range *)&pRange->ipV4;
×
2349
      memcpy(&p[cnt], pIp4, sizeof(SIpV4Range));
×
2350
    } else {
2351
      continue;
×
2352
    }
2353
  }
2354

2355
  *pIpRange = p;
×
2356
  *num = cnt;
×
2357

2358
  return code;
×
2359
}
2360
int32_t tSerializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
×
2361
  SEncoder    encoder = {0};
×
2362
  int32_t     code = 0;
×
2363
  int32_t     lino;
2364
  int32_t     tlen;
2365
  int32_t     num = 0;
×
2366
  SIpV4Range *p = NULL;
×
2367

2368
  tEncoderInit(&encoder, buf, bufLen);
×
2369
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
2370
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ver));
×
2371
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfUser));
×
2372
  for (int i = 0; i < pReq->numOfUser; i++) {
×
2373
    SUpdateUserIpWhite *pUser = &(pReq->pUserIpWhite[i]);
×
2374

2375
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pUser->ver));
×
2376
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pUser->user));
×
2377

2378
    TAOS_CHECK_EXIT(getIpv4Range(pUser, &p, &num));
×
2379
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
2380
    for (int32_t i = 0; i < num; i++) {
×
2381
      SIpV4Range *pRange = &p[i];
×
2382
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->ip));
×
2383
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->mask));
×
2384
    }
2385
    taosMemFreeClear(p);
×
2386
  }
2387

2388
  tEndEncode(&encoder);
×
2389

2390
_exit:
×
2391
  taosMemFreeClear(p);
×
2392
  if (code) {
×
2393
    tlen = code;
×
2394
  } else {
2395
    tlen = encoder.pos;
×
2396
  }
2397
  tEncoderClear(&encoder);
×
2398
  return tlen;
×
2399
}
2400
int32_t tDeserializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
×
2401
  SDecoder decoder = {0};
×
2402
  int32_t  code = 0;
×
2403
  int32_t  lino;
2404
  tDecoderInit(&decoder, buf, bufLen);
×
2405

2406
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2407
  // impl later
2408
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ver));
×
2409
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfUser));
×
2410

2411
  if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) {
×
2412
    TAOS_CHECK_EXIT(terrno);
×
2413
  }
2414
  for (int i = 0; i < pReq->numOfUser; i++) {
×
2415
    SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
×
2416
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pUserWhite->ver));
×
2417
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pUserWhite->user));
×
2418
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pUserWhite->numOfRange));
×
2419

2420
    if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpV4Range))) == NULL) {
×
2421
      TAOS_CHECK_EXIT(terrno);
×
2422
    }
2423
    for (int j = 0; j < pUserWhite->numOfRange; j++) {
×
2424
      SIpV4Range *pRange = &pUserWhite->pIpRanges[j];
×
2425
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->ip));
×
2426
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->mask));
×
2427
    }
2428
  }
2429

2430
  tEndDecode(&decoder);
×
2431

2432
_exit:
×
2433
  tDecoderClear(&decoder);
×
2434
  return code;
×
2435
}
2436
void tFreeSUpdateIpWhiteReq(SUpdateIpWhite *pReq) {
38✔
2437
  if (pReq == NULL) return;
38!
2438

2439
  if (pReq->pUserIpWhite) {
38!
2440
    for (int i = 0; i < pReq->numOfUser; i++) {
76✔
2441
      SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
38✔
2442
      taosMemoryFree(pUserWhite->pIpRanges);
38!
2443
    }
2444
  }
2445
  taosMemoryFree(pReq->pUserIpWhite);
38!
2446
  return;
39✔
2447
}
2448

2449
int32_t tSerializeIpRange(SEncoder *encoder, SIpRange *pRange) {
444,196✔
2450
  int32_t lino;
2451
  int32_t code = 0;
444,196✔
2452

2453
  TAOS_CHECK_EXIT(tEncodeI8(encoder, pRange->type));
888,392!
2454
  if (pRange->type == 0) {
444,196✔
2455
    SIpV4Range *pIp4 = (SIpV4Range *)&pRange->ipV4;
434,656✔
2456
    TAOS_CHECK_EXIT(tEncodeU32(encoder, pIp4->ip));
869,312!
2457
    TAOS_CHECK_EXIT(tEncodeU32(encoder, pIp4->mask));
869,312!
2458
  } else {
2459
    SIpV6Range *pIp6 = (SIpV6Range *)&pRange->ipV6;
9,540✔
2460
    TAOS_CHECK_EXIT(tEncodeU64(encoder, pIp6->addr[0]));
19,080!
2461
    TAOS_CHECK_EXIT(tEncodeU64(encoder, pIp6->addr[1]));
19,080!
2462
    TAOS_CHECK_EXIT(tEncodeU32(encoder, pIp6->mask));
19,080!
2463
  }
2464
_exit:
9,540✔
2465
  return code;
444,196✔
2466
}
2467

2468
int32_t tDeserializeIpRange(SDecoder *decoder, SIpRange *pRange) {
672,765✔
2469
  int32_t lino = 0;
672,765✔
2470
  int32_t code = 0;
672,765✔
2471

2472
  TAOS_CHECK_EXIT(tDecodeI8(decoder, &pRange->type));
1,345,539!
2473
  if (pRange->type == 0) {
672,774✔
2474
    SIpV4Range *pIp4 = (SIpV4Range *)&pRange->ipV4;
667,772✔
2475
    TAOS_CHECK_EXIT(tDecodeU32(decoder, &pIp4->ip));
1,335,540!
2476
    TAOS_CHECK_EXIT(tDecodeU32(decoder, &pIp4->mask));
1,335,570!
2477
  } else {
2478
    SIpV6Range *pIp6 = (SIpV6Range *)&pRange->ipV6;
5,002✔
2479
    TAOS_CHECK_EXIT(tDecodeU64(decoder, &pIp6->addr[0]));
10,016!
2480
    TAOS_CHECK_EXIT(tDecodeU64(decoder, &pIp6->addr[1]));
10,028!
2481
    TAOS_CHECK_EXIT(tDecodeU32(decoder, &pIp6->mask));
10,028!
2482
  }
2483
_exit:
5,014✔
2484
  return code;
672,816✔
2485
}
2486
int32_t tSerializeSUpdateIpWhiteDual(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
14✔
2487
  SEncoder encoder = {0};
14✔
2488
  int32_t  code = 0;
14✔
2489
  int32_t  lino;
2490
  int32_t  tlen;
2491

2492
  tEncoderInit(&encoder, buf, bufLen);
14✔
2493
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
2494
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ver));
28!
2495
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfUser));
28!
2496
  for (int i = 0; i < pReq->numOfUser; i++) {
28✔
2497
    SUpdateUserIpWhite *pUser = &(pReq->pUserIpWhite[i]);
14✔
2498

2499
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pUser->ver));
28!
2500
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pUser->user));
28!
2501
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUser->numOfRange));
28!
2502
    for (int j = 0; j < pUser->numOfRange; j++) {
42✔
2503
      SIpRange *pRange = &pUser->pIpDualRanges[j];
28✔
2504
      TAOS_CHECK_EXIT(tSerializeIpRange(&encoder, pRange));
28!
2505
    }
2506
  }
2507

2508
  tEndEncode(&encoder);
14✔
2509

2510
_exit:
14✔
2511
  if (code) {
14!
2512
    tlen = code;
×
2513
  } else {
2514
    tlen = encoder.pos;
14✔
2515
  }
2516
  tEncoderClear(&encoder);
14✔
2517
  return tlen;
14✔
2518
}
2519
int32_t tDeserializeSUpdateIpWhiteDual(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
7✔
2520
  SDecoder decoder = {0};
7✔
2521
  int32_t  code = 0;
7✔
2522
  int32_t  lino;
2523
  tDecoderInit(&decoder, buf, bufLen);
7✔
2524

2525
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7!
2526
  // impl later
2527
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ver));
14!
2528
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfUser));
14!
2529

2530
  if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) {
7!
2531
    TAOS_CHECK_EXIT(terrno);
×
2532
  }
2533
  for (int i = 0; i < pReq->numOfUser; i++) {
14✔
2534
    SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
7✔
2535
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pUserWhite->ver));
14!
2536
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pUserWhite->user));
7!
2537
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pUserWhite->numOfRange));
14!
2538

2539
    if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpRange))) == NULL) {
7!
2540
      TAOS_CHECK_EXIT(terrno);
×
2541
    }
2542
    for (int j = 0; j < pUserWhite->numOfRange; j++) {
21✔
2543
      SIpRange *pRange = &pUserWhite->pIpDualRanges[j];
14✔
2544
      TAOS_CHECK_EXIT(tDeserializeIpRange(&decoder, pRange));
14!
2545
    }
2546
  }
2547

2548
  tEndDecode(&decoder);
7✔
2549
_exit:
7✔
2550
  if (code < 0) {
7!
2551
    uError("Failed to deserialize SUpdateIpWhiteDual at line %d, code: %s", lino, tstrerror(code));
×
2552
  }
2553
  tDecoderClear(&decoder);
7✔
2554
  return code;
7✔
2555
}
2556
void tFreeSUpdateIpWhiteDualReq(SUpdateIpWhite *pReq) {
7✔
2557
  if (pReq == NULL) return;
7!
2558

2559
  if (pReq->pUserIpWhite) {
7!
2560
    for (int i = 0; i < pReq->numOfUser; i++) {
14✔
2561
      SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
7✔
2562
      taosMemoryFree(pUserWhite->pIpDualRanges);
7!
2563
    }
2564
  }
2565
  taosMemoryFree(pReq->pUserIpWhite);
7!
2566
  return;
7✔
2567
}
2568

2569
int32_t cloneSUpdateIpWhiteReq(SUpdateIpWhite *pReq, SUpdateIpWhite **pUpdateMsg) {
221,442✔
2570
  int32_t code = 0;
221,442✔
2571
  if (pReq == NULL) {
221,442✔
2572
    return 0;
221,410✔
2573
  }
2574
  SUpdateIpWhite *pClone = taosMemoryCalloc(1, sizeof(SUpdateIpWhite));
32!
2575
  if (pClone == NULL) {
32!
2576
    return terrno;
×
2577
  }
2578

2579
  pClone->numOfUser = pReq->numOfUser;
32✔
2580
  pClone->ver = pReq->ver;
32✔
2581
  pClone->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser);
32!
2582
  if (pClone->pUserIpWhite == NULL) {
32!
2583
    taosMemoryFree(pClone);
×
2584
    return terrno;
×
2585
  }
2586

2587
  for (int i = 0; i < pReq->numOfUser; i++) {
64✔
2588
    SUpdateUserIpWhite *pNew = &pClone->pUserIpWhite[i];
32✔
2589
    SUpdateUserIpWhite *pOld = &pReq->pUserIpWhite[i];
32✔
2590

2591
    pNew->ver = pOld->ver;
32✔
2592
    memcpy(pNew->user, pOld->user, strlen(pOld->user));
32✔
2593
    pNew->numOfRange = pOld->numOfRange;
32✔
2594

2595
    int32_t sz = pOld->numOfRange * sizeof(SIpRange);
32✔
2596
    pNew->pIpDualRanges = taosMemoryCalloc(1, sz);
32!
2597
    if (pNew->pIpDualRanges == NULL) {
32!
2598
      code = terrno;
×
2599
      break;
×
2600
    }
2601
    memcpy(pNew->pIpDualRanges, pOld->pIpDualRanges, sz);
32✔
2602
  }
2603
_return:
32✔
2604
  if (code < 0) {
32!
2605
    tFreeSUpdateIpWhiteReq(pClone);
×
2606
    taosMemoryFree(pClone);
×
2607
  } else {
2608
    *pUpdateMsg = pClone;
32✔
2609
  }
2610
  return code;
32✔
2611
}
2612
int32_t tSerializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
14✔
2613
  SEncoder encoder = {0};
14✔
2614
  int32_t  code = 0;
14✔
2615
  int32_t  lino;
2616
  int32_t  tlen;
2617
  tEncoderInit(&encoder, buf, bufLen);
14✔
2618

2619
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
2620
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
28!
2621
  tEndEncode(&encoder);
14✔
2622

2623
_exit:
14✔
2624
  if (code) {
14!
2625
    tlen = code;
×
2626
  } else {
2627
    tlen = encoder.pos;
14✔
2628
  }
2629
  tEncoderClear(&encoder);
14✔
2630
  return tlen;
14✔
2631
}
2632

2633
int32_t tDeserializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
7✔
2634
  SDecoder decoder = {0};
7✔
2635
  int32_t  code = 0;
7✔
2636
  int32_t  lino;
2637

2638
  tDecoderInit(&decoder, buf, bufLen);
7✔
2639

2640
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7!
2641
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
14!
2642
  tEndDecode(&decoder);
7✔
2643

2644
_exit:
7✔
2645
  tDecoderClear(&decoder);
7✔
2646
  return code;
7✔
2647
}
2648

2649
int32_t tSerializeRetrieveAnalyticAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalyticsAlgoReq *pReq) {
4✔
2650
  SEncoder encoder = {0};
4✔
2651
  int32_t  code = 0;
4✔
2652
  int32_t  lino;
2653
  int32_t  tlen;
2654
  tEncoderInit(&encoder, buf, bufLen);
4✔
2655

2656
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2657
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
8!
2658
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
8!
2659
  tEndEncode(&encoder);
4✔
2660

2661
_exit:
4✔
2662
  if (code) {
4!
2663
    tlen = code;
×
2664
  } else {
2665
    tlen = encoder.pos;
4✔
2666
  }
2667
  tEncoderClear(&encoder);
4✔
2668
  return tlen;
4✔
2669
}
2670

2671
int32_t tDeserializeRetrieveAnalyticAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalyticsAlgoReq *pReq) {
2✔
2672
  SDecoder decoder = {0};
2✔
2673
  int32_t  code = 0;
2✔
2674
  int32_t  lino;
2675

2676
  tDecoderInit(&decoder, buf, bufLen);
2✔
2677

2678
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2679
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
4!
2680
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
4!
2681
  tEndDecode(&decoder);
2✔
2682

2683
_exit:
2✔
2684
  tDecoderClear(&decoder);
2✔
2685
  return code;
2✔
2686
}
2687

2688
int32_t tSerializeRetrieveAnalyticAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalyticAlgoRsp *pRsp) {
4✔
2689
  SEncoder encoder = {0};
4✔
2690
  int32_t  code = 0;
4✔
2691
  int32_t  lino;
2692
  int32_t  tlen;
2693
  tEncoderInit(&encoder, buf, bufLen);
4✔
2694

2695
  int32_t numOfAlgos = 0;
4✔
2696
  void   *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2697
  while (pIter != NULL) {
30✔
2698
    SAnalyticsUrl *pUrl = pIter;
26✔
2699
    size_t         nameLen = 0;
26✔
2700
    const char    *name = taosHashGetKey(pIter, &nameLen);
26✔
2701
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_KEY_LEN && pUrl->urlLen > 0) {
26!
2702
      numOfAlgos++;
26✔
2703
    }
2704
    pIter = taosHashIterate(pRsp->hash, pIter);
26✔
2705
  }
2706

2707
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2708
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ver));
8!
2709
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfAlgos));
4!
2710

2711
  pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2712
  while (pIter != NULL) {
30✔
2713
    SAnalyticsUrl *pUrl = pIter;
26✔
2714
    size_t         nameLen = 0;
26✔
2715
    const char    *name = taosHashGetKey(pIter, &nameLen);
26✔
2716
    if (nameLen > 0 && pUrl->urlLen > 0) {
26!
2717
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, nameLen));
52!
2718
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)name, nameLen));
52!
2719
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->anode));
52!
2720
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->type));
52!
2721
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->urlLen));
52!
2722
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pUrl->url, pUrl->urlLen));
52!
2723
    }
2724
    pIter = taosHashIterate(pRsp->hash, pIter);
26✔
2725
  }
2726

2727
  tEndEncode(&encoder);
4✔
2728

2729
_exit:
4✔
2730
  if (code) {
4!
2731
    tlen = code;
×
2732
  } else {
2733
    tlen = encoder.pos;
4✔
2734
  }
2735
  tEncoderClear(&encoder);
4✔
2736
  return tlen;
4✔
2737
}
2738

2739
int32_t tDeserializeRetrieveAnalyticAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalyticAlgoRsp *pRsp) {
2✔
2740
  if (pRsp->hash == NULL) {
2!
2741
    pRsp->hash = taosHashInit(64, MurmurHash3_32, true, HASH_ENTRY_LOCK);
2✔
2742
    if (pRsp->hash == NULL) {
2!
2743
      terrno = TSDB_CODE_OUT_OF_BUFFER;
×
2744
      return terrno;
×
2745
    }
2746
  }
2747

2748
  SDecoder decoder = {0};
2✔
2749
  int32_t  code = 0;
2✔
2750
  int32_t  lino;
2751
  tDecoderInit(&decoder, buf, bufLen);
2✔
2752

2753
  int32_t       numOfAlgos = 0;
2✔
2754
  int32_t       nameLen;
2755
  int32_t       type;
2756
  char          name[TSDB_ANALYTIC_ALGO_KEY_LEN];
2757
  SAnalyticsUrl url = {0};
2✔
2758

2759
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2760
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ver));
4!
2761
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfAlgos));
2!
2762

2763
  for (int32_t f = 0; f < numOfAlgos; ++f) {
15✔
2764
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nameLen));
13!
2765
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_NAME_LEN) {
13!
2766
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, name));
13!
2767
    }
2768

2769
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.anode));
13!
2770
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &type));
13!
2771
    url.type = (EAnalAlgoType)type;
13✔
2772
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.urlLen));
13!
2773
    if (url.urlLen > 0) {
13!
2774
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&url.url, NULL) < 0);
13!
2775
    }
2776

2777
    char dstName[TSDB_ANALYTIC_ALGO_NAME_LEN] = {0};
13✔
2778
    strntolower(dstName, name, nameLen);
13✔
2779

2780
    TAOS_CHECK_EXIT(taosHashPut(pRsp->hash, dstName, nameLen, &url, sizeof(SAnalyticsUrl)));
13!
2781
  }
2782

2783
  tEndDecode(&decoder);
2✔
2784

2785
_exit:
2✔
2786
  tDecoderClear(&decoder);
2✔
2787
  return code;
2✔
2788
}
2789

2790
void tFreeRetrieveAnalyticAlgoRsp(SRetrieveAnalyticAlgoRsp *pRsp) {
4✔
2791
  void *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2792
  while (pIter != NULL) {
17✔
2793
    SAnalyticsUrl *pUrl = (SAnalyticsUrl *)pIter;
13✔
2794
    taosMemoryFree(pUrl->url);
13!
2795
    pIter = taosHashIterate(pRsp->hash, pIter);
13✔
2796
  }
2797
  taosHashCleanup(pRsp->hash);
4✔
2798

2799
  pRsp->hash = NULL;
4✔
2800
}
4✔
2801

2802
void tFreeSCreateUserReq(SCreateUserReq *pReq) {
405✔
2803
  FREESQL();
405!
2804
  taosMemoryFreeClear(pReq->pIpRanges);
405!
2805
  taosMemoryFreeClear(pReq->pIpDualRanges);
405!
2806
}
405✔
2807

2808
int32_t tSerializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
730✔
2809
  SEncoder encoder = {0};
730✔
2810
  int32_t  code = 0;
730✔
2811
  int32_t  lino;
2812
  int32_t  tlen;
2813
  tEncoderInit(&encoder, buf, bufLen);
730✔
2814

2815
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
730!
2816
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
1,460!
2817
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
1,460!
2818
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
1,460!
2819
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
1,460!
2820
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isView));
1,460!
2821
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
1,460!
2822
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
1,460!
2823
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->objname));
1,460!
2824
  int32_t len = strlen(pReq->tabName);
730✔
2825
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, len));
730!
2826
  if (len > 0) {
730✔
2827
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tabName));
348!
2828
  }
2829
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->tagCond, pReq->tagCondLen));
1,460!
2830
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
1,460!
2831
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
734✔
2832
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
8!
2833
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
8!
2834
  }
2835
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->privileges));
1,460!
2836
  ENCODESQL();
2,190!
2837
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->flag));
1,460!
2838
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->passIsMd5));
1,460!
2839

2840
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
734✔
2841
    SIpRange *pRange = &pReq->pIpDualRanges[i];
4✔
2842
    code = tSerializeIpRange(&encoder, pRange);
4✔
2843
    TAOS_CHECK_EXIT(code);
4!
2844
  }
2845
  tEndEncode(&encoder);
730✔
2846

2847
_exit:
730✔
2848
  if (code) {
730!
2849
    tlen = code;
×
2850
  } else {
2851
    tlen = encoder.pos;
730✔
2852
  }
2853
  tEncoderClear(&encoder);
730✔
2854
  return tlen;
730✔
2855
}
2856

2857
int32_t tDeserializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
2,444✔
2858
  SDecoder decoder = {0};
2,444✔
2859
  int32_t  code = 0;
2,444✔
2860
  int32_t  lino;
2861
  tDecoderInit(&decoder, buf, bufLen);
2,444✔
2862

2863
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,444!
2864
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
4,888!
2865
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
4,888!
2866
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
4,888!
2867
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
4,888!
2868
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isView));
4,888!
2869
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
2,444!
2870
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
2,444!
2871
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->objname));
2,444!
2872
  if (!tDecodeIsEnd(&decoder)) {
2,444!
2873
    int32_t len = 0;
2,444✔
2874
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &len));
2,444!
2875
    if (len > 0) {
2,444✔
2876
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tabName));
1,474!
2877
    }
2878
    uint64_t tagCondLen = 0;
2,444✔
2879
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->tagCond, &tagCondLen));
4,888!
2880
    pReq->tagCondLen = tagCondLen;
2,444✔
2881
  }
2882
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
4,888!
2883
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
2,444!
2884
  if (pReq->pIpRanges == NULL) {
2,444!
2885
    TAOS_CHECK_EXIT(terrno);
×
2886
  }
2887
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
2,448✔
2888
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
8!
2889
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
8!
2890
  }
2891
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->privileges));
4,888!
2892
  DECODESQL();
7,332!
2893
  if (!tDecodeIsEnd(&decoder)) {
2,444!
2894
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->flag));
4,888!
2895
  }
2896
  if (!tDecodeIsEnd(&decoder)) {
2,444!
2897
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->passIsMd5));
4,888!
2898
  }
2899

2900
  if (!tDecodeIsEnd(&decoder)) {
2,444✔
2901
    pReq->pIpDualRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpRange));
4!
2902
    if (pReq->pIpDualRanges == NULL) {
4!
2903
      TAOS_CHECK_EXIT(terrno);
×
2904
    }
2905
    for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
8✔
2906
      SIpRange *pRange = &pReq->pIpDualRanges[i];
4✔
2907
      code = tDeserializeIpRange(&decoder, pRange);
4✔
2908
      TAOS_CHECK_EXIT(code);
4!
2909
    }
2910
  }
2911

2912
  tEndDecode(&decoder);
2,444✔
2913

2914
_exit:
2,444✔
2915
  tDecoderClear(&decoder);
2,444✔
2916
  return code;
2,444✔
2917
}
2918

2919
void tFreeSAlterUserReq(SAlterUserReq *pReq) {
2,809✔
2920
  taosMemoryFreeClear(pReq->tagCond);
2,809!
2921
  taosMemoryFree(pReq->pIpRanges);
2,809!
2922
  taosMemoryFree(pReq->pIpDualRanges);
2,809!
2923
  FREESQL();
2,809!
2924
}
2,809✔
2925

2926
int32_t tSerializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
4,679✔
2927
  SEncoder encoder = {0};
4,679✔
2928
  int32_t  code = 0;
4,679✔
2929
  int32_t  lino;
2930
  int32_t  tlen;
2931

2932
  tEncoderInit(&encoder, buf, bufLen);
4,679✔
2933
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,700!
2934
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
9,402!
2935
  tEndEncode(&encoder);
4,701✔
2936

2937
_exit:
4,701✔
2938
  if (code) {
4,701!
2939
    tlen = code;
×
2940
  } else {
2941
    tlen = encoder.pos;
4,701✔
2942
  }
2943
  tEncoderClear(&encoder);
4,701✔
2944
  return tlen;
4,699✔
2945
}
2946

2947
int32_t tDeserializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
733,583✔
2948
  SDecoder decoder = {0};
733,583✔
2949
  int32_t  code = 0;
733,583✔
2950
  int32_t  lino;
2951
  tDecoderInit(&decoder, buf, bufLen);
733,583✔
2952

2953
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
733,586!
2954
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
733,587!
2955
  tEndDecode(&decoder);
733,585✔
2956

2957
_exit:
733,582✔
2958
  tDecoderClear(&decoder);
733,582✔
2959
  return code;
733,589✔
2960
}
2961

2962
int32_t tSerializeSGetUserAuthRspImpl(SEncoder *pEncoder, SGetUserAuthRsp *pRsp) {
1,512,900✔
2963
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->user));
3,025,800!
2964
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->superAuth));
3,025,800!
2965
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->sysInfo));
3,025,800!
2966
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->enable));
3,025,800!
2967
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->dropped));
3,025,800!
2968
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->version));
3,025,800!
2969

2970
  int32_t numOfCreatedDbs = taosHashGetSize(pRsp->createdDbs);
1,512,900✔
2971
  int32_t numOfReadDbs = taosHashGetSize(pRsp->readDbs);
1,512,871✔
2972
  int32_t numOfWriteDbs = taosHashGetSize(pRsp->writeDbs);
1,512,869✔
2973

2974
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfCreatedDbs));
1,512,877!
2975
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadDbs));
1,512,877!
2976
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteDbs));
1,512,877!
2977

2978
  char *db = taosHashIterate(pRsp->createdDbs, NULL);
1,512,877✔
2979
  while (db != NULL) {
40,275,136✔
2980
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
38,762,221!
2981
    db = taosHashIterate(pRsp->createdDbs, db);
38,762,221✔
2982
  }
2983

2984
  db = taosHashIterate(pRsp->readDbs, NULL);
1,512,915✔
2985
  while (db != NULL) {
1,513,533✔
2986
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
640!
2987
    db = taosHashIterate(pRsp->readDbs, db);
640✔
2988
  }
2989

2990
  db = taosHashIterate(pRsp->writeDbs, NULL);
1,512,893✔
2991
  while (db != NULL) {
1,513,503✔
2992
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
612!
2993
    db = taosHashIterate(pRsp->writeDbs, db);
612✔
2994
  }
2995

2996
  int32_t numOfReadTbs = taosHashGetSize(pRsp->readTbs);
1,512,891✔
2997
  int32_t numOfWriteTbs = taosHashGetSize(pRsp->writeTbs);
1,512,877✔
2998
  int32_t numOfAlterTbs = taosHashGetSize(pRsp->alterTbs);
1,512,870✔
2999
  int32_t numOfReadViews = taosHashGetSize(pRsp->readViews);
1,512,876✔
3000
  int32_t numOfWriteViews = taosHashGetSize(pRsp->writeViews);
1,512,879✔
3001
  int32_t numOfAlterViews = taosHashGetSize(pRsp->alterViews);
1,512,878✔
3002
  int32_t numOfUseDbs = taosHashGetSize(pRsp->useDbs);
1,512,877✔
3003
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadTbs));
1,512,873!
3004
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteTbs));
1,512,873!
3005
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterTbs));
1,512,873!
3006
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadViews));
1,512,873!
3007
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteViews));
1,512,873!
3008
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterViews));
1,512,873!
3009
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfUseDbs));
1,512,873!
3010

3011
  char *tb = taosHashIterate(pRsp->readTbs, NULL);
1,512,873✔
3012
  while (tb != NULL) {
1,514,466✔
3013
    size_t keyLen = 0;
1,586✔
3014
    void  *key = taosHashGetKey(tb, &keyLen);
1,586✔
3015
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
3,172!
3016
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
1,586!
3017

3018
    size_t valueLen = 0;
1,586✔
3019
    valueLen = strlen(tb);
1,586✔
3020
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
3,172!
3021
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
1,586!
3022

3023
    tb = taosHashIterate(pRsp->readTbs, tb);
1,586✔
3024
  }
3025

3026
  tb = taosHashIterate(pRsp->writeTbs, NULL);
1,512,880✔
3027
  while (tb != NULL) {
1,514,453✔
3028
    size_t keyLen = 0;
1,590✔
3029
    void  *key = taosHashGetKey(tb, &keyLen);
1,590✔
3030
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
3,180!
3031
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
1,590!
3032

3033
    size_t valueLen = 0;
1,590✔
3034
    valueLen = strlen(tb);
1,590✔
3035
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
3,180!
3036
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
1,590!
3037

3038
    tb = taosHashIterate(pRsp->writeTbs, tb);
1,590✔
3039
  }
3040

3041
  tb = taosHashIterate(pRsp->alterTbs, NULL);
1,512,863✔
3042
  while (tb != NULL) {
1,513,066✔
3043
    size_t keyLen = 0;
210✔
3044
    void  *key = taosHashGetKey(tb, &keyLen);
210✔
3045
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
420!
3046
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
210!
3047

3048
    size_t valueLen = 0;
210✔
3049
    valueLen = strlen(tb);
210✔
3050
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
420!
3051
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
210!
3052

3053
    tb = taosHashIterate(pRsp->alterTbs, tb);
210✔
3054
  }
3055

3056
  tb = taosHashIterate(pRsp->readViews, NULL);
1,512,856✔
3057
  while (tb != NULL) {
1,513,171✔
3058
    size_t keyLen = 0;
328✔
3059
    void  *key = taosHashGetKey(tb, &keyLen);
328✔
3060
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
656!
3061
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
328!
3062

3063
    size_t valueLen = 0;
328✔
3064
    valueLen = strlen(tb);
328✔
3065
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
656!
3066
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
328!
3067

3068
    tb = taosHashIterate(pRsp->readViews, tb);
328✔
3069
  }
3070

3071
  tb = taosHashIterate(pRsp->writeViews, NULL);
1,512,843✔
3072
  while (tb != NULL) {
1,513,103✔
3073
    size_t keyLen = 0;
258✔
3074
    void  *key = taosHashGetKey(tb, &keyLen);
258✔
3075
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
516!
3076
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
258!
3077

3078
    size_t valueLen = 0;
258✔
3079
    valueLen = strlen(tb);
258✔
3080
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
516!
3081
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
258!
3082

3083
    tb = taosHashIterate(pRsp->writeViews, tb);
258✔
3084
  }
3085

3086
  tb = taosHashIterate(pRsp->alterViews, NULL);
1,512,845✔
3087
  while (tb != NULL) {
1,513,125✔
3088
    size_t keyLen = 0;
266✔
3089
    void  *key = taosHashGetKey(tb, &keyLen);
266✔
3090
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
532!
3091
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
266!
3092

3093
    size_t valueLen = 0;
266✔
3094
    valueLen = strlen(tb);
266✔
3095
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
532!
3096
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
266!
3097

3098
    tb = taosHashIterate(pRsp->alterViews, tb);
266✔
3099
  }
3100

3101
  int32_t *useDb = taosHashIterate(pRsp->useDbs, NULL);
1,512,859✔
3102
  while (useDb != NULL) {
1,513,718✔
3103
    size_t keyLen = 0;
866✔
3104
    void  *key = taosHashGetKey(useDb, &keyLen);
866✔
3105
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
1,732!
3106
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
866!
3107
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, *useDb));
1,732!
3108
    useDb = taosHashIterate(pRsp->useDbs, useDb);
866✔
3109
  }
3110

3111
  // since 3.0.7.0
3112
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->passVer));
3,025,704!
3113
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->whiteListVer));
3,025,704!
3114
  return 0;
1,512,852✔
3115
}
3116

3117
int32_t tSerializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
1,467,130✔
3118
  SEncoder encoder = {0};
1,467,130✔
3119
  int32_t  code = 0;
1,467,130✔
3120
  int32_t  lino;
3121
  int32_t  tlen;
3122
  tEncoderInit(&encoder, buf, bufLen);
1,467,130✔
3123

3124
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,467,145!
3125
  TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pRsp));
1,467,160!
3126

3127
  tEndEncode(&encoder);
1,467,111✔
3128

3129
_exit:
1,467,114✔
3130
  if (code) {
1,467,114!
3131
    tlen = code;
×
3132
  } else {
3133
    tlen = encoder.pos;
1,467,114✔
3134
  }
3135
  tEncoderClear(&encoder);
1,467,114✔
3136
  return tlen;
1,467,120✔
3137
}
3138

3139
int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRsp) {
3,079✔
3140
  char *key = NULL, *value = NULL;
3,079✔
3141
  pRsp->createdDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,079✔
3142
  pRsp->readDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,078✔
3143
  pRsp->writeDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,079✔
3144
  pRsp->readTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,077✔
3145
  pRsp->writeTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,079✔
3146
  pRsp->alterTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,079✔
3147
  pRsp->readViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,078✔
3148
  pRsp->writeViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,080✔
3149
  pRsp->alterViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,079✔
3150
  pRsp->useDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
3,078✔
3151
  if (pRsp->createdDbs == NULL || pRsp->readDbs == NULL || pRsp->writeDbs == NULL || pRsp->readTbs == NULL ||
3,080!
3152
      pRsp->writeTbs == NULL || pRsp->alterTbs == NULL || pRsp->readViews == NULL || pRsp->writeViews == NULL ||
3,080!
3153
      pRsp->alterViews == NULL || pRsp->useDbs == NULL) {
3,080!
3154
    goto _err;
×
3155
  }
3156

3157
  if (tDecodeCStrTo(pDecoder, pRsp->user) < 0) goto _err;
3,080!
3158
  if (tDecodeI8(pDecoder, &pRsp->superAuth) < 0) goto _err;
6,158!
3159
  if (tDecodeI8(pDecoder, &pRsp->sysInfo) < 0) goto _err;
6,157!
3160
  if (tDecodeI8(pDecoder, &pRsp->enable) < 0) goto _err;
6,155!
3161
  if (tDecodeI8(pDecoder, &pRsp->dropped) < 0) goto _err;
6,154!
3162
  if (tDecodeI32(pDecoder, &pRsp->version) < 0) goto _err;
6,154!
3163

3164
  int32_t numOfCreatedDbs = 0;
3,077✔
3165
  int32_t numOfReadDbs = 0;
3,077✔
3166
  int32_t numOfWriteDbs = 0;
3,077✔
3167
  if (tDecodeI32(pDecoder, &numOfCreatedDbs) < 0) goto _err;
3,077!
3168
  if (tDecodeI32(pDecoder, &numOfReadDbs) < 0) goto _err;
3,077!
3169
  if (tDecodeI32(pDecoder, &numOfWriteDbs) < 0) goto _err;
3,075!
3170

3171
  for (int32_t i = 0; i < numOfCreatedDbs; ++i) {
9,216✔
3172
    char db[TSDB_DB_FNAME_LEN] = {0};
6,135✔
3173
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
6,135!
3174
    int32_t len = strlen(db);
6,139✔
3175
    if (taosHashPut(pRsp->createdDbs, db, len + 1, db, len + 1) < 0) goto _err;
6,139!
3176
  }
3177

3178
  for (int32_t i = 0; i < numOfReadDbs; ++i) {
3,158✔
3179
    char db[TSDB_DB_FNAME_LEN] = {0};
77✔
3180
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
77!
3181
    int32_t len = strlen(db);
77✔
3182
    if (taosHashPut(pRsp->readDbs, db, len + 1, db, len + 1) < 0) goto _err;
77!
3183
  }
3184

3185
  for (int32_t i = 0; i < numOfWriteDbs; ++i) {
3,159✔
3186
    char db[TSDB_DB_FNAME_LEN] = {0};
78✔
3187
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
78!
3188
    int32_t len = strlen(db);
78✔
3189
    if (taosHashPut(pRsp->writeDbs, db, len + 1, db, len + 1) < 0) goto _err;
78!
3190
  }
3191

3192
  if (!tDecodeIsEnd(pDecoder)) {
3,081✔
3193
    int32_t numOfReadTbs = 0;
3,080✔
3194
    int32_t numOfWriteTbs = 0;
3,080✔
3195
    int32_t numOfAlterTbs = 0;
3,080✔
3196
    int32_t numOfReadViews = 0;
3,080✔
3197
    int32_t numOfWriteViews = 0;
3,080✔
3198
    int32_t numOfAlterViews = 0;
3,080✔
3199
    int32_t numOfUseDbs = 0;
3,080✔
3200
    if (tDecodeI32(pDecoder, &numOfReadTbs) < 0) goto _err;
3,080!
3201
    if (tDecodeI32(pDecoder, &numOfWriteTbs) < 0) goto _err;
3,079!
3202
    if (tDecodeI32(pDecoder, &numOfAlterTbs) < 0) goto _err;
3,079!
3203
    if (tDecodeI32(pDecoder, &numOfReadViews) < 0) goto _err;
3,079!
3204
    if (tDecodeI32(pDecoder, &numOfWriteViews) < 0) goto _err;
3,078!
3205
    if (tDecodeI32(pDecoder, &numOfAlterViews) < 0) goto _err;
3,078!
3206
    if (tDecodeI32(pDecoder, &numOfUseDbs) < 0) goto _err;
3,079!
3207

3208
    for (int32_t i = 0; i < numOfReadTbs; ++i) {
3,131✔
3209
      int32_t keyLen = 0;
52✔
3210
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
52!
3211

3212
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
52!
3213
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
52!
3214

3215
      int32_t valuelen = 0;
52✔
3216
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
52!
3217

3218
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
52!
3219
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
52!
3220

3221
      if (taosHashPut(pRsp->readTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
52!
3222

3223
      taosMemoryFreeClear(key);
52!
3224
      taosMemoryFreeClear(value);
52!
3225
    }
3226

3227
    for (int32_t i = 0; i < numOfWriteTbs; ++i) {
3,135✔
3228
      int32_t keyLen = 0;
56✔
3229
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
56!
3230

3231
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
56!
3232
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
56!
3233

3234
      int32_t valuelen = 0;
56✔
3235
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
56!
3236

3237
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
56!
3238
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
56!
3239

3240
      if (taosHashPut(pRsp->writeTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
56!
3241

3242
      taosMemoryFreeClear(key);
56!
3243
      taosMemoryFreeClear(value);
56!
3244
    }
3245

3246
    for (int32_t i = 0; i < numOfAlterTbs; ++i) {
3,091✔
3247
      int32_t keyLen = 0;
12✔
3248
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
12!
3249

3250
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
12!
3251
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
12!
3252

3253
      int32_t valuelen = 0;
12✔
3254
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
12!
3255

3256
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
12!
3257
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
12!
3258

3259
      if (taosHashPut(pRsp->alterTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
12!
3260

3261
      taosMemoryFreeClear(key);
12!
3262
      taosMemoryFreeClear(value);
12!
3263
    }
3264

3265
    for (int32_t i = 0; i < numOfReadViews; ++i) {
3,156✔
3266
      int32_t keyLen = 0;
77✔
3267
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
77!
3268

3269
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
77!
3270
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
77!
3271

3272
      int32_t valuelen = 0;
77✔
3273
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
77!
3274

3275
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
77!
3276
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
77!
3277

3278
      if (taosHashPut(pRsp->readViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
77!
3279

3280
      taosMemoryFreeClear(key);
77!
3281
      taosMemoryFreeClear(value);
77!
3282
    }
3283

3284
    for (int32_t i = 0; i < numOfWriteViews; ++i) {
3,140✔
3285
      int32_t keyLen = 0;
61✔
3286
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
61!
3287

3288
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
61!
3289
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
61!
3290

3291
      int32_t valuelen = 0;
61✔
3292
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
61!
3293

3294
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
61!
3295
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
61!
3296

3297
      if (taosHashPut(pRsp->writeViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
61!
3298

3299
      taosMemoryFreeClear(key);
61!
3300
      taosMemoryFreeClear(value);
61!
3301
    }
3302

3303
    for (int32_t i = 0; i < numOfAlterViews; ++i) {
3,141✔
3304
      int32_t keyLen = 0;
62✔
3305
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
62!
3306

3307
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
62!
3308
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
62!
3309

3310
      int32_t valuelen = 0;
62✔
3311
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
62!
3312

3313
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
62!
3314
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
62!
3315

3316
      if (taosHashPut(pRsp->alterViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
62!
3317

3318
      taosMemoryFreeClear(key);
62!
3319
      taosMemoryFreeClear(value);
62!
3320
    }
3321

3322
    for (int32_t i = 0; i < numOfUseDbs; ++i) {
3,244✔
3323
      int32_t keyLen = 0;
165✔
3324
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
165!
3325

3326
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
165!
3327
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
165!
3328

3329
      int32_t ref = 0;
165✔
3330
      if (tDecodeI32(pDecoder, &ref) < 0) goto _err;
165!
3331

3332
      if (taosHashPut(pRsp->useDbs, key, keyLen, &ref, sizeof(ref)) < 0) goto _err;
165!
3333
      taosMemoryFreeClear(key);
165!
3334
    }
3335
    // since 3.0.7.0
3336
    if (!tDecodeIsEnd(pDecoder)) {
3,079!
3337
      if (tDecodeI32(pDecoder, &pRsp->passVer) < 0) goto _err;
6,160!
3338
    } else {
3339
      pRsp->passVer = 0;
×
3340
    }
3341
    if (!tDecodeIsEnd(pDecoder)) {
3,079!
3342
      if (tDecodeI64(pDecoder, &pRsp->whiteListVer) < 0) goto _err;
6,159!
3343
    } else {
3344
      pRsp->whiteListVer = 0;
×
3345
    }
3346
  }
3347
  return 0;
3,079✔
3348
_err:
×
3349
  taosHashCleanup(pRsp->createdDbs);
×
3350
  taosHashCleanup(pRsp->readDbs);
×
3351
  taosHashCleanup(pRsp->writeDbs);
×
3352
  taosHashCleanup(pRsp->readTbs);
×
3353
  taosHashCleanup(pRsp->writeTbs);
×
3354
  taosHashCleanup(pRsp->alterTbs);
×
3355
  taosHashCleanup(pRsp->readViews);
×
3356
  taosHashCleanup(pRsp->writeViews);
×
3357
  taosHashCleanup(pRsp->alterViews);
×
3358
  taosHashCleanup(pRsp->useDbs);
×
3359

3360
  taosMemoryFreeClear(key);
×
3361
  taosMemoryFreeClear(value);
×
3362
  return -1;
×
3363
}
3364

3365
int32_t tDeserializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
2,340✔
3366
  SDecoder decoder = {0};
2,340✔
3367
  int32_t  code = 0;
2,340✔
3368
  int32_t  lino;
3369
  tDecoderInit(&decoder, buf, bufLen);
2,340✔
3370

3371
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,349!
3372
  TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, pRsp));
2,350!
3373

3374
  tEndDecode(&decoder);
2,349✔
3375

3376
_exit:
2,349✔
3377
  tDecoderClear(&decoder);
2,349✔
3378
  return code;
2,349✔
3379
}
3380

3381
void tFreeSGetUserAuthRsp(SGetUserAuthRsp *pRsp) {
756,465✔
3382
  taosHashCleanup(pRsp->createdDbs);
756,465✔
3383
  taosHashCleanup(pRsp->readDbs);
756,459✔
3384
  taosHashCleanup(pRsp->writeDbs);
756,460✔
3385
  taosHashCleanup(pRsp->readTbs);
756,463✔
3386
  taosHashCleanup(pRsp->writeTbs);
756,461✔
3387
  taosHashCleanup(pRsp->alterTbs);
756,463✔
3388
  taosHashCleanup(pRsp->readViews);
756,463✔
3389
  taosHashCleanup(pRsp->writeViews);
756,463✔
3390
  taosHashCleanup(pRsp->alterViews);
756,452✔
3391
  taosHashCleanup(pRsp->useDbs);
756,464✔
3392
}
756,464✔
3393

3394
int32_t tSerializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
×
3395
  SEncoder encoder = {0};
×
3396
  int32_t  code = 0;
×
3397
  int32_t  lino;
3398
  int32_t  tlen;
3399

3400
  tEncoderInit(&encoder, buf, bufLen);
×
3401

3402
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3403
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
×
3404
  tEndEncode(&encoder);
×
3405

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

3416
int32_t tDeserializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
456✔
3417
  SDecoder decoder = {0};
456✔
3418
  int32_t  code = 0;
456✔
3419
  int32_t  lino;
3420
  tDecoderInit(&decoder, buf, bufLen);
456✔
3421

3422
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
456!
3423
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
456!
3424
  tEndDecode(&decoder);
456✔
3425

3426
_exit:
456✔
3427
  tDecoderClear(&decoder);
456✔
3428
  return code;
456✔
3429
}
3430

3431
int32_t tSerializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
×
3432
  SEncoder encoder = {0};
×
3433
  int32_t  code = 0;
×
3434
  int32_t  lino;
3435
  int32_t  tlen;
3436
  tEncoderInit(&encoder, buf, bufLen);
×
3437

3438
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3439
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->user));
×
3440
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numWhiteLists));
×
3441
  for (int i = 0; i < pRsp->numWhiteLists; ++i) {
×
3442
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].ip));
×
3443
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].mask));
×
3444
  }
3445
  tEndEncode(&encoder);
×
3446

3447
_exit:
×
3448
  if (code) {
×
3449
    tlen = code;
×
3450
  } else {
3451
    tlen = encoder.pos;
×
3452
  }
3453
  tEncoderClear(&encoder);
×
3454
  return tlen;
×
3455
}
3456

3457
int32_t tDeserializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
×
3458
  SDecoder decoder = {0};
×
3459
  int32_t  code = 0;
×
3460
  int32_t  lino;
3461
  tDecoderInit(&decoder, buf, bufLen);
×
3462

3463
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3464
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->user));
×
3465
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numWhiteLists));
×
3466
  pRsp->pWhiteLists = taosMemoryMalloc(pRsp->numWhiteLists * sizeof(SIpV4Range));
×
3467
  if (pRsp->pWhiteLists == NULL) {
×
3468
    TAOS_CHECK_EXIT(terrno);
×
3469
  }
3470
  for (int32_t i = 0; i < pRsp->numWhiteLists; ++i) {
×
3471
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].ip)));
×
3472
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].mask)));
×
3473
  }
3474

3475
  tEndDecode(&decoder);
×
3476
_exit:
×
3477
  tDecoderClear(&decoder);
×
3478
  return code;
×
3479
}
3480
void tFreeSGetUserWhiteListRsp(SGetUserWhiteListRsp *pRsp) { taosMemoryFree(pRsp->pWhiteLists); }
×
3481

3482
int32_t tSerializeSGetUserWhiteListDualRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
912✔
3483
  SEncoder encoder = {0};
912✔
3484
  int32_t  code = 0;
912✔
3485
  int32_t  lino;
3486
  int32_t  tlen;
3487
  tEncoderInit(&encoder, buf, bufLen);
912✔
3488

3489
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
912!
3490
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->user));
1,824!
3491
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numWhiteLists));
1,824!
3492
  for (int i = 0; i < pRsp->numWhiteLists; ++i) {
2,736✔
3493
    SIpRange *range = &pRsp->pWhiteListsDual[i];
1,824✔
3494
    TAOS_CHECK_EXIT(tSerializeIpRange(&encoder, range));
1,824!
3495
  }
3496
  tEndEncode(&encoder);
912✔
3497

3498
_exit:
912✔
3499
  if (code) {
912!
3500
    tlen = code;
×
3501
  } else {
3502
    tlen = encoder.pos;
912✔
3503
  }
3504
  tEncoderClear(&encoder);
912✔
3505
  return tlen;
912✔
3506
}
3507
int32_t tDeserializeSGetUserWhiteListDualRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
×
3508
  SDecoder decoder = {0};
×
3509
  int32_t  code = 0;
×
3510
  int32_t  lino;
3511
  tDecoderInit(&decoder, buf, bufLen);
×
3512

3513
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3514
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->user));
×
3515
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numWhiteLists));
×
3516

3517
  pRsp->pWhiteListsDual = taosMemoryMalloc(pRsp->numWhiteLists * sizeof(SIpRange));
×
3518
  if (pRsp->pWhiteListsDual == NULL) {
×
3519
    TAOS_CHECK_EXIT(terrno);
×
3520
  }
3521
  for (int32_t i = 0; i < pRsp->numWhiteLists; ++i) {
×
3522
    SIpRange *range = &pRsp->pWhiteListsDual[i];
×
3523
    TAOS_CHECK_EXIT(tDeserializeIpRange(&decoder, range));
×
3524
  }
3525

3526
  tEndDecode(&decoder);
×
3527
_exit:
×
3528
  tDecoderClear(&decoder);
×
3529
  return code;
×
3530
}
3531

3532
int32_t tIpStrToUint(const SIpAddr *addr, SIpRange *range) {
15,882✔
3533
  int32_t code = 0;
15,882✔
3534
  range->type = addr->type;
15,882✔
3535
  const char *buf = IP_ADDR_STR(addr);
15,882✔
3536
  if (addr->type == 0) {
15,882✔
3537
    struct in_addr taddr;
3538
    if (inet_pton(AF_INET, buf, &taddr) <= 0) {
14,019!
3539
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3540
    }
3541

3542
    SIpV4Range *ipv4 = &range->ipV4;
14,019✔
3543
    ipv4->ip = taddr.s_addr;
14,019✔
3544
    ipv4->mask = addr->mask;
14,019✔
3545
  } else if (addr->type == 1) {
1,863!
3546
    struct in6_addr taddr;
3547
    if (inet_pton(AF_INET6, buf, &(taddr)) <= 0) {
1,863!
3548
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3549
    }
3550

3551
    SIpV6Range *ipv6 = &range->ipV6;
1,863✔
3552
    memcpy(&ipv6->addr[0], taddr.s6_addr, 8);
1,863✔
3553
    memcpy(&ipv6->addr[1], taddr.s6_addr + 8, 8);
1,863✔
3554

3555
    ipv6->mask = addr->mask;
1,863✔
3556
  }
3557
  return code;
15,882✔
3558
}
3559

3560
int32_t tIpUintToStr(const SIpRange *range, SIpAddr *addr) {
677,374✔
3561
  int32_t code = 0;
677,374✔
3562
  addr->type = range->type;
677,374✔
3563
  if (addr->type == 0) {
677,374✔
3564
    struct in_addr taddr;
3565
    memcpy(&taddr.s_addr, &range->ipV4.ip, sizeof(taddr.s_addr));
667,091✔
3566
    if (inet_ntop(AF_INET, &taddr, addr->ipv4, sizeof(addr->ipv4)) == NULL) {
667,091!
3567
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3568
    }
3569
    addr->mask = range->ipV4.mask;
667,053✔
3570
  } else {
3571
    struct in6_addr taddr;
3572
    memcpy(taddr.s6_addr, &range->ipV6.addr[0], 8);
10,283✔
3573
    memcpy(taddr.s6_addr + 8, &range->ipV6.addr[1], 8);
10,283✔
3574
    if (inet_ntop(AF_INET6, &taddr, addr->ipv6, sizeof(addr->ipv6)) == NULL) {
10,283!
3575
      code = TSDB_CODE_THIRDPARTY_ERROR;
×
3576
    }
3577
    addr->mask = range->ipV6.mask;
10,325✔
3578
  }
3579

3580
  return code;
677,378✔
3581
}
3582
int32_t tIpRangeSetMask(SIpRange *range, int32_t mask) {
12,156✔
3583
  if (range->type == 0) {
12,156!
3584
    SIpV4Range *p4 = (SIpV4Range *)&range->ipV4;
12,156✔
3585
    if (mask < 0 || mask > 32) {
12,156!
3586
      return TSDB_CODE_PAR_INVALID_IP_RANGE;
1✔
3587
    }
3588
    p4->mask = mask;
12,155✔
3589
  } else {
3590
    SIpV6Range *p6 = (SIpV6Range *)&range->ipV6;
×
3591
    if (mask < 0 || mask > 128) {
×
3592
      return TSDB_CODE_PAR_INVALID_IP_RANGE;
×
3593
    }
3594
    p6->mask = mask;
×
3595
  }
3596
  return 0;
12,155✔
3597
}
3598

3599
void tIpRangeSetDefaultMask(SIpRange *range) {
×
3600
  if (range->type == 0) {
×
3601
    SIpV4Range *p4 = (SIpV4Range *)&range->ipV4;
×
3602
    p4->mask = 128;
×
3603
  } else {
3604
    SIpV6Range *p6 = (SIpV6Range *)&range->ipV6;
×
3605
    p6->mask = 32;
×
3606
  }
3607
}
×
3608
void tFreeSGetUserWhiteListDualRsp(SGetUserWhiteListRsp *pRsp) { taosMemoryFree(pRsp->pWhiteListsDual); }
456!
3609

3610
int32_t tSerializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
×
3611
  SEncoder encoder = {0};
×
3612
  int32_t  code = 0;
×
3613
  int32_t  lino;
3614
  int32_t  tlen;
3615
  tEncoderInit(&encoder, buf, bufLen);
×
3616

3617
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3618
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
×
3619
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
×
3620
  ENCODESQL();
×
3621
  tEndEncode(&encoder);
×
3622

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

3633
int32_t tDeserializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
6✔
3634
  SDecoder decoder = {0};
6✔
3635
  int32_t  code = 0;
6✔
3636
  int32_t  lino;
3637
  tDecoderInit(&decoder, buf, bufLen);
6✔
3638

3639
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
3640
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
6!
3641
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
6!
3642
  DECODESQL();
18!
3643
  tEndDecode(&decoder);
6✔
3644

3645
_exit:
6✔
3646
  tDecoderClear(&decoder);
6✔
3647
  return code;
6✔
3648
}
3649

3650
void tFreeSMCfgClusterReq(SMCfgClusterReq *pReq) { FREESQL(); }
6!
3651

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

3659
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,936!
3660
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
9,872!
3661
  ENCODESQL();
10,138!
3662
  tEndEncode(&encoder);
4,936✔
3663

3664
_exit:
4,936✔
3665
  if (code) {
4,936!
3666
    tlen = code;
×
3667
  } else {
3668
    tlen = encoder.pos;
4,936✔
3669
  }
3670
  tEncoderClear(&encoder);
4,936✔
3671
  return tlen;
4,936✔
3672
}
3673

3674
int32_t tDeserializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
2,799✔
3675
  SDecoder decoder = {0};
2,799✔
3676
  int32_t  code = 0;
2,799✔
3677
  int32_t  lino;
3678
  tDecoderInit(&decoder, buf, bufLen);
2,799✔
3679

3680
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,799!
3681
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
5,598!
3682
  DECODESQL();
6,328!
3683
  tEndDecode(&decoder);
2,799✔
3684

3685
_exit:
2,799✔
3686
  tDecoderClear(&decoder);
2,799✔
3687
  return code;
2,799✔
3688
}
3689

3690
int32_t tEncodeSNodeEpSet(SEncoder* pEncoder, SNodeEpSet *pNode) {
3,366✔
3691
  int32_t code = 0;
3,366✔
3692
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pNode->nodeId));
6,732!
3693
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pNode->epSet));
3,366!
3694

3695
_exit:
3,366✔
3696

3697
  return code;
3,366✔
3698
}
3699

3700
int32_t tDecodeSNodeEpSet(SDecoder *pDecoder, SNodeEpSet *pNode) {
1,764✔
3701
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pNode->nodeId));
3,528!
3702
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pNode->epSet));
1,764!
3703

3704
  return 0;
1,764✔
3705
}
3706

3707

3708

3709
int32_t tSerializeSDCreateSNodeReq(void *buf, int32_t bufLen, SDCreateSnodeReq *pReq) {
1,122✔
3710
  SEncoder encoder = {0};
1,122✔
3711
  int32_t  code = 0;
1,122✔
3712
  int32_t  lino;
3713
  int32_t  tlen;
3714
  tEncoderInit(&encoder, buf, bufLen);
1,122✔
3715

3716
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,122!
3717
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->snodeId));
2,244!
3718
  TAOS_CHECK_EXIT(tEncodeSNodeEpSet(&encoder, &pReq->leaders[0]));
1,122!
3719
  TAOS_CHECK_EXIT(tEncodeSNodeEpSet(&encoder, &pReq->leaders[1]));
1,122!
3720
  TAOS_CHECK_EXIT(tEncodeSNodeEpSet(&encoder, &pReq->replica));
1,122!
3721
  ENCODESQL();
2,244!
3722
  tEndEncode(&encoder);
1,122✔
3723

3724
_exit:
1,122✔
3725
  if (code) {
1,122!
3726
    tlen = code;
×
3727
  } else {
3728
    tlen = encoder.pos;
1,122✔
3729
  }
3730
  tEncoderClear(&encoder);
1,122✔
3731
  return tlen;
1,122✔
3732
}
3733

3734
int32_t tDeserializeSDCreateSNodeReq(void *buf, int32_t bufLen, SDCreateSnodeReq *pReq) {
588✔
3735
  SDecoder decoder = {0};
588✔
3736
  int32_t  code = 0;
588✔
3737
  int32_t  lino;
3738
  tDecoderInit(&decoder, buf, bufLen);
588✔
3739

3740
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
588!
3741
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->snodeId));
1,176!
3742
  TAOS_CHECK_EXIT(tDecodeSNodeEpSet(&decoder, &pReq->leaders[0]));
588!
3743
  TAOS_CHECK_EXIT(tDecodeSNodeEpSet(&decoder, &pReq->leaders[1]));
588!
3744
  TAOS_CHECK_EXIT(tDecodeSNodeEpSet(&decoder, &pReq->replica));
588!
3745
  DECODESQL();
1,176!
3746
  tEndDecode(&decoder);
588✔
3747

3748
_exit:
588✔
3749
  tDecoderClear(&decoder);
588✔
3750
  return code;
588✔
3751
}
3752

3753

3754
void tFreeSMCreateQnodeReq(SMCreateQnodeReq *pReq) { FREESQL(); }
3,889!
3755

3756
void tFreeSDCreateSnodeReq(SDCreateSnodeReq *pReq) { FREESQL(); }
588!
3757

3758
void tFreeSDDropQnodeReq(SDDropQnodeReq *pReq) { FREESQL(); }
48!
3759

3760
int32_t tSerializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
114✔
3761
  SEncoder encoder = {0};
114✔
3762
  int32_t  code = 0;
114✔
3763
  int32_t  lino;
3764
  int32_t  tlen;
3765
  tEncoderInit(&encoder, buf, bufLen);
114✔
3766

3767
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
114!
3768
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
228!
3769
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
228!
3770
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
228!
3771
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
228!
3772
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->unsafe));
228!
3773
  ENCODESQL();
342!
3774
  tEndEncode(&encoder);
114✔
3775

3776
_exit:
114✔
3777
  if (code) {
114!
3778
    tlen = code;
×
3779
  } else {
3780
    tlen = encoder.pos;
114✔
3781
  }
3782
  tEncoderClear(&encoder);
114✔
3783
  return tlen;
114✔
3784
}
3785

3786
int32_t tDeserializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
70✔
3787
  SDecoder decoder = {0};
70✔
3788
  int32_t  code = 0;
70✔
3789
  int32_t  lino;
3790
  tDecoderInit(&decoder, buf, bufLen);
70✔
3791

3792
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
70!
3793
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
140!
3794
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
70!
3795
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
140!
3796
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
140!
3797
  if (!tDecodeIsEnd(&decoder)) {
70!
3798
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->unsafe));
140!
3799
  } else {
3800
    pReq->unsafe = false;
×
3801
  }
3802

3803
  DECODESQL();
210!
3804
  tEndDecode(&decoder);
70✔
3805

3806
_exit:
70✔
3807
  tDecoderClear(&decoder);
70✔
3808
  return code;
70✔
3809
}
3810

3811
void tFreeSDropDnodeReq(SDropDnodeReq *pReq) { FREESQL(); }
127!
3812

3813
int32_t tSerializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
32✔
3814
  SEncoder encoder = {0};
32✔
3815
  int32_t  code = 0;
32✔
3816
  int32_t  lino;
3817
  int32_t  tlen;
3818
  tEncoderInit(&encoder, buf, bufLen);
32✔
3819

3820
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
3821
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
64!
3822
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->restoreType));
64!
3823
  ENCODESQL();
96!
3824
  tEndEncode(&encoder);
32✔
3825

3826
_exit:
32✔
3827
  if (code) {
32!
3828
    tlen = code;
×
3829
  } else {
3830
    tlen = encoder.pos;
32✔
3831
  }
3832
  tEncoderClear(&encoder);
32✔
3833
  return tlen;
32✔
3834
}
3835

3836
int32_t tDeserializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
12✔
3837
  SDecoder decoder = {0};
12✔
3838
  int32_t  code = 0;
12✔
3839
  int32_t  lino;
3840
  tDecoderInit(&decoder, buf, bufLen);
12✔
3841

3842
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12!
3843
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
24!
3844
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->restoreType));
24!
3845
  DECODESQL();
36!
3846
  tEndDecode(&decoder);
12✔
3847

3848
_exit:
12✔
3849
  tDecoderClear(&decoder);
12✔
3850
  return code;
12✔
3851
}
3852

3853
void tFreeSRestoreDnodeReq(SRestoreDnodeReq *pReq) { FREESQL(); }
28!
3854

3855
int32_t tSerializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
52✔
3856
  SEncoder encoder = {0};
52✔
3857
  int32_t  code = 0;
52✔
3858
  int32_t  lino;
3859
  int32_t  tlen;
3860
  tEncoderInit(&encoder, buf, bufLen);
52✔
3861

3862
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
52!
3863
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
104!
3864
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
104!
3865
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
104!
3866
  ENCODESQL();
156!
3867
  tEndEncode(&encoder);
52✔
3868

3869
_exit:
52✔
3870
  if (code) {
52!
3871
    tlen = code;
×
3872
  } else {
3873
    tlen = encoder.pos;
52✔
3874
  }
3875
  tEncoderClear(&encoder);
52✔
3876
  return tlen;
52✔
3877
}
3878

3879
int32_t tDeserializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
2,087✔
3880
  SDecoder decoder = {0};
2,087✔
3881
  int32_t  code = 0;
2,087✔
3882
  int32_t  lino;
3883
  tDecoderInit(&decoder, buf, bufLen);
2,087✔
3884

3885
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,087!
3886
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
4,174!
3887
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
2,087!
3888
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
2,087!
3889
  DECODESQL();
6,261!
3890
  tEndDecode(&decoder);
2,087✔
3891

3892
_exit:
2,087✔
3893
  tDecoderClear(&decoder);
2,087✔
3894
  return code;
2,087✔
3895
}
3896

3897
void tFreeSMCfgDnodeReq(SMCfgDnodeReq *pReq) { FREESQL(); }
2,113!
3898

3899
int32_t tSerializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
3,932✔
3900
  SEncoder encoder = {0};
3,932✔
3901
  int32_t  code = 0;
3,932✔
3902
  int32_t  lino;
3903
  int32_t  tlen;
3904
  tEncoderInit(&encoder, buf, bufLen);
3,932✔
3905

3906
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,932!
3907
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->version));
7,864!
3908
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
7,864!
3909
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
7,864!
3910
  tEndEncode(&encoder);
3,932✔
3911

3912
_exit:
3,932✔
3913
  if (code) {
3,932!
3914
    tlen = code;
×
3915
  } else {
3916
    tlen = encoder.pos;
3,932✔
3917
  }
3918
  tEncoderClear(&encoder);
3,932✔
3919
  return tlen;
3,932✔
3920
}
3921

3922
int32_t tDeserializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
1,966✔
3923
  SDecoder decoder = {0};
1,966✔
3924
  int32_t  code = 0;
1,966✔
3925
  int32_t  lino;
3926
  tDecoderInit(&decoder, buf, bufLen);
1,966✔
3927

3928
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,966!
3929
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->version));
3,932!
3930
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
1,966!
3931
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
1,966!
3932
  tEndDecode(&decoder);
1,966✔
3933

3934
_exit:
1,966✔
3935
  tDecoderClear(&decoder);
1,966✔
3936
  return code;
1,966✔
3937
}
3938

3939
int32_t tSerializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
4✔
3940
  SEncoder encoder = {0};
4✔
3941
  int32_t  code = 0;
4✔
3942
  int32_t  lino;
3943
  int32_t  tlen;
3944
  tEncoderInit(&encoder, buf, bufLen);
4✔
3945

3946
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3947
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
8!
3948
  if (pReq->urlLen > 0) {
4!
3949
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
8!
3950
  }
3951
  ENCODESQL();
12!
3952
  tEndEncode(&encoder);
4✔
3953

3954
_exit:
4✔
3955
  if (code) {
4!
3956
    tlen = code;
×
3957
  } else {
3958
    tlen = encoder.pos;
4✔
3959
  }
3960
  tEncoderClear(&encoder);
4✔
3961
  return tlen;
4✔
3962
}
3963

3964
int32_t tDeserializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
2✔
3965
  SDecoder decoder = {0};
2✔
3966
  int32_t  code = 0;
2✔
3967
  int32_t  lino;
3968

3969
  tDecoderInit(&decoder, buf, bufLen);
2✔
3970

3971
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
3972
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
4!
3973
  if (pReq->urlLen > 0) {
2!
3974
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
4!
3975
  }
3976

3977
  DECODESQL();
6!
3978
  tEndDecode(&decoder);
2✔
3979

3980
_exit:
2✔
3981
  tDecoderClear(&decoder);
2✔
3982
  return code;
2✔
3983
}
3984

3985
void tFreeSMCreateAnodeReq(SMCreateAnodeReq *pReq) {
4✔
3986
  taosMemoryFreeClear(pReq->url);
4!
3987
  FREESQL();
4!
3988
}
4✔
3989

3990
int32_t tSerializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
4✔
3991
  SEncoder encoder = {0};
4✔
3992
  int32_t  code = 0;
4✔
3993
  int32_t  lino;
3994
  int32_t  tlen;
3995
  tEncoderInit(&encoder, buf, bufLen);
4✔
3996

3997
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3998
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->anodeId));
8!
3999
  ENCODESQL();
12!
4000
  tEndEncode(&encoder);
4✔
4001

4002
_exit:
4✔
4003
  if (code) {
4!
4004
    tlen = code;
×
4005
  } else {
4006
    tlen = encoder.pos;
4✔
4007
  }
4008
  tEncoderClear(&encoder);
4✔
4009
  return tlen;
4✔
4010
}
4011

4012
int32_t tDeserializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
2✔
4013
  SDecoder decoder = {0};
2✔
4014
  int32_t  code = 0;
2✔
4015
  int32_t  lino;
4016

4017
  tDecoderInit(&decoder, buf, bufLen);
2✔
4018

4019
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
4020
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->anodeId));
4!
4021
  DECODESQL();
6!
4022
  tEndDecode(&decoder);
2✔
4023

4024
_exit:
2✔
4025
  tDecoderClear(&decoder);
2✔
4026
  return code;
2✔
4027
}
4028

4029
void tFreeSMDropAnodeReq(SMDropAnodeReq *pReq) { FREESQL(); }
4!
4030

4031
int32_t tSerializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
4032
  return tSerializeSMDropAnodeReq(buf, bufLen, pReq);
×
4033
}
4034

4035
int32_t tDeserializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
4036
  return tDeserializeSMDropAnodeReq(buf, bufLen, pReq);
×
4037
}
4038

4039
void tFreeSMUpdateAnodeReq(SMUpdateAnodeReq *pReq) { tFreeSMDropAnodeReq(pReq); }
×
4040

4041
int32_t tSerializeSMCreateBnodeReq(void *buf, int32_t bufLen, SMCreateBnodeReq *pReq) {
166✔
4042
  SEncoder encoder = {0};
166✔
4043
  int32_t  code = 0;
166✔
4044
  int32_t  lino;
4045
  int32_t  tlen;
4046
  tEncoderInit(&encoder, buf, bufLen);
166✔
4047

4048
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
166!
4049
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
332!
4050
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->bnodeProto));
332!
4051

4052
  ENCODESQL();
332!
4053
  tEndEncode(&encoder);
166✔
4054

4055
_exit:
166✔
4056
  if (code) {
166!
4057
    tlen = code;
×
4058
  } else {
4059
    tlen = encoder.pos;
166✔
4060
  }
4061
  tEncoderClear(&encoder);
166✔
4062
  return tlen;
166✔
4063
}
4064

4065
int32_t tDeserializeSMCreateBnodeReq(void *buf, int32_t bufLen, SMCreateBnodeReq *pReq) {
175✔
4066
  SDecoder decoder = {0};
175✔
4067
  int32_t  code = 0;
175✔
4068
  int32_t  lino;
4069

4070
  tDecoderInit(&decoder, buf, bufLen);
175✔
4071

4072
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
175!
4073
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
350!
4074
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->bnodeProto));
350!
4075

4076
  DECODESQL();
442!
4077
  tEndDecode(&decoder);
175✔
4078

4079
_exit:
175✔
4080
  tDecoderClear(&decoder);
175✔
4081
  return code;
175✔
4082
}
4083

4084
void tFreeSMCreateBnodeReq(SMCreateBnodeReq *pReq) {
166✔
4085
  // May free options
4086
  FREESQL();
166!
4087
}
166✔
4088

4089
int32_t tSerializeSMDropBnodeReq(void *buf, int32_t bufLen, SMDropBnodeReq *pReq) {
336✔
4090
  SEncoder encoder = {0};
336✔
4091
  int32_t  code = 0;
336✔
4092
  int32_t  lino;
4093
  int32_t  tlen;
4094
  tEncoderInit(&encoder, buf, bufLen);
336✔
4095

4096
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
336!
4097
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
672!
4098
  ENCODESQL();
672!
4099
  tEndEncode(&encoder);
336✔
4100

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

4111
int32_t tDeserializeSMDropBnodeReq(void *buf, int32_t bufLen, SMDropBnodeReq *pReq) {
191✔
4112
  SDecoder decoder = {0};
191✔
4113
  int32_t  code = 0;
191✔
4114
  int32_t  lino;
4115

4116
  tDecoderInit(&decoder, buf, bufLen);
191✔
4117

4118
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
191!
4119
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
382!
4120
  DECODESQL();
491!
4121
  tEndDecode(&decoder);
191✔
4122

4123
_exit:
191✔
4124
  tDecoderClear(&decoder);
191✔
4125
  return code;
191✔
4126
}
4127

4128
void tFreeSMDropBnodeReq(SMDropBnodeReq *pReq) { FREESQL(); }
191!
4129

4130
int32_t tSerializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
362✔
4131
  SEncoder encoder = {0};
362✔
4132
  int32_t  code = 0;
362✔
4133
  int32_t  lino;
4134
  int32_t  tlen;
4135
  tEncoderInit(&encoder, buf, bufLen);
362✔
4136

4137
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
362!
4138
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
724!
4139
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
724!
4140
  ENCODESQL();
1,086!
4141
  tEndEncode(&encoder);
362✔
4142

4143
_exit:
362✔
4144
  if (code) {
362!
4145
    tlen = code;
×
4146
  } else {
4147
    tlen = encoder.pos;
362✔
4148
  }
4149
  tEncoderClear(&encoder);
362✔
4150
  return tlen;
362✔
4151
}
4152

4153
int32_t tDeserializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
649✔
4154
  SDecoder decoder = {0};
649✔
4155
  int32_t  code = 0;
649✔
4156
  int32_t  lino;
4157
  tDecoderInit(&decoder, buf, bufLen);
649✔
4158

4159
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
649!
4160
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
649!
4161
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
1,298!
4162
  DECODESQL();
1,947!
4163
  tEndDecode(&decoder);
649✔
4164

4165
_exit:
649✔
4166
  tDecoderClear(&decoder);
649✔
4167
  return code;
649✔
4168
}
4169

4170
void tFreeSCreateDnodeReq(SCreateDnodeReq *pReq) { FREESQL(); }
830!
4171

4172
int32_t tSerializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
56✔
4173
  SEncoder encoder = {0};
56✔
4174
  int32_t  code = 0;
56✔
4175
  int32_t  lino;
4176
  int32_t  tlen;
4177
  tEncoderInit(&encoder, buf, bufLen);
56✔
4178

4179
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
56!
4180
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
112!
4181
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
112!
4182
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->funcType));
112!
4183
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->scriptType));
112!
4184
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->outputType));
112!
4185
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->outputLen));
112!
4186
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->bufSize));
112!
4187
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->codeLen));
112!
4188
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->signature));
112!
4189

4190
  if (pReq->pCode != NULL) {
56✔
4191
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pCode, pReq->codeLen));
104!
4192
  }
4193

4194
  int32_t commentSize = 0;
56✔
4195
  if (pReq->pComment != NULL) {
56✔
4196
    commentSize = strlen(pReq->pComment) + 1;
18✔
4197
  }
4198
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, commentSize));
56!
4199
  if (pReq->pComment != NULL) {
56✔
4200
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
36!
4201
  }
4202

4203
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
112!
4204

4205
  tEndEncode(&encoder);
56✔
4206

4207
_exit:
56✔
4208
  if (code) {
56!
4209
    tlen = code;
×
4210
  } else {
4211
    tlen = encoder.pos;
56✔
4212
  }
4213
  tEncoderClear(&encoder);
56✔
4214
  return tlen;
56✔
4215
}
4216

4217
int32_t tDeserializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
37✔
4218
  SDecoder decoder = {0};
37✔
4219
  int32_t  code = 0;
37✔
4220
  int32_t  lino;
4221
  tDecoderInit(&decoder, buf, bufLen);
37✔
4222

4223
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
37!
4224
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
37!
4225
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
74!
4226
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->funcType));
74!
4227
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->scriptType));
74!
4228
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->outputType));
74!
4229
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->outputLen));
74!
4230
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->bufSize));
74!
4231
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->codeLen));
74!
4232
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->signature));
74!
4233

4234
  if (pReq->codeLen > 0) {
37✔
4235
    pReq->pCode = taosMemoryCalloc(1, pReq->codeLen);
35!
4236
    if (pReq->pCode == NULL) {
35!
4237
      TAOS_CHECK_EXIT(terrno);
×
4238
    }
4239
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCode));
35!
4240
  }
4241

4242
  int32_t commentSize = 0;
37✔
4243
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &commentSize));
37!
4244
  if (commentSize > 0) {
37✔
4245
    pReq->pComment = taosMemoryCalloc(1, commentSize);
9!
4246
    if (pReq->pComment == NULL) {
9!
4247
      TAOS_CHECK_EXIT(terrno);
×
4248
    }
4249
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
9!
4250
  }
4251

4252
  if (!tDecodeIsEnd(&decoder)) {
37!
4253
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
74!
4254
  } else {
4255
    pReq->orReplace = false;
×
4256
  }
4257

4258
  tEndDecode(&decoder);
37✔
4259

4260
_exit:
37✔
4261
  tDecoderClear(&decoder);
37✔
4262
  return code;
37✔
4263
}
4264

4265
void tFreeSCreateFuncReq(SCreateFuncReq *pReq) {
65✔
4266
  taosMemoryFree(pReq->pCode);
65!
4267
  taosMemoryFree(pReq->pComment);
65!
4268
}
65✔
4269

4270
int32_t tSerializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
14✔
4271
  SEncoder encoder = {0};
14✔
4272
  int32_t  code = 0;
14✔
4273
  int32_t  lino;
4274
  int32_t  tlen;
4275
  tEncoderInit(&encoder, buf, bufLen);
14✔
4276

4277
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
4278
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
28!
4279
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
28!
4280
  tEndEncode(&encoder);
14✔
4281

4282
_exit:
14✔
4283
  if (code) {
14!
4284
    tlen = code;
×
4285
  } else {
4286
    tlen = encoder.pos;
14✔
4287
  }
4288
  tEncoderClear(&encoder);
14✔
4289
  return tlen;
14✔
4290
}
4291

4292
int32_t tDeserializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
17✔
4293
  SDecoder decoder = {0};
17✔
4294
  int32_t  code = 0;
17✔
4295
  int32_t  lino;
4296
  tDecoderInit(&decoder, buf, bufLen);
17✔
4297

4298
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
17!
4299
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
17!
4300
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
34!
4301
  tEndDecode(&decoder);
17✔
4302

4303
_exit:
17✔
4304
  tDecoderClear(&decoder);
17✔
4305
  return code;
17✔
4306
}
4307

4308
int32_t tSerializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
386✔
4309
  SEncoder encoder = {0};
386✔
4310
  int32_t  code = 0;
386✔
4311
  int32_t  lino;
4312
  int32_t  tlen;
4313
  tEncoderInit(&encoder, buf, bufLen);
386✔
4314

4315
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
386!
4316
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
772!
4317
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreCodeComment));
772!
4318

4319
  if (pReq->numOfFuncs != (int32_t)taosArrayGetSize(pReq->pFuncNames)) {
386!
4320
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
4321
  }
4322
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
2,822✔
4323
    char *fname = taosArrayGet(pReq->pFuncNames, i);
2,436✔
4324
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, fname));
2,436!
4325
  }
4326

4327
  tEndEncode(&encoder);
386✔
4328

4329
_exit:
386✔
4330
  if (code) {
386!
4331
    tlen = code;
×
4332
  } else {
4333
    tlen = encoder.pos;
386✔
4334
  }
4335
  tEncoderClear(&encoder);
386✔
4336
  return tlen;
386✔
4337
}
4338

4339
int32_t tDeserializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
384✔
4340
  SDecoder decoder = {0};
384✔
4341
  int32_t  code = 0;
384✔
4342
  int32_t  lino;
4343
  tDecoderInit(&decoder, buf, bufLen);
384✔
4344

4345
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
384!
4346
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
768!
4347
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->ignoreCodeComment));
768!
4348

4349
  pReq->pFuncNames = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN);
384✔
4350
  if (pReq->pFuncNames == NULL) {
384!
4351
    TAOS_CHECK_EXIT(terrno);
×
4352
  }
4353

4354
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
1,793✔
4355
    char fname[TSDB_FUNC_NAME_LEN] = {0};
1,409✔
4356
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fname));
1,409!
4357
    if (taosArrayPush(pReq->pFuncNames, fname) == NULL) {
2,818!
4358
      TAOS_CHECK_EXIT(terrno);
×
4359
    }
4360
  }
4361
  tEndDecode(&decoder);
384✔
4362

4363
_exit:
384✔
4364
  tDecoderClear(&decoder);
384✔
4365
  return code;
384✔
4366
}
4367

4368
void tFreeSRetrieveFuncReq(SRetrieveFuncReq *pReq) { taosArrayDestroy(pReq->pFuncNames); }
392✔
4369

4370
int32_t tSerializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
736✔
4371
  SEncoder encoder = {0};
736✔
4372
  int32_t  code = 0;
736✔
4373
  int32_t  lino;
4374
  int32_t  tlen;
4375
  tEncoderInit(&encoder, buf, bufLen);
736✔
4376

4377
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
736!
4378
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfFuncs));
1,472!
4379

4380
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncInfos)) {
736!
4381
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
4382
  }
4383
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
1,474✔
4384
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
738✔
4385

4386
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->name));
1,476!
4387
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->funcType));
1,476!
4388
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->scriptType));
1,476!
4389
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->outputType));
1,476!
4390
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->outputLen));
1,476!
4391
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->bufSize));
1,476!
4392
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pInfo->signature));
1,476!
4393
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->codeSize));
1,476!
4394
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->commentSize));
1,476!
4395
    if (pInfo->codeSize) {
738✔
4396
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pInfo->pCode, pInfo->codeSize));
540!
4397
    }
4398
    if (pInfo->commentSize) {
738✔
4399
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->pComment));
20!
4400
    }
4401
  }
4402

4403
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncExtraInfos)) {
736!
4404
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
4405
  }
4406
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
1,474✔
4407
    SFuncExtraInfo *extraInfo = taosArrayGet(pRsp->pFuncExtraInfos, i);
738✔
4408
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, extraInfo->funcVersion));
1,476!
4409
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, extraInfo->funcCreatedTime));
1,476!
4410
  }
4411

4412
  tEndEncode(&encoder);
736✔
4413

4414
_exit:
736✔
4415
  if (code) {
736!
4416
    tlen = code;
×
4417
  } else {
4418
    tlen = encoder.pos;
736✔
4419
  }
4420
  tEncoderClear(&encoder);
736✔
4421
  return tlen;
736✔
4422
}
4423

4424
int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
189✔
4425
  SDecoder decoder = {0};
189✔
4426
  int32_t  code = 0;
189✔
4427
  int32_t  lino;
4428
  tDecoderInit(&decoder, buf, bufLen);
189✔
4429

4430
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
189!
4431
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfFuncs));
378!
4432

4433
  pRsp->pFuncInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncInfo));
189✔
4434
  if (pRsp->pFuncInfos == NULL) {
189!
4435
    TAOS_CHECK_EXIT(terrno);
×
4436
  }
4437

4438
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
379✔
4439
    SFuncInfo fInfo = {0};
190✔
4440
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.name));
190!
4441
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.funcType));
190!
4442
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.scriptType));
190!
4443
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.outputType));
190!
4444
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.outputLen));
190!
4445
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.bufSize));
190!
4446
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &fInfo.signature));
190!
4447
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.codeSize));
190!
4448
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.commentSize));
190!
4449
    if (fInfo.codeSize) {
190✔
4450
      fInfo.pCode = taosMemoryCalloc(1, fInfo.codeSize);
135!
4451
      if (fInfo.pCode == NULL) {
135!
4452
        TAOS_CHECK_EXIT(terrno);
×
4453
      }
4454
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pCode));
135!
4455
    }
4456
    if (fInfo.commentSize) {
190✔
4457
      fInfo.pComment = taosMemoryCalloc(1, fInfo.commentSize);
5!
4458
      if (fInfo.pComment == NULL) {
5!
4459
        TAOS_CHECK_EXIT(terrno);
×
4460
      }
4461
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pComment));
5!
4462
    }
4463

4464
    if (taosArrayPush(pRsp->pFuncInfos, &fInfo) == NULL) {
380!
4465
      TAOS_CHECK_EXIT(terrno);
×
4466
    }
4467
  }
4468

4469
  pRsp->pFuncExtraInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncExtraInfo));
189✔
4470
  if (pRsp->pFuncExtraInfos == NULL) {
189!
4471
    TAOS_CHECK_EXIT(terrno);
×
4472
  }
4473
  if (tDecodeIsEnd(&decoder)) {
189!
4474
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
×
4475
      SFuncExtraInfo extraInfo = {0};
×
4476
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
×
4477
        TAOS_CHECK_EXIT(terrno);
×
4478
      }
4479
    }
4480
  } else {
4481
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
379✔
4482
      SFuncExtraInfo extraInfo = {0};
190✔
4483
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &extraInfo.funcVersion));
190!
4484
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &extraInfo.funcCreatedTime));
190!
4485
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
380!
4486
        TAOS_CHECK_EXIT(terrno);
×
4487
      }
4488
    }
4489
  }
4490
  tEndDecode(&decoder);
189✔
4491

4492
_exit:
189✔
4493
  tDecoderClear(&decoder);
189✔
4494
  return code;
189✔
4495
}
4496

4497
void tFreeSFuncInfo(SFuncInfo *pInfo) {
603✔
4498
  if (NULL == pInfo) {
603!
4499
    return;
×
4500
  }
4501

4502
  taosMemoryFree(pInfo->pCode);
603!
4503
  taosMemoryFree(pInfo->pComment);
603!
4504
}
4505

4506
void tFreeSRetrieveFuncRsp(SRetrieveFuncRsp *pRsp) {
389✔
4507
  int32_t size = taosArrayGetSize(pRsp->pFuncInfos);
389✔
4508
  for (int32_t i = 0; i < size; ++i) {
764✔
4509
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
375✔
4510
    tFreeSFuncInfo(pInfo);
375✔
4511
  }
4512
  taosArrayDestroy(pRsp->pFuncInfos);
389✔
4513
  taosArrayDestroy(pRsp->pFuncExtraInfos);
389✔
4514
}
389✔
4515

4516
int32_t tSerializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
276✔
4517
  int32_t code = 0;
276✔
4518
  int32_t lino;
4519
  int32_t headLen = sizeof(SMsgHead);
276✔
4520
  if (buf != NULL) {
276✔
4521
    buf = (char *)buf + headLen;
138✔
4522
    bufLen -= headLen;
138✔
4523
  }
4524

4525
  SEncoder encoder = {0};
276✔
4526
  tEncoderInit(&encoder, buf, bufLen);
276✔
4527

4528
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
276!
4529
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
552!
4530
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
552!
4531
  tEndEncode(&encoder);
276✔
4532

4533
_exit:
276✔
4534
  if (code) {
276!
4535
    tEncoderClear(&encoder);
×
4536
    return code;
×
4537
  } else {
4538
    int32_t tlen = encoder.pos;
276✔
4539
    tEncoderClear(&encoder);
276✔
4540

4541
    if (buf != NULL) {
276✔
4542
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
138✔
4543
      pHead->vgId = htonl(pReq->header.vgId);
138✔
4544
      pHead->contLen = htonl(tlen + headLen);
138✔
4545
    }
4546

4547
    return tlen + headLen;
276✔
4548
  }
4549
}
4550

4551
int32_t tDeserializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
440✔
4552
  int32_t headLen = sizeof(SMsgHead);
440✔
4553

4554
  int32_t   code = 0;
440✔
4555
  int32_t   lino;
4556
  SMsgHead *pHead = buf;
440✔
4557
  pHead->vgId = pReq->header.vgId;
440✔
4558
  pHead->contLen = pReq->header.contLen;
440✔
4559

4560
  SDecoder decoder = {0};
440✔
4561
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
440✔
4562

4563
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
440!
4564
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
440!
4565
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
440!
4566

4567
  tEndDecode(&decoder);
440✔
4568
_exit:
440✔
4569
  tDecoderClear(&decoder);
440✔
4570
  return code;
440✔
4571
}
4572

4573
int32_t tSerializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
882✔
4574
  SEncoder encoder = {0};
882✔
4575
  int32_t  code = 0;
882✔
4576
  int32_t  lino;
4577
  int32_t  tlen;
4578
  tEncoderInit(&encoder, buf, bufLen);
882✔
4579

4580
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
882!
4581
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
1,764!
4582
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->stbName));
1,764!
4583
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
1,764!
4584
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfTags));
1,764!
4585
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfColumns));
1,764!
4586
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->tableType));
1,764!
4587
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay1));
1,764!
4588
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay2));
1,764!
4589
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark1));
1,764!
4590
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark2));
1,764!
4591
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->ttl));
1,764!
4592

4593
  int32_t numOfFuncs = taosArrayGetSize(pRsp->pFuncs);
882✔
4594
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfFuncs));
882!
4595
  for (int32_t i = 0; i < numOfFuncs; ++i) {
882!
4596
    const char *pFunc = taosArrayGet(pRsp->pFuncs, i);
×
4597
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
×
4598
  }
4599

4600
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->commentLen));
1,764!
4601
  if (pRsp->commentLen > 0) {
882!
4602
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->pComment));
×
4603
  }
4604

4605
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
9,110✔
4606
    SSchema *pSchema = &pRsp->pSchemas[i];
8,228✔
4607
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
8,228!
4608
  }
4609

4610
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->tagsLen));
1,764!
4611
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pRsp->pTags, pRsp->tagsLen));
1,764!
4612

4613
  if (withExtSchema(pRsp->tableType)) {
882✔
4614
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
5,812✔
4615
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
5,028✔
4616
      TAOS_CHECK_EXIT(tEncodeSSchemaExt(&encoder, pSchemaExt));
5,028!
4617
    }
4618
  }
4619

4620
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->virtualStb));
1,764!
4621
  if (hasRefCol(pRsp->tableType)) {
882✔
4622
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
212✔
4623
      SColRef *pColRef = &pRsp->pColRefs[i];
176✔
4624
      TAOS_CHECK_EXIT(tEncodeSColRef(&encoder, pColRef));
176!
4625
    }
4626
  }
4627

4628
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->keep));
1,764!
4629

4630
  tEndEncode(&encoder);
882✔
4631

4632
_exit:
882✔
4633
  if (code) {
882!
4634
    tlen = code;
×
4635
  } else {
4636
    tlen = encoder.pos;
882✔
4637
  }
4638
  tEncoderClear(&encoder);
882✔
4639
  return tlen;
882✔
4640
}
4641

4642
int32_t tDeserializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
138✔
4643
  SDecoder decoder = {0};
138✔
4644
  int32_t  code = 0;
138✔
4645
  int32_t  lino;
4646
  tDecoderInit(&decoder, buf, bufLen);
138✔
4647

4648
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
138!
4649
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
138!
4650
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->stbName));
138!
4651
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
138!
4652
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfTags));
276!
4653
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfColumns));
276!
4654
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->tableType));
276!
4655
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay1));
276!
4656
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay2));
276!
4657
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark1));
276!
4658
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark2));
276!
4659
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->ttl));
276!
4660

4661
  int32_t numOfFuncs = 0;
138✔
4662
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFuncs));
138!
4663
  if (numOfFuncs > 0) {
138!
4664
    pRsp->pFuncs = taosArrayInit(numOfFuncs, TSDB_FUNC_NAME_LEN);
×
4665
    if (NULL == pRsp->pFuncs) {
×
4666
      TAOS_CHECK_EXIT(terrno);
×
4667
    }
4668
  }
4669
  for (int32_t i = 0; i < numOfFuncs; ++i) {
138!
4670
    char pFunc[TSDB_FUNC_NAME_LEN];
4671
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
×
4672
    if (taosArrayPush(pRsp->pFuncs, pFunc) == NULL) {
×
4673
      TAOS_CHECK_EXIT(terrno);
×
4674
    }
4675
  }
4676

4677
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->commentLen));
276!
4678
  if (pRsp->commentLen > 0) {
138!
4679
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pRsp->pComment));
×
4680
  } else {
4681
    pRsp->pComment = NULL;
138✔
4682
  }
4683

4684
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
138✔
4685
  pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
138!
4686
  if (pRsp->pSchemas == NULL) {
138!
4687
    TAOS_CHECK_EXIT(terrno);
×
4688
  }
4689

4690
  for (int32_t i = 0; i < totalCols; ++i) {
1,402✔
4691
    SSchema *pSchema = &pRsp->pSchemas[i];
1,264✔
4692
    TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
1,264!
4693
  }
4694

4695
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->tagsLen));
276!
4696
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pRsp->pTags, NULL));
276!
4697

4698
  if (!tDecodeIsEnd(&decoder)) {
138!
4699
    if (withExtSchema(pRsp->tableType) && pRsp->numOfColumns > 0) {
138!
4700
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
135!
4701
      if (pRsp->pSchemaExt == NULL) {
135!
4702
        TAOS_CHECK_EXIT(terrno);
×
4703
      }
4704

4705
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
973✔
4706
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
838✔
4707
        TAOS_CHECK_EXIT(tDecodeSSchemaExt(&decoder, pSchemaExt));
838!
4708
      }
4709
    } else {
4710
      pRsp->pSchemaExt = NULL;
3✔
4711
    }
4712
  }
4713

4714
  if (!tDecodeIsEnd(&decoder)) {
138!
4715
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->virtualStb));
276!
4716
    if (hasRefCol(pRsp->tableType) && pRsp->numOfColumns > 0) {
138!
4717
      pRsp->pColRefs = taosMemoryMalloc(sizeof(SColRef) * pRsp->numOfColumns);
2!
4718
      if (pRsp->pColRefs == NULL) {
2!
4719
        TAOS_CHECK_EXIT(terrno);
×
4720
      }
4721

4722
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
42✔
4723
        SColRef *pColRef = &pRsp->pColRefs[i];
40✔
4724
        TAOS_CHECK_EXIT(tDecodeSColRef(&decoder, pColRef));
40!
4725
      }
4726
    } else {
4727
      pRsp->pColRefs = NULL;
136✔
4728
    }
4729
  }
4730

4731
  if (!tDecodeIsEnd(&decoder)) {
138!
4732
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->keep));
276!
4733
  } else {
4734
    pRsp->keep = 0;
×
4735
  }
4736

4737
  tEndDecode(&decoder);
138✔
4738

4739
_exit:
138✔
4740
  tDecoderClear(&decoder);
138✔
4741
  return code;
138✔
4742
}
4743

4744
void tFreeSTableCfgRsp(STableCfgRsp *pRsp) {
579✔
4745
  if (NULL == pRsp) {
579!
4746
    return;
×
4747
  }
4748

4749
  taosMemoryFreeClear(pRsp->pComment);
579!
4750
  taosMemoryFreeClear(pRsp->pSchemas);
579!
4751
  taosMemoryFreeClear(pRsp->pSchemaExt);
579!
4752
  taosMemoryFreeClear(pRsp->pColRefs);
579!
4753
  taosMemoryFreeClear(pRsp->pTags);
579!
4754

4755
  taosArrayDestroy(pRsp->pFuncs);
579✔
4756
}
4757

4758
int32_t tSerializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
2,124✔
4759
  SEncoder encoder = {0};
2,124✔
4760
  int32_t  code = 0;
2,124✔
4761
  int32_t  lino;
4762
  int32_t  tlen;
4763

4764
  tEncoderInit(&encoder, buf, bufLen);
2,124✔
4765

4766
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,124!
4767
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
4,248!
4768
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfVgroups));
4,248!
4769
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
4,248!
4770
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
4,248!
4771
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
4,248!
4772
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
4,248!
4773
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
4,248!
4774
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
4,248!
4775
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
4,248!
4776
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
4,248!
4777
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
4,248!
4778
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
4,248!
4779
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
4,248!
4780
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
4,248!
4781
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
4,248!
4782
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
4,248!
4783
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
4,248!
4784
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
4,248!
4785
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
4,248!
4786
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
4,248!
4787
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->schemaless));
4,248!
4788
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
4,248!
4789
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
4,248!
4790
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
4,248!
4791
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
4,248!
4792
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
4,248!
4793
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
4,248!
4794
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
4,248!
4795
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreExist));
4,248!
4796
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
4,248!
4797
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
2,172✔
4798
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
48✔
4799
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
96!
4800
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
96!
4801
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
96!
4802
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
96!
4803
  }
4804
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
4,248!
4805
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
4,248!
4806

4807
  ENCODESQL();
6,352!
4808

4809
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
4,248!
4810
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
4,248!
4811
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssChunkSize));
4,248!
4812
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssKeepLocal));
4,248!
4813
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ssCompact));
4,248!
4814
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeListStr));
4,248!
4815

4816
  // auto-compact parameters
4817
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
4,248!
4818
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
4,248!
4819
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
4,248!
4820
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
4,248!
4821

4822
  tEndEncode(&encoder);
2,124✔
4823

4824
_exit:
2,124✔
4825
  if (code) {
2,124!
4826
    tlen = code;
×
4827
  } else {
4828
    tlen = encoder.pos;
2,124✔
4829
  }
4830
  tEncoderClear(&encoder);
2,124✔
4831
  return tlen;
2,124✔
4832
}
4833

4834
int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
5,141✔
4835
  SDecoder decoder = {0};
5,141✔
4836
  int32_t  code = 0;
5,141✔
4837
  int32_t  lino;
4838
  tDecoderInit(&decoder, buf, bufLen);
5,141✔
4839

4840
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,141!
4841
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
5,141!
4842
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfVgroups));
10,282!
4843
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
10,282!
4844
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
10,282!
4845
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
10,282!
4846
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
10,282!
4847
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
10,282!
4848
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
10,282!
4849
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
10,282!
4850
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
10,282!
4851
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
10,282!
4852
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
10,282!
4853
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
10,282!
4854
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
10,282!
4855
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
10,282!
4856
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
10,282!
4857
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
10,282!
4858
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
10,282!
4859
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
10,282!
4860
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
10,282!
4861
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->schemaless));
10,282!
4862
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
10,282!
4863
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
10,282!
4864
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
10,282!
4865
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
10,282!
4866
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
10,282!
4867
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
10,282!
4868
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
10,282!
4869
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreExist));
10,282!
4870
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
10,282!
4871
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
5,141✔
4872
  if (pReq->pRetensions == NULL) {
5,141!
4873
    TAOS_CHECK_EXIT(terrno);
×
4874
  }
4875

4876
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
5,147✔
4877
    SRetention rentension = {0};
6✔
4878
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
6!
4879
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
6!
4880
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
6!
4881
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
6!
4882
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
12!
4883
      TAOS_CHECK_EXIT(terrno);
×
4884
    }
4885
  }
4886

4887
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
10,282!
4888

4889
  if (!tDecodeIsEnd(&decoder)) {
5,141!
4890
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
10,282!
4891
  } else {
4892
    pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
4893
  }
4894

4895
  DECODESQL();
15,413!
4896

4897
  if (!tDecodeIsEnd(&decoder)) {
5,141!
4898
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
10,282!
4899
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
10,282!
4900
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssChunkSize));
10,282!
4901
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssKeepLocal));
10,282!
4902
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ssCompact));
10,282!
4903
  } else {
4904
    pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
4905
    pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
4906
    pReq->ssChunkSize = TSDB_DEFAULT_SS_CHUNK_SIZE;
×
4907
    pReq->ssKeepLocal = TSDB_DEFAULT_SS_KEEP_LOCAL;
×
4908
    pReq->ssCompact = TSDB_DEFAULT_SS_COMPACT;
×
4909
  }
4910

4911
  if (!tDecodeIsEnd(&decoder)) {
5,141!
4912
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeListStr));
5,141!
4913
  }
4914

4915
  if (!tDecodeIsEnd(&decoder)) {
5,141!
4916
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
10,282!
4917
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
10,282!
4918
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
10,282!
4919
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
10,282!
4920
  } else {
4921
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4922
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4923
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4924
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4925
  }
4926

4927
  tEndDecode(&decoder);
5,141✔
4928

4929
_exit:
5,141✔
4930
  tDecoderClear(&decoder);
5,141✔
4931
  return code;
5,141✔
4932
}
4933

4934
void tFreeSCreateDbReq(SCreateDbReq *pReq) {
6,221✔
4935
  taosArrayDestroy(pReq->pRetensions);
6,221✔
4936
  pReq->pRetensions = NULL;
6,221✔
4937
  FREESQL();
6,221!
4938
}
6,221✔
4939

4940
int32_t tSerializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
296✔
4941
  SEncoder encoder = {0};
296✔
4942
  int32_t  code = 0;
296✔
4943
  int32_t  lino;
4944
  int32_t  tlen;
4945

4946
  tEncoderInit(&encoder, buf, bufLen);
296✔
4947

4948
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
296!
4949
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
592!
4950
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
592!
4951
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
592!
4952
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
592!
4953
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
592!
4954
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
592!
4955
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
592!
4956
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
592!
4957
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
592!
4958
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
592!
4959
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
592!
4960
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
592!
4961
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
592!
4962
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
592!
4963
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
592!
4964

4965
  // 1st modification
4966
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
592!
4967
  // 2nd modification
4968
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
592!
4969
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
592!
4970
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
592!
4971

4972
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssKeepLocal));
592!
4973
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ssCompact));
592!
4974

4975
  ENCODESQL();
888!
4976
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
592!
4977
  // auto compact config
4978
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
592!
4979
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
592!
4980
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
592!
4981
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
592!
4982
  tEndEncode(&encoder);
296✔
4983

4984
_exit:
296✔
4985
  if (code) {
296!
4986
    tlen = code;
×
4987
  } else {
4988
    tlen = encoder.pos;
296✔
4989
  }
4990
  tEncoderClear(&encoder);
296✔
4991
  return tlen;
296✔
4992
}
4993

4994
int32_t tDeserializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
561✔
4995
  SDecoder decoder = {0};
561✔
4996
  int32_t  code = 0;
561✔
4997
  int32_t  lino;
4998
  tDecoderInit(&decoder, buf, bufLen);
561✔
4999

5000
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
561!
5001
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
561!
5002
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
1,122!
5003
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
1,122!
5004
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
1,122!
5005
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
1,122!
5006
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
1,122!
5007
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
1,122!
5008
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
1,122!
5009
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
1,122!
5010
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
1,122!
5011
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
1,122!
5012
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
1,122!
5013
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
1,122!
5014
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
1,122!
5015
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
1,122!
5016

5017
  // 1st modification
5018
  if (!tDecodeIsEnd(&decoder)) {
561!
5019
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
1,122!
5020
  } else {
5021
    pReq->minRows = -1;
×
5022
  }
5023

5024
  // 2nd modification
5025
  if (!tDecodeIsEnd(&decoder)) {
561!
5026
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
1,122!
5027
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
1,122!
5028
  } else {
5029
    pReq->walRetentionPeriod = -1;
×
5030
    pReq->walRetentionSize = -1;
×
5031
  }
5032
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
561✔
5033
  if (!tDecodeIsEnd(&decoder)) {
561!
5034
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
1,122!
5035
  }
5036

5037
  pReq->ssKeepLocal = TSDB_DEFAULT_SS_KEEP_LOCAL;
561✔
5038
  pReq->ssCompact = TSDB_DEFAULT_SS_COMPACT;
561✔
5039
  if (!tDecodeIsEnd(&decoder)) {
561!
5040
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssKeepLocal));
1,122!
5041
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ssCompact));
1,122!
5042
  }
5043

5044
  DECODESQL();
1,683!
5045
  pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
561✔
5046
  if (!tDecodeIsEnd(&decoder)) {
561!
5047
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
1,122!
5048
  }
5049

5050
  // auto compact config
5051
  if (!tDecodeIsEnd(&decoder)) {
561!
5052
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
1,122!
5053
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
1,122!
5054
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
1,122!
5055
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
1,122!
5056
  } else {
5057
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
5058
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
5059
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
5060
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
5061
  }
5062
  tEndDecode(&decoder);
561✔
5063

5064
_exit:
561✔
5065
  tDecoderClear(&decoder);
561✔
5066
  return code;
561✔
5067
}
5068

5069
void tFreeSAlterDbReq(SAlterDbReq *pReq) { FREESQL(); }
709!
5070

5071
int32_t tSerializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
2,006✔
5072
  SEncoder encoder = {0};
2,006✔
5073
  int32_t  code = 0;
2,006✔
5074
  int32_t  lino;
5075
  int32_t  tlen;
5076
  tEncoderInit(&encoder, buf, bufLen);
2,006✔
5077

5078
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,006!
5079
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
4,012!
5080
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreNotExists));
4,012!
5081
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
4,012!
5082
  ENCODESQL();
6,002!
5083
  tEndEncode(&encoder);
2,006✔
5084

5085
_exit:
2,006✔
5086
  if (code) {
2,006!
5087
    tlen = code;
×
5088
  } else {
5089
    tlen = encoder.pos;
2,006✔
5090
  }
5091
  tEncoderClear(&encoder);
2,006✔
5092
  return tlen;
2,006✔
5093
}
5094

5095
int32_t tDeserializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
4,786✔
5096
  SDecoder decoder = {0};
4,786✔
5097
  int32_t  code = 0;
4,786✔
5098
  int32_t  lino;
5099
  tDecoderInit(&decoder, buf, bufLen);
4,786✔
5100

5101
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,786!
5102
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4,786!
5103
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreNotExists));
9,572!
5104
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
9,572!
5105
  DECODESQL();
14,350!
5106
  tEndDecode(&decoder);
4,786✔
5107

5108
_exit:
4,786✔
5109
  tDecoderClear(&decoder);
4,786✔
5110
  return code;
4,786✔
5111
}
5112

5113
void tFreeSDropDbReq(SDropDbReq *pReq) { FREESQL(); }
5,781!
5114

5115
int32_t tSerializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
9,450✔
5116
  SEncoder encoder = {0};
9,450✔
5117
  int32_t  code = 0;
9,450✔
5118
  int32_t  lino;
5119
  int32_t  tlen;
5120
  tEncoderInit(&encoder, buf, bufLen);
9,450✔
5121

5122
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
9,450!
5123
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->db));
18,900!
5124
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->uid));
18,900!
5125
  tEndEncode(&encoder);
9,450✔
5126

5127
_exit:
9,450✔
5128
  if (code) {
9,450!
5129
    tlen = code;
×
5130
  } else {
5131
    tlen = encoder.pos;
9,450✔
5132
  }
5133
  tEncoderClear(&encoder);
9,450✔
5134
  return tlen;
9,450✔
5135
}
5136

5137
int32_t tDeserializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
521✔
5138
  SDecoder decoder = {0};
521✔
5139
  int32_t  code = 0;
521✔
5140
  int32_t  lino;
5141
  tDecoderInit(&decoder, buf, bufLen);
521✔
5142

5143
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
521!
5144
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->db));
521!
5145
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->uid));
1,042!
5146
  tEndDecode(&decoder);
521✔
5147

5148
_exit:
521✔
5149
  tDecoderClear(&decoder);
521✔
5150
  return code;
521✔
5151
}
5152

5153
int32_t tSerializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
43,978✔
5154
  SEncoder encoder = {0};
43,978✔
5155
  int32_t  code = 0;
43,978✔
5156
  int32_t  lino;
5157
  int32_t  tlen;
5158
  tEncoderInit(&encoder, buf, bufLen);
43,978✔
5159

5160
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
44,245!
5161
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
88,564!
5162
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbId));
88,564!
5163
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
88,564!
5164
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTable));
88,564!
5165
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stateTs));
88,564!
5166
  tEndEncode(&encoder);
44,282✔
5167

5168
_exit:
44,283✔
5169
  if (code) {
44,283!
5170
    tlen = code;
×
5171
  } else {
5172
    tlen = encoder.pos;
44,283✔
5173
  }
5174
  tEncoderClear(&encoder);
44,283✔
5175
  return tlen;
44,248✔
5176
}
5177

5178
int32_t tDeserializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
6,565,349✔
5179
  SDecoder decoder = {0};
6,565,349✔
5180
  int32_t  code = 0;
6,565,349✔
5181
  int32_t  lino;
5182
  tDecoderInit(&decoder, buf, bufLen);
6,565,349✔
5183

5184
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6,565,333!
5185
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
6,565,364!
5186
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbId));
13,130,569!
5187
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
13,130,503!
5188
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTable));
13,130,423!
5189
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stateTs));
13,130,341!
5190
  tEndDecode(&decoder);
6,565,154✔
5191

5192
_exit:
6,565,136✔
5193
  tDecoderClear(&decoder);
6,565,136✔
5194
  return code;
6,565,341✔
5195
}
5196

5197
int32_t tSerializeSVSubTablesReq(void *buf, int32_t bufLen, SVSubTablesReq *pReq) {
×
5198
  SEncoder encoder = {0};
×
5199
  int32_t  code = 0;
×
5200
  int32_t  lino;
5201
  int32_t  tlen;
5202
  tEncoderInit(&encoder, buf, bufLen);
×
5203

5204
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5205
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
×
5206
  tEndEncode(&encoder);
×
5207

5208
_exit:
×
5209
  if (code) {
×
5210
    tlen = code;
×
5211
  } else {
5212
    tlen = encoder.pos;
×
5213
  }
5214
  tEncoderClear(&encoder);
×
5215
  return tlen;
×
5216
}
5217

5218
int32_t tDeserializeSVSubTablesReq(void *buf, int32_t bufLen, SVSubTablesReq *pReq) {
×
5219
  SDecoder decoder = {0};
×
5220
  int32_t  code = 0;
×
5221
  int32_t  lino;
5222
  tDecoderInit(&decoder, buf, bufLen);
×
5223

5224
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5225
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
×
5226
  tEndDecode(&decoder);
×
5227

5228
_exit:
×
5229
  tDecoderClear(&decoder);
×
5230
  return code;
×
5231
}
5232

5233
int32_t tSerializeSVSubTablesRspImpl(SEncoder *pEncoder, SVSubTablesRsp *pRsp) {
×
5234
  int32_t code = 0;
×
5235
  int32_t lino;
5236
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
×
5237
  int32_t numOfTables = taosArrayGetSize(pRsp->pTables);
×
5238
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, numOfTables));
×
5239
  for (int32_t i = 0; i < numOfTables; ++i) {
×
5240
    SVCTableRefCols *pTb = (SVCTableRefCols *)taosArrayGetP(pRsp->pTables, i);
×
5241
    TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTb->uid));
×
5242
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTb->numOfSrcTbls));
×
5243
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTb->numOfColRefs));
×
5244
    for (int32_t n = 0; n < pTb->numOfColRefs; ++n) {
×
5245
      SRefColInfo *pCol = pTb->refCols + n;
×
5246
      TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pCol->colId));
×
5247
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refDbName));
×
5248
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refTableName));
×
5249
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refColName));
×
5250
    }
5251
  }
5252

5253
_exit:
×
5254

5255
  return code;
×
5256
}
5257

5258
int32_t tSerializeSVSubTablesRsp(void *buf, int32_t bufLen, SVSubTablesRsp *pRsp) {
×
5259
  SEncoder encoder = {0};
×
5260
  int32_t  code = 0;
×
5261
  int32_t  lino;
5262
  int32_t  tlen;
5263
  tEncoderInit(&encoder, buf, bufLen);
×
5264

5265
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5266
  TAOS_CHECK_EXIT(tSerializeSVSubTablesRspImpl(&encoder, pRsp));
×
5267

5268
  tEndEncode(&encoder);
×
5269

5270
_exit:
×
5271
  if (code) {
×
5272
    tlen = code;
×
5273
  } else {
5274
    tlen = encoder.pos;
×
5275
  }
5276
  tEncoderClear(&encoder);
×
5277
  return tlen;
×
5278
}
5279

5280
int32_t tDeserializeSVSubTablesRspImpl(SDecoder *pDecoder, SVSubTablesRsp *pRsp) {
×
5281
  int32_t         code = 0;
×
5282
  int32_t         lino;
5283
  SVCTableRefCols tb = {0};
×
5284
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
×
5285
  int32_t numOfTables = 0;
×
5286
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &numOfTables));
×
5287
  if (numOfTables > 0) {
×
5288
    pRsp->pTables = taosArrayInit(numOfTables, POINTER_BYTES);
×
5289
    if (NULL == pRsp->pTables) {
×
5290
      code = terrno;
×
5291
      return code;
×
5292
    }
5293

5294
    for (int32_t i = 0; i < numOfTables; ++i) {
×
5295
      TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &tb.uid));
×
5296
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &tb.numOfSrcTbls));
×
5297
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &tb.numOfColRefs));
×
5298
      if (tb.numOfColRefs > 0) {
×
5299
        SVCTableRefCols *pTb = taosMemoryCalloc(1, sizeof(tb) + tb.numOfColRefs * sizeof(SRefColInfo));
×
5300
        if (NULL == pTb) {
×
5301
          code = terrno;
×
5302
          return code;
×
5303
        }
5304
        if (NULL == taosArrayPush(pRsp->pTables, &pTb)) {
×
5305
          code = terrno;
×
5306
          taosMemoryFree(pTb);
×
5307
          return code;
×
5308
        }
5309

5310
        pTb->uid = tb.uid;
×
5311
        pTb->numOfSrcTbls = tb.numOfSrcTbls;
×
5312
        pTb->numOfColRefs = tb.numOfColRefs;
×
5313
        pTb->refCols = (SRefColInfo *)(pTb + 1);
×
5314
        for (int32_t n = 0; n < tb.numOfColRefs; ++n) {
×
5315
          TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &pTb->refCols[n].colId));
×
5316
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refDbName));
×
5317
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refTableName));
×
5318
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refColName));
×
5319
        }
5320
      }
5321
    }
5322
  }
5323

5324
_exit:
×
5325

5326
  return code;
×
5327
}
5328

5329
int32_t tDeserializeSVSubTablesRsp(void *buf, int32_t bufLen, SVSubTablesRsp *pRsp) {
×
5330
  SDecoder decoder = {0};
×
5331
  int32_t  code = 0;
×
5332
  int32_t  lino;
5333
  tDecoderInit(&decoder, buf, bufLen);
×
5334

5335
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5336
  TAOS_CHECK_EXIT(tDeserializeSVSubTablesRspImpl(&decoder, pRsp));
×
5337

5338
  tEndDecode(&decoder);
×
5339

5340
_exit:
×
5341

5342
  tDecoderClear(&decoder);
×
5343
  return code;
×
5344
}
5345

5346
void tFreeSVCTableRefCols(void *pParam) {
×
5347
  SVCTableRefCols *pCols = *(SVCTableRefCols **)pParam;
×
5348
  if (NULL == pCols) {
×
5349
    return;
×
5350
  }
5351

5352
  taosMemoryFree(pCols);
×
5353
}
5354

5355
void tDestroySVSubTablesRsp(void *rsp) {
×
5356
  if (NULL == rsp) {
×
5357
    return;
×
5358
  }
5359

5360
  SVSubTablesRsp *pRsp = (SVSubTablesRsp *)rsp;
×
5361

5362
  taosArrayDestroyEx(pRsp->pTables, tFreeSVCTableRefCols);
×
5363
}
5364

5365
int32_t tSerializeSVStbRefDbsReq(void *buf, int32_t bufLen, SVStbRefDbsReq *pReq) {
×
5366
  SEncoder encoder = {0};
×
5367
  int32_t  code = 0;
×
5368
  int32_t  lino;
5369
  int32_t  tlen;
5370
  tEncoderInit(&encoder, buf, bufLen);
×
5371

5372
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5373
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
×
5374
  tEndEncode(&encoder);
×
5375

5376
_exit:
×
5377
  if (code) {
×
5378
    tlen = code;
×
5379
  } else {
5380
    tlen = encoder.pos;
×
5381
  }
5382
  tEncoderClear(&encoder);
×
5383
  return tlen;
×
5384
}
5385

5386
int32_t tDeserializeSVStbRefDbsReq(void *buf, int32_t bufLen, SVStbRefDbsReq *pReq) {
14✔
5387
  SDecoder decoder = {0};
14✔
5388
  int32_t  code = 0;
14✔
5389
  int32_t  lino;
5390
  tDecoderInit(&decoder, buf, bufLen);
14✔
5391

5392
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
14!
5393
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
28!
5394
  tEndDecode(&decoder);
14✔
5395

5396
_exit:
14✔
5397
  tDecoderClear(&decoder);
14✔
5398
  return code;
14✔
5399
}
5400

5401
int32_t tSerializeSVStbRefDbsRspImpl(SEncoder *pEncoder, SVStbRefDbsRsp *pRsp) {
28✔
5402
  int32_t code = 0;
28✔
5403
  int32_t lino;
5404
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
56!
5405
  int32_t numOfDbs = taosArrayGetSize(pRsp->pDbs);
28✔
5406
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, numOfDbs));
28!
5407
  for (int32_t i = 0; i < numOfDbs; ++i) {
56✔
5408
    char *pDbName = (char *)taosArrayGetP(pRsp->pDbs, i);
28✔
5409
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pDbName));
28!
5410
  }
5411

5412
_exit:
28✔
5413

5414
  return code;
28✔
5415
}
5416

5417
int32_t tSerializeSVStbRefDbsRsp(void *buf, int32_t bufLen, SVStbRefDbsRsp *pRsp) {
28✔
5418
  SEncoder encoder = {0};
28✔
5419
  int32_t  code = 0;
28✔
5420
  int32_t  lino;
5421
  int32_t  tlen;
5422
  tEncoderInit(&encoder, buf, bufLen);
28✔
5423

5424
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
28!
5425
  TAOS_CHECK_EXIT(tSerializeSVStbRefDbsRspImpl(&encoder, pRsp));
28!
5426

5427
  tEndEncode(&encoder);
28✔
5428

5429
_exit:
28✔
5430
  if (code) {
28!
5431
    tlen = code;
×
5432
  } else {
5433
    tlen = encoder.pos;
28✔
5434
  }
5435
  tEncoderClear(&encoder);
28✔
5436
  return tlen;
28✔
5437
}
5438

5439
int32_t tDeserializeSVStbRefDbsRspImpl(SDecoder *pDecoder, SVStbRefDbsRsp *pRsp) {
×
5440
  int32_t code = 0;
×
5441
  int32_t lino;
5442
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
×
5443
  int32_t numOfDbs = 0;
×
5444
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &numOfDbs));
×
5445
  if (numOfDbs > 0) {
×
5446
    pRsp->pDbs = taosArrayInit(numOfDbs, sizeof(void *));
×
5447
    if (NULL == pRsp->pDbs) {
×
5448
      code = terrno;
×
5449
      return code;
×
5450
    }
5451

5452
    for (int32_t i = 0; i < numOfDbs; ++i) {
×
5453
      char *tbName;
5454
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &tbName));
×
5455
      if (taosArrayPush(pRsp->pDbs, &tbName) == NULL) {
×
5456
        TAOS_CHECK_EXIT(terrno);
×
5457
      }
5458
    }
5459
  }
5460

5461
_exit:
×
5462

5463
  return code;
×
5464
}
5465

5466
int32_t tDeserializeSVStbRefDbsRsp(void *buf, int32_t bufLen, SVStbRefDbsRsp *pRsp) {
×
5467
  SDecoder decoder = {0};
×
5468
  int32_t  code = 0;
×
5469
  int32_t  lino;
5470
  tDecoderInit(&decoder, buf, bufLen);
×
5471

5472
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5473
  TAOS_CHECK_EXIT(tDeserializeSVStbRefDbsRspImpl(&decoder, pRsp));
×
5474

5475
  tEndDecode(&decoder);
×
5476

5477
_exit:
×
5478

5479
  tDecoderClear(&decoder);
×
5480
  return code;
×
5481
}
5482

5483
void tDestroySVStbRefDbsRsp(void *rsp) {
14✔
5484
  if (NULL == rsp) {
14!
5485
    return;
×
5486
  }
5487

5488
  SVStbRefDbsRsp *pRsp = (SVStbRefDbsRsp *)rsp;
14✔
5489

5490
  taosArrayDestroyP(pRsp->pDbs, NULL);
14✔
5491
}
5492

5493
int32_t tSerializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
2✔
5494
  SEncoder encoder = {0};
2✔
5495
  int32_t  code = 0;
2✔
5496
  int32_t  lino;
5497
  int32_t  tlen;
5498

5499
  tEncoderInit(&encoder, buf, bufLen);
2✔
5500

5501
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5502
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
4!
5503
  tEndEncode(&encoder);
2✔
5504

5505
_exit:
2✔
5506
  if (code) {
2!
5507
    tlen = code;
×
5508
  } else {
5509
    tlen = encoder.pos;
2✔
5510
  }
5511
  tEncoderClear(&encoder);
2✔
5512
  return tlen;
2✔
5513
}
5514

5515
int32_t tDeserializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
7,815✔
5516
  SDecoder decoder = {0};
7,815✔
5517
  int32_t  code = 0;
7,815✔
5518
  int32_t  lino;
5519
  tDecoderInit(&decoder, buf, bufLen);
7,815✔
5520

5521
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,815!
5522
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->rowNum));
15,630!
5523
  tEndDecode(&decoder);
7,815✔
5524

5525
_exit:
7,815✔
5526
  tDecoderClear(&decoder);
7,815✔
5527
  return code;
7,815✔
5528
}
5529

5530
int32_t tSerializeSDnodeListReq(void *buf, int32_t bufLen, SDnodeListReq *pReq) {
34✔
5531
  SEncoder encoder = {0};
34✔
5532
  int32_t  code = 0;
34✔
5533
  int32_t  lino;
5534
  int32_t  tlen;
5535
  tEncoderInit(&encoder, buf, bufLen);
34✔
5536

5537
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
34!
5538
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
68!
5539
  tEndEncode(&encoder);
34✔
5540

5541
_exit:
34✔
5542
  if (code) {
34!
5543
    tlen = code;
×
5544
  } else {
5545
    tlen = encoder.pos;
34✔
5546
  }
5547
  tEncoderClear(&encoder);
34✔
5548
  return tlen;
34✔
5549
}
5550

5551
int32_t tSerializeSServerVerReq(void *buf, int32_t bufLen, SServerVerReq *pReq) {
2✔
5552
  SEncoder encoder = {0};
2✔
5553
  int32_t  code = 0;
2✔
5554
  int32_t  lino;
5555
  int32_t  tlen;
5556
  tEncoderInit(&encoder, buf, bufLen);
2✔
5557

5558
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5559
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
4!
5560
  tEndEncode(&encoder);
2✔
5561

5562
_exit:
2✔
5563
  if (code) {
2!
5564
    tlen = code;
×
5565
  } else {
5566
    tlen = encoder.pos;
2✔
5567
  }
5568
  tEncoderClear(&encoder);
2✔
5569
  return tlen;
2✔
5570
}
5571

5572
int32_t tSerializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
2✔
5573
  SEncoder encoder = {0};
2✔
5574
  int32_t  code = 0;
2✔
5575
  int32_t  lino;
5576
  int32_t  tlen;
5577
  tEncoderInit(&encoder, buf, bufLen);
2✔
5578

5579
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5580
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->ver));
4!
5581
  tEndEncode(&encoder);
2✔
5582

5583
_exit:
2✔
5584
  if (code) {
2!
5585
    tlen = code;
×
5586
  } else {
5587
    tlen = encoder.pos;
2✔
5588
  }
5589
  tEncoderClear(&encoder);
2✔
5590
  return tlen;
2✔
5591
}
5592

5593
int32_t tDeserializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
1✔
5594
  SDecoder decoder = {0};
1✔
5595
  int32_t  code = 0;
1✔
5596
  int32_t  lino;
5597
  tDecoderInit(&decoder, buf, bufLen);
1✔
5598

5599
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
5600
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->ver));
1!
5601

5602
  tEndDecode(&decoder);
1✔
5603
_exit:
1✔
5604
  tDecoderClear(&decoder);
1✔
5605
  return code;
1✔
5606
}
5607

5608
int32_t tSerializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
15,632✔
5609
  SEncoder encoder = {0};
15,632✔
5610
  int32_t  code = 0;
15,632✔
5611
  int32_t  lino;
5612
  int32_t  tlen;
5613
  tEncoderInit(&encoder, buf, bufLen);
15,632✔
5614

5615
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
15,632!
5616
  int32_t num = taosArrayGetSize(pRsp->qnodeList);
15,632✔
5617
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
15,632!
5618
  for (int32_t i = 0; i < num; ++i) {
30,888✔
5619
    SQueryNodeLoad *pLoad = taosArrayGet(pRsp->qnodeList, i);
15,256✔
5620
    TAOS_CHECK_EXIT(tEncodeSQueryNodeLoad(&encoder, pLoad));
15,256!
5621
  }
5622
  tEndEncode(&encoder);
15,632✔
5623

5624
_exit:
15,632✔
5625
  if (code) {
15,632!
5626
    tlen = code;
×
5627
  } else {
5628
    tlen = encoder.pos;
15,632✔
5629
  }
5630
  tEncoderClear(&encoder);
15,632✔
5631
  return tlen;
15,632✔
5632
}
5633

5634
int32_t tDeserializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
1✔
5635
  SDecoder decoder = {0};
1✔
5636
  int32_t  code = 0;
1✔
5637
  int32_t  lino;
5638
  tDecoderInit(&decoder, buf, bufLen);
1✔
5639

5640
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
5641
  int32_t num = 0;
1✔
5642
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1!
5643
  if (NULL == pRsp->qnodeList) {
1!
5644
    pRsp->qnodeList = taosArrayInit(num, sizeof(SQueryNodeLoad));
×
5645
    if (NULL == pRsp->qnodeList) {
×
5646
      TAOS_CHECK_EXIT(terrno);
×
5647
    }
5648
  }
5649

5650
  for (int32_t i = 0; i < num; ++i) {
4✔
5651
    SQueryNodeLoad load = {0};
3✔
5652
    TAOS_CHECK_EXIT(tDecodeSQueryNodeLoad(&decoder, &load));
3!
5653
    if (taosArrayPush(pRsp->qnodeList, &load) == NULL) {
6!
5654
      TAOS_CHECK_EXIT(terrno);
×
5655
    }
5656
  }
5657
  tEndDecode(&decoder);
1✔
5658

5659
_exit:
1✔
5660
  tDecoderClear(&decoder);
1✔
5661
  return code;
1✔
5662
}
5663

5664
void tFreeSQnodeListRsp(SQnodeListRsp *pRsp) { taosArrayDestroy(pRsp->qnodeList); }
7,816✔
5665

5666
int32_t tSerializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
30,002✔
5667
  SEncoder encoder = {0};
30,002✔
5668
  int32_t  code = 0;
30,002✔
5669
  int32_t  lino;
5670
  int32_t  tlen;
5671
  tEncoderInit(&encoder, buf, bufLen);
30,002✔
5672

5673
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30,002!
5674
  int32_t num = taosArrayGetSize(pRsp->dnodeList);
30,002✔
5675
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
30,002!
5676
  for (int32_t i = 0; i < num; ++i) {
60,668✔
5677
    SDNodeAddr *pAddr = taosArrayGet(pRsp->dnodeList, i);
30,666✔
5678
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pAddr->nodeId));
61,332!
5679
    TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, &pAddr->epSet));
30,666!
5680
  }
5681
  tEndEncode(&encoder);
30,002✔
5682

5683
_exit:
30,002✔
5684
  if (code) {
30,002!
5685
    tlen = code;
×
5686
  } else {
5687
    tlen = encoder.pos;
30,002✔
5688
  }
5689
  tEncoderClear(&encoder);
30,002✔
5690
  return tlen;
30,002✔
5691
}
5692

5693
int32_t tDeserializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
17✔
5694
  SDecoder decoder = {0};
17✔
5695
  int32_t  code = 0;
17✔
5696
  int32_t  lino;
5697
  tDecoderInit(&decoder, buf, bufLen);
17✔
5698

5699
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
17!
5700
  int32_t num = 0;
17✔
5701
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
17!
5702
  if (NULL == pRsp->dnodeList) {
17!
5703
    pRsp->dnodeList = taosArrayInit(num, sizeof(SDNodeAddr));
17✔
5704
    if (NULL == pRsp->dnodeList) {
17!
5705
      TAOS_CHECK_EXIT(terrno);
×
5706
    }
5707
  }
5708

5709
  for (int32_t i = 0; i < num; ++i) {
36✔
5710
    SDNodeAddr addr = {0};
19✔
5711
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &addr.nodeId));
19!
5712
    TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &addr.epSet));
19!
5713
    if (taosArrayPush(pRsp->dnodeList, &addr) == NULL) {
38!
5714
      TAOS_CHECK_EXIT(terrno);
×
5715
    }
5716
  }
5717
  tEndDecode(&decoder);
17✔
5718

5719
_exit:
17✔
5720
  tDecoderClear(&decoder);
17✔
5721
  return code;
17✔
5722
}
5723

5724
void tFreeSDnodeListRsp(SDnodeListRsp *pRsp) { taosArrayDestroy(pRsp->dnodeList); }
15,001✔
5725

5726
int32_t tSerializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
32✔
5727
  SEncoder encoder = {0};
32✔
5728
  int32_t  code = 0;
32✔
5729
  int32_t  lino;
5730
  int32_t  tlen;
5731
  tEncoderInit(&encoder, buf, bufLen);
32✔
5732

5733
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
5734
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
64!
5735
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.skey));
64!
5736
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.ekey));
64!
5737
  ENCODESQL();
96!
5738

5739
  // encode vgroup list
5740
  int32_t numOfVgroups = taosArrayGetSize(pReq->vgroupIds);
32✔
5741
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfVgroups));
32!
5742
  if (numOfVgroups > 0) {
32!
5743
    for (int32_t i = 0; i < numOfVgroups; ++i) {
×
5744
      int64_t vgid = *(int64_t *)taosArrayGet(pReq->vgroupIds, i);
×
5745
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, vgid));
×
5746
    }
5747
  }
5748

5749
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
64!
5750

5751
  tEndEncode(&encoder);
32✔
5752

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

5763
int32_t tDeserializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
81✔
5764
  SDecoder decoder = {0};
81✔
5765
  int32_t  code = 0;
81✔
5766
  int32_t  lino;
5767
  tDecoderInit(&decoder, buf, bufLen);
81✔
5768

5769
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
81!
5770
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
81!
5771
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.skey));
162!
5772
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.ekey));
162!
5773
  DECODESQL();
243!
5774

5775
  // decode vgroup list
5776
  if (!tDecodeIsEnd(&decoder)) {
81!
5777
    int32_t numOfVgroups = 0;
81✔
5778
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgroups));
81!
5779
    if (numOfVgroups > 0) {
81✔
5780
      pReq->vgroupIds = taosArrayInit(numOfVgroups, sizeof(int64_t));
4✔
5781
      if (NULL == pReq->vgroupIds) {
4!
5782
        TAOS_CHECK_EXIT(terrno);
×
5783
      }
5784

5785
      for (int32_t i = 0; i < numOfVgroups; ++i) {
12✔
5786
        int64_t vgid;
5787
        TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &vgid));
8!
5788
        if (taosArrayPush(pReq->vgroupIds, &vgid) == NULL) {
16!
5789
          TAOS_CHECK_EXIT(terrno);
×
5790
        }
5791
      }
5792
    }
5793
  }
5794

5795
  if (!tDecodeIsEnd(&decoder)) {
81!
5796
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
162!
5797
  } else {
5798
    pReq->metaOnly = false;
×
5799
  }
5800
  tEndDecode(&decoder);
81✔
5801

5802
_exit:
81✔
5803
  tDecoderClear(&decoder);
81✔
5804
  return code;
81✔
5805
}
5806

5807
void tFreeSCompactDbReq(SCompactDbReq *pReq) {
97✔
5808
  FREESQL();
97!
5809
  taosArrayDestroy(pReq->vgroupIds);
97✔
5810
  pReq->vgroupIds = NULL;
97✔
5811
}
97✔
5812

5813
int32_t tSerializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
134✔
5814
  SEncoder encoder = {0};
134✔
5815
  int32_t  code = 0;
134✔
5816
  int32_t  lino;
5817
  int32_t  tlen;
5818
  tEncoderInit(&encoder, buf, bufLen);
134✔
5819

5820
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
134!
5821
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->compactId));
268!
5822
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->bAccepted));
268!
5823
  tEndEncode(&encoder);
134✔
5824

5825
_exit:
134✔
5826
  if (code) {
134!
5827
    tlen = code;
×
5828
  } else {
5829
    tlen = encoder.pos;
134✔
5830
  }
5831
  tEncoderClear(&encoder);
134✔
5832
  return tlen;
134✔
5833
}
5834

5835
int32_t tDeserializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
×
5836
  SDecoder decoder = {0};
×
5837
  int32_t  code = 0;
×
5838
  int32_t  lino;
5839
  tDecoderInit(&decoder, buf, bufLen);
×
5840

5841
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5842
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->compactId));
×
5843
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->bAccepted));
×
5844
  tEndDecode(&decoder);
×
5845

5846
_exit:
×
5847
  tDecoderClear(&decoder);
×
5848
  return code;
×
5849
}
5850

5851
int32_t tSerializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
×
5852
  SEncoder encoder = {0};
×
5853
  int32_t  code = 0;
×
5854
  int32_t  lino;
5855
  int32_t  tlen;
5856
  tEncoderInit(&encoder, buf, bufLen);
×
5857

5858
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5859
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
5860
  ENCODESQL();
×
5861

5862
  tEndEncode(&encoder);
×
5863

5864
_exit:
×
5865
  if (code) {
×
5866
    tlen = code;
×
5867
  } else {
5868
    tlen = encoder.pos;
×
5869
  }
5870
  tEncoderClear(&encoder);
×
5871
  return tlen;
×
5872
}
5873

5874
int32_t tDeserializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
2✔
5875
  SDecoder decoder = {0};
2✔
5876
  int32_t  code = 0;
2✔
5877
  int32_t  lino;
5878
  tDecoderInit(&decoder, buf, bufLen);
2✔
5879

5880
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
5881
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
4!
5882
  DECODESQL();
4!
5883

5884
  tEndDecode(&decoder);
2✔
5885

5886
_exit:
2✔
5887
  tDecoderClear(&decoder);
2✔
5888
  return code;
2✔
5889
}
5890

5891
void tFreeSKillCompactReq(SKillCompactReq *pReq) { FREESQL(); }
2!
5892

5893
int32_t tSerializeSUseDbRspImp(SEncoder *pEncoder, const SUseDbRsp *pRsp) {
13,143,755✔
5894
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
26,287,510!
5895
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->uid));
26,287,510!
5896
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgVersion));
26,287,510!
5897
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgNum));
26,287,510!
5898
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashPrefix));
26,287,510!
5899
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashSuffix));
26,287,510!
5900
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->hashMethod));
26,287,510!
5901

5902
  for (int32_t i = 0; i < pRsp->vgNum; ++i) {
89,262,788✔
5903
    SVgroupInfo *pVgInfo = taosArrayGet(pRsp->pVgroupInfos, i);
76,120,610✔
5904
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->vgId));
152,104,530!
5905
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashBegin));
152,104,530!
5906
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashEnd));
152,104,530!
5907
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
76,052,265!
5908
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->numOfTable));
152,238,066!
5909
  }
5910

5911
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->errCode));
26,284,356!
5912
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->stateTs));
26,284,356!
5913
  TAOS_CHECK_RETURN(tEncodeU8(pEncoder, pRsp->flags));
26,284,356!
5914
  return 0;
13,142,178✔
5915
}
5916

5917
int32_t tSerializeSUseDbRsp(void *buf, int32_t bufLen, const SUseDbRsp *pRsp) {
13,135,152✔
5918
  SEncoder encoder = {0};
13,135,152✔
5919
  int32_t  code = 0;
13,135,152✔
5920
  int32_t  lino;
5921
  int32_t  tlen;
5922
  tEncoderInit(&encoder, buf, bufLen);
13,135,152✔
5923

5924
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
13,135,222!
5925
  TAOS_CHECK_EXIT(tSerializeSUseDbRspImp(&encoder, pRsp));
13,135,440!
5926
  tEndEncode(&encoder);
13,135,352✔
5927

5928
_exit:
13,135,306✔
5929
  if (code) {
13,135,306!
5930
    tlen = code;
×
5931
  } else {
5932
    tlen = encoder.pos;
13,135,306✔
5933
  }
5934
  tEncoderClear(&encoder);
13,135,306✔
5935
  return tlen;
13,135,231✔
5936
}
5937

5938
int32_t tSerializeSDbHbRspImp(SEncoder *pEncoder, const SDbHbRsp *pRsp) {
45,736✔
5939
  if (pRsp->useDbRsp) {
45,736✔
5940
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
8,354!
5941
    TAOS_CHECK_RETURN(tSerializeSUseDbRspImp(pEncoder, pRsp->useDbRsp));
8,354!
5942
  } else {
5943
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
37,382!
5944
  }
5945

5946
  if (pRsp->cfgRsp) {
45,736✔
5947
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
29,028!
5948
    TAOS_CHECK_RETURN(tSerializeSDbCfgRspImpl(pEncoder, pRsp->cfgRsp));
29,028!
5949
  } else {
5950
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
16,708!
5951
  }
5952

5953
  if (pRsp->pTsmaRsp) {
45,736✔
5954
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
40,134!
5955
    TAOS_CHECK_RETURN(tEncodeTableTSMAInfoRsp(pEncoder, pRsp->pTsmaRsp));
40,134!
5956
  } else {
5957
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
5,602!
5958
  }
5959
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->dbTsmaVersion));
91,472!
5960
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
91,472!
5961
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
91,472!
5962
  return 0;
45,736✔
5963
}
5964

5965
int32_t tSerializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
106,570✔
5966
  SEncoder encoder = {0};
106,570✔
5967
  int32_t  code = 0;
106,570✔
5968
  int32_t  lino;
5969
  int32_t  tlen;
5970
  tEncoderInit(&encoder, buf, bufLen);
106,570✔
5971

5972
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
106,570!
5973

5974
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
106,570✔
5975
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
106,570!
5976
  for (int32_t i = 0; i < numOfBatch; ++i) {
152,306✔
5977
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
45,736✔
5978
    TAOS_CHECK_EXIT(tSerializeSDbHbRspImp(&encoder, pDbRsp));
45,736!
5979
  }
5980
  tEndEncode(&encoder);
106,570✔
5981

5982
_exit:
106,570✔
5983
  if (code) {
106,570!
5984
    tlen = code;
×
5985
  } else {
5986
    tlen = encoder.pos;
106,570✔
5987
  }
5988
  tEncoderClear(&encoder);
106,570✔
5989
  return tlen;
106,570✔
5990
}
5991

5992
int32_t tDeserializeSUseDbRspImp(SDecoder *pDecoder, SUseDbRsp *pRsp) {
22,405✔
5993
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->db));
22,405!
5994
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->uid));
44,816!
5995
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgVersion));
44,813!
5996
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgNum));
44,808!
5997
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashPrefix));
44,799!
5998
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashSuffix));
44,797!
5999
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->hashMethod));
44,804!
6000

6001
  if (pRsp->vgNum > 0) {
22,404✔
6002
    pRsp->pVgroupInfos = taosArrayInit(pRsp->vgNum, sizeof(SVgroupInfo));
19,280✔
6003
    if (pRsp->pVgroupInfos == NULL) {
19,277!
6004
      TAOS_CHECK_RETURN(terrno);
×
6005
    }
6006

6007
    for (int32_t i = 0; i < pRsp->vgNum; ++i) {
124,983✔
6008
      SVgroupInfo vgInfo = {0};
105,665✔
6009
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.vgId));
105,747!
6010
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashBegin));
105,715!
6011
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashEnd));
105,660!
6012
      TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &vgInfo.epSet));
105,660!
6013
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.numOfTable));
105,633!
6014
      if (taosArrayPush(pRsp->pVgroupInfos, &vgInfo) == NULL) {
211,344!
6015
        TAOS_CHECK_RETURN(terrno);
×
6016
      }
6017
    }
6018
  }
6019

6020
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->errCode));
44,846!
6021
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->stateTs));
44,808!
6022
  if (!tDecodeIsEnd(pDecoder)) {
22,404!
6023
    TAOS_CHECK_RETURN(tDecodeU8(pDecoder, &pRsp->flags));
44,806!
6024
  }
6025
  return 0;
22,402✔
6026
}
6027

6028
int32_t tDeserializeSUseDbRsp(void *buf, int32_t bufLen, SUseDbRsp *pRsp) {
21,819✔
6029
  SDecoder decoder = {0};
21,819✔
6030
  int32_t  code = 0;
21,819✔
6031
  int32_t  lino;
6032
  tDecoderInit(&decoder, buf, bufLen);
21,819✔
6033

6034
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
21,828✔
6035
  TAOS_CHECK_EXIT(tDeserializeSUseDbRspImp(&decoder, pRsp));
21,833!
6036
  tEndDecode(&decoder);
21,823✔
6037

6038
_exit:
21,826✔
6039
  tDecoderClear(&decoder);
21,826✔
6040
  return code;
21,829✔
6041
}
6042

6043
int32_t tDeserializeSDbHbRspImp(SDecoder *decoder, SDbHbRsp *pRsp) {
864✔
6044
  int8_t flag = 0;
864✔
6045
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
864!
6046
  if (flag) {
864✔
6047
    pRsp->useDbRsp = taosMemoryCalloc(1, sizeof(SUseDbRsp));
578!
6048
    if (NULL == pRsp->useDbRsp) {
578!
6049
      TAOS_CHECK_RETURN(terrno);
×
6050
    }
6051
    TAOS_CHECK_RETURN(tDeserializeSUseDbRspImp(decoder, pRsp->useDbRsp));
578!
6052
  }
6053
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
864!
6054
  if (flag) {
864✔
6055
    pRsp->cfgRsp = taosMemoryCalloc(1, sizeof(SDbCfgRsp));
205!
6056
    if (NULL == pRsp->cfgRsp) {
205!
6057
      TAOS_CHECK_RETURN(terrno);
×
6058
    }
6059
    TAOS_CHECK_RETURN(tDeserializeSDbCfgRspImpl(decoder, pRsp->cfgRsp));
205!
6060
  }
6061
  if (!tDecodeIsEnd(decoder)) {
864!
6062
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
864!
6063
    if (flag) {
864✔
6064
      pRsp->pTsmaRsp = taosMemoryCalloc(1, sizeof(STableTSMAInfoRsp));
465!
6065
      if (!pRsp->pTsmaRsp) {
465!
6066
        TAOS_CHECK_RETURN(terrno);
×
6067
      }
6068
      TAOS_CHECK_RETURN(tDecodeTableTSMAInfoRsp(decoder, pRsp->pTsmaRsp));
465!
6069
    }
6070
  }
6071
  if (!tDecodeIsEnd(decoder)) {
864!
6072
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->dbTsmaVersion));
1,728!
6073
  }
6074
  if (!tDecodeIsEnd(decoder)) {
864!
6075
    TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
864!
6076
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
1,728!
6077
  }
6078

6079
  return 0;
864✔
6080
}
6081

6082
int32_t tDeserializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
11,713✔
6083
  SDecoder decoder = {0};
11,713✔
6084
  int32_t  code = 0;
11,713✔
6085
  int32_t  lino;
6086
  tDecoderInit(&decoder, buf, bufLen);
11,713✔
6087

6088
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,713!
6089

6090
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
11,713✔
6091
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
11,713!
6092

6093
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SDbHbRsp));
11,713✔
6094
  if (pRsp->pArray == NULL) {
11,713!
6095
    TAOS_CHECK_EXIT(terrno);
×
6096
  }
6097

6098
  for (int32_t i = 0; i < numOfBatch; ++i) {
12,577✔
6099
    SDbHbRsp rsp = {0};
864✔
6100
    TAOS_CHECK_EXIT(tDeserializeSDbHbRspImp(&decoder, &rsp));
864!
6101

6102
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
1,728!
6103
      TAOS_CHECK_EXIT(terrno);
×
6104
    }
6105
  }
6106
  tEndDecode(&decoder);
11,713✔
6107

6108
_exit:
11,713✔
6109
  tDecoderClear(&decoder);
11,713✔
6110
  return code;
11,713✔
6111
}
6112

6113
void tFreeSUsedbRsp(SUseDbRsp *pRsp) { taosArrayDestroy(pRsp->pVgroupInfos); }
6,591,999✔
6114

6115
void tFreeSDbHbRsp(SDbHbRsp *pDbRsp) {
23,732✔
6116
  if (NULL == pDbRsp) {
23,732!
6117
    return;
×
6118
  }
6119

6120
  if (pDbRsp->useDbRsp) {
23,732✔
6121
    tFreeSUsedbRsp(pDbRsp->useDbRsp);
4,755✔
6122
    taosMemoryFree(pDbRsp->useDbRsp);
4,755!
6123
  }
6124

6125
  if (pDbRsp->cfgRsp) {
23,732✔
6126
    tFreeSDbCfgRsp(pDbRsp->cfgRsp);
14,514✔
6127
    taosMemoryFree(pDbRsp->cfgRsp);
14,514!
6128
  }
6129
  if (pDbRsp->pTsmaRsp) {
23,732✔
6130
    tFreeTableTSMAInfoRsp(pDbRsp->pTsmaRsp);
20,532✔
6131
    taosMemoryFree(pDbRsp->pTsmaRsp);
20,532!
6132
  }
6133
}
6134

6135
void tFreeSDbHbBatchRsp(SDbHbBatchRsp *pRsp) {
64,998✔
6136
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
64,998✔
6137
  for (int32_t i = 0; i < numOfBatch; ++i) {
88,730✔
6138
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
23,732✔
6139
    tFreeSDbHbRsp(pDbRsp);
23,732✔
6140
  }
6141

6142
  taosArrayDestroy(pRsp->pArray);
64,998✔
6143
}
64,998✔
6144

6145
int32_t tSerializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
45,592✔
6146
  SEncoder encoder = {0};
45,592✔
6147
  int32_t  code = 0;
45,592✔
6148
  int32_t  lino;
6149
  int32_t  tlen;
6150
  tEncoderInit(&encoder, buf, bufLen);
45,592✔
6151

6152
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
45,591!
6153

6154
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
45,592✔
6155
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
45,592!
6156
  for (int32_t i = 0; i < numOfBatch; ++i) {
91,338✔
6157
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
45,746✔
6158
    TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pUserAuthRsp));
45,746!
6159
  }
6160
  tEndEncode(&encoder);
45,592✔
6161

6162
_exit:
45,591✔
6163
  if (code) {
45,591!
6164
    tlen = code;
×
6165
  } else {
6166
    tlen = encoder.pos;
45,591✔
6167
  }
6168
  tEncoderClear(&encoder);
45,591✔
6169
  return tlen;
45,590✔
6170
}
6171

6172
int32_t tDeserializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
659✔
6173
  SDecoder decoder = {0};
659✔
6174
  int32_t  code = 0;
659✔
6175
  int32_t  lino;
6176
  tDecoderInit(&decoder, buf, bufLen);
659✔
6177

6178
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
659!
6179

6180
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
659✔
6181
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
659!
6182

6183
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SGetUserAuthRsp));
659✔
6184
  if (pRsp->pArray == NULL) {
659!
6185
    TAOS_CHECK_EXIT(terrno);
×
6186
  }
6187

6188
  for (int32_t i = 0; i < numOfBatch; ++i) {
1,389✔
6189
    SGetUserAuthRsp rsp = {0};
730✔
6190
    TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, &rsp));
730!
6191
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
1,460!
6192
      TAOS_CHECK_EXIT(terrno);
×
6193
    }
6194
  }
6195
  tEndDecode(&decoder);
659✔
6196

6197
_exit:
659✔
6198
  tDecoderClear(&decoder);
659✔
6199
  return code;
659✔
6200
}
6201

6202
void tFreeSUserAuthBatchRsp(SUserAuthBatchRsp *pRsp) {
359,049✔
6203
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
359,049✔
6204
  for (int32_t i = 0; i < numOfBatch; ++i) {
381,921✔
6205
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
22,873✔
6206
    tFreeSGetUserAuthRsp(pUserAuthRsp);
22,873✔
6207
  }
6208

6209
  taosArrayDestroy(pRsp->pArray);
359,048✔
6210
}
359,049✔
6211

6212
int32_t tSerializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
3,892✔
6213
  SEncoder encoder = {0};
3,892✔
6214
  int32_t  code = 0;
3,892✔
6215
  int32_t  lino;
6216
  int32_t  tlen;
6217
  tEncoderInit(&encoder, buf, bufLen);
3,892✔
6218

6219
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,892!
6220
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
7,784!
6221
  tEndEncode(&encoder);
3,892✔
6222

6223
_exit:
3,892✔
6224
  if (code) {
3,892!
6225
    tlen = code;
×
6226
  } else {
6227
    tlen = encoder.pos;
3,892✔
6228
  }
6229
  tEncoderClear(&encoder);
3,892✔
6230
  return tlen;
3,892✔
6231
}
6232

6233
int32_t tDeserializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
142,374✔
6234
  SDecoder decoder = {0};
142,374✔
6235
  int32_t  code = 0;
142,374✔
6236
  int32_t  lino;
6237
  tDecoderInit(&decoder, buf, bufLen);
142,374✔
6238

6239
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
142,374!
6240
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
142,375!
6241
  tEndDecode(&decoder);
142,375✔
6242

6243
_exit:
142,375✔
6244
  tDecoderClear(&decoder);
142,375✔
6245
  return code;
142,375✔
6246
}
6247

6248
int32_t tSerializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
16✔
6249
  SEncoder encoder = {0};
16✔
6250
  int32_t  code = 0;
16✔
6251
  int32_t  lino;
6252
  int32_t  tlen;
6253
  tEncoderInit(&encoder, buf, bufLen);
16✔
6254

6255
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
6256
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
32!
6257
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxSpeed));
32!
6258
  tEndEncode(&encoder);
16✔
6259

6260
_exit:
16✔
6261
  if (code) {
16!
6262
    tlen = code;
×
6263
  } else {
6264
    tlen = encoder.pos;
16✔
6265
  }
6266
  tEncoderClear(&encoder);
16✔
6267
  return tlen;
16✔
6268
}
6269

6270
int32_t tDeserializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
13✔
6271
  SDecoder decoder = {0};
13✔
6272
  int32_t  code = 0;
13✔
6273
  int32_t  lino;
6274
  tDecoderInit(&decoder, buf, bufLen);
13✔
6275

6276
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
13!
6277
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
13!
6278
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxSpeed));
26!
6279
  tEndDecode(&decoder);
13✔
6280

6281
_exit:
13✔
6282
  tDecoderClear(&decoder);
13✔
6283
  return code;
13✔
6284
}
6285

6286
int32_t tSerializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
525✔
6287
  SEncoder encoder = {0};
525✔
6288
  int32_t  code = 0;
525✔
6289
  int32_t  lino;
6290
  int32_t  tlen;
6291
  tEncoderInit(&encoder, buf, bufLen);
525✔
6292

6293
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
525!
6294
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
1,050!
6295
  tEndEncode(&encoder);
525✔
6296

6297
_exit:
525✔
6298
  if (code) {
525!
6299
    tlen = code;
×
6300
  } else {
6301
    tlen = encoder.pos;
525✔
6302
  }
6303
  tEncoderClear(&encoder);
525✔
6304
  return tlen;
525✔
6305
}
6306

6307
int32_t tDeserializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
502✔
6308
  SDecoder decoder = {0};
502✔
6309
  int32_t  code = 0;
502✔
6310
  int32_t  lino;
6311
  tDecoderInit(&decoder, buf, bufLen);
502✔
6312

6313
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
503!
6314
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
1,005!
6315

6316
  tEndDecode(&decoder);
502✔
6317

6318
_exit:
502✔
6319
  tDecoderClear(&decoder);
502✔
6320
  return code;
504✔
6321
}
6322

6323
int32_t tSerializeSSsMigrateDbReq(void *buf, int32_t bufLen, SSsMigrateDbReq *pReq) {
×
6324
  SEncoder encoder = {0};
×
6325
  int32_t  code = 0;
×
6326
  int32_t  lino;
6327
  int32_t  tlen;
6328
  tEncoderInit(&encoder, buf, bufLen);
×
6329

6330
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6331
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
×
6332
  tEndEncode(&encoder);
×
6333

6334
_exit:
×
6335
  if (code) {
×
6336
    tlen = code;
×
6337
  } else {
6338
    tlen = encoder.pos;
×
6339
  }
6340
  tEncoderClear(&encoder);
×
6341
  return tlen;
×
6342
}
6343

6344
int32_t tDeserializeSSsMigrateDbReq(void *buf, int32_t bufLen, SSsMigrateDbReq *pReq) {
×
6345
  SDecoder decoder = {0};
×
6346
  int32_t  code = 0;
×
6347
  int32_t  lino;
6348
  tDecoderInit(&decoder, buf, bufLen);
×
6349

6350
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6351
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
6352
  tEndDecode(&decoder);
×
6353

6354
_exit:
×
6355
  tDecoderClear(&decoder);
×
6356
  return code;
×
6357
}
6358

6359
int32_t tSerializeSSsMigrateDbRsp(void *buf, int32_t bufLen, SSsMigrateDbRsp *pRsp) {
×
6360
  SEncoder encoder = {0};
×
6361
  int32_t  code = 0;
×
6362
  int32_t  lino;
6363
  int32_t  tlen;
6364
  tEncoderInit(&encoder, buf, bufLen);
×
6365

6366
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6367
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->ssMigrateId));
×
6368
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pRsp->bAccepted));
×
6369
  tEndEncode(&encoder);
×
6370

6371
_exit:
×
6372
  if (code) {
×
6373
    tlen = code;
×
6374
  } else {
6375
    tlen = encoder.pos;
×
6376
  }
6377
  tEncoderClear(&encoder);
×
6378
  return tlen;
×
6379
}
6380

6381
int32_t tDeserializeSSsMigrateDbRsp(void *buf, int32_t bufLen, SSsMigrateDbRsp *pRsp) {
×
6382
  SDecoder decoder = {0};
×
6383
  int32_t  code = 0;
×
6384
  int32_t  lino;
6385
  tDecoderInit(&decoder, buf, bufLen);
×
6386

6387
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6388
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->ssMigrateId));
×
6389
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pRsp->bAccepted));
×
6390
  tEndDecode(&decoder);
×
6391

6392
_exit:
×
6393
  tDecoderClear(&decoder);
×
6394
  return code;
×
6395
}
6396

6397
int32_t tSerializeSSsMigrateVgroupReq(void *buf, int32_t bufLen, SSsMigrateVgroupReq *pReq) {
×
6398
  SEncoder encoder = {0};
×
6399
  int32_t  code = 0;
×
6400
  int32_t  lino;
6401
  int32_t  tlen;
6402
  tEncoderInit(&encoder, buf, bufLen);
×
6403

6404
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6405
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssMigrateId));
×
6406
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->nodeId));
×
6407
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
×
6408

6409
  tEndEncode(&encoder);
×
6410

6411
_exit:
×
6412
  if (code) {
×
6413
    tlen = code;
×
6414
  } else {
6415
    tlen = encoder.pos;
×
6416
  }
6417
  tEncoderClear(&encoder);
×
6418
  return tlen;
×
6419
}
6420

6421
int32_t tDeserializeSSsMigrateVgroupReq(void *buf, int32_t bufLen, SSsMigrateVgroupReq *pReq) {
×
6422
  SDecoder decoder = {0};
×
6423
  int32_t  code = 0;
×
6424
  int32_t  lino;
6425
  tDecoderInit(&decoder, buf, bufLen);
×
6426

6427
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6428
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssMigrateId));
×
6429
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->nodeId));
×
6430
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
×
6431
  tEndDecode(&decoder);
×
6432

6433
_exit:
×
6434
  tDecoderClear(&decoder);
×
6435
  return code;
×
6436
}
6437

6438
int32_t tSerializeSSsMigrateVgroupRsp(void *buf, int32_t bufLen, SSsMigrateVgroupRsp *pRsp) {
×
6439
  SEncoder encoder = {0};
×
6440
  int32_t  code = 0;
×
6441
  int32_t  lino;
6442
  int32_t  tlen;
6443
  tEncoderInit(&encoder, buf, bufLen);
×
6444

6445
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6446
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->ssMigrateId));
×
6447
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
×
6448
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->nodeId));
×
6449

6450
  tEndEncode(&encoder);
×
6451

6452
_exit:
×
6453
  if (code) {
×
6454
    tlen = code;
×
6455
  } else {
6456
    tlen = encoder.pos;
×
6457
  }
6458
  tEncoderClear(&encoder);
×
6459
  return tlen;
×
6460
}
6461

6462
int32_t tDeserializeSSsMigrateVgroupRsp(void *buf, int32_t bufLen, SSsMigrateVgroupRsp *pRsp) {
×
6463
  SDecoder decoder = {0};
×
6464
  int32_t  code = 0;
×
6465
  int32_t  lino;
6466
  tDecoderInit(&decoder, buf, bufLen);
×
6467

6468
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6469
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->ssMigrateId));
×
6470
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
×
6471
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->nodeId));
×
6472
  tEndDecode(&decoder);
×
6473

6474
_exit:
×
6475
  tDecoderClear(&decoder);
×
6476
  return code;
×
6477
}
6478

6479

6480

6481
int32_t tSerializeSQuerySsMigrateProgressReq(void* buf, int32_t bufLen, SQuerySsMigrateProgressReq* pReq) {
×
6482
  SEncoder encoder = {0};
×
6483
  int32_t  code = 0;
×
6484
  int32_t  lino;
6485
  int32_t  tlen;
6486
  tEncoderInit(&encoder, buf, bufLen);
×
6487

6488
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6489
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssMigrateId));
×
6490
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
6491
  //TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
6492

6493
  tEndEncode(&encoder);
×
6494

6495
_exit:
×
6496
  if (code) {
×
6497
    tlen = code;
×
6498
  } else {
6499
    tlen = encoder.pos;
×
6500
  }
6501
  tEncoderClear(&encoder);
×
6502
  return tlen;
×
6503
}
6504

6505
int32_t tDeserializeSQuerySsMigrateProgressReq(void* buf, int32_t bufLen, SQuerySsMigrateProgressReq* pReq) {
×
6506
  SDecoder decoder = {0};
×
6507
  int32_t  code = 0;
×
6508
  int32_t  lino;
6509
  tDecoderInit(&decoder, buf, bufLen);
×
6510

6511
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6512
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssMigrateId));
×
6513
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
6514
  //TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
6515
  tEndDecode(&decoder);
×
6516

6517
_exit:
×
6518
  tDecoderClear(&decoder);
×
6519
  return code;
×
6520
}
6521

6522
int32_t tSerializeSVnodeSsMigrateState(void* buf, int32_t bufLen, SVnodeSsMigrateState* pState) {
×
6523
  SEncoder encoder = {0};
×
6524
  int32_t  code = 0;
×
6525
  int32_t  lino;
6526
  int32_t  tlen;
6527
  tEncoderInit(&encoder, buf, bufLen);
×
6528

6529
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6530
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pState->mnodeMigrateId));
×
6531
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pState->vnodeMigrateId));
×
6532
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pState->dnodeId));
×
6533
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pState->vgId));
×
6534
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pState->startTimeSec));
×
6535

6536
  int32_t numFs = taosArrayGetSize(pState->pFileSetStates);
×
6537
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numFs));
×
6538
  for (int32_t i = 0; i < numFs; ++i) {
×
6539
    SFileSetSsMigrateState *fs = taosArrayGet(pState->pFileSetStates, i);
×
6540
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, fs->fid));
×
6541
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, fs->state));
×
6542
  }
6543

6544
  tEndEncode(&encoder);
×
6545

6546
_exit:
×
6547
  if (code) {
×
6548
    tlen = code;
×
6549
  } else {
6550
    tlen = encoder.pos;
×
6551
  }
6552
  tEncoderClear(&encoder);
×
6553
  return tlen;
×
6554
}
6555

6556
int32_t tDeserializeSVnodeSsMigrateState(void* buf, int32_t bufLen, SVnodeSsMigrateState* pState) {
×
6557
  SDecoder decoder = {0};
×
6558
  int32_t  code = 0;
×
6559
  int32_t  lino;
6560
  int32_t numFs = 0;
×
6561
  tDecoderInit(&decoder, buf, bufLen);
×
6562

6563
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6564
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pState->mnodeMigrateId));
×
6565
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pState->vnodeMigrateId));
×
6566
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pState->dnodeId));
×
6567
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pState->vgId));
×
6568
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pState->startTimeSec));
×
6569

6570
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numFs));
×
6571
  if (numFs > 0) {
×
6572
    pState->pFileSetStates = taosArrayInit(numFs, sizeof(SFileSetSsMigrateState));
×
6573
    if (pState->pFileSetStates == NULL) {
×
6574
      TAOS_CHECK_EXIT(terrno);
×
6575
    }
6576
  }
6577
  for (int32_t i = 0; i < numFs; ++i) {
×
6578
    SFileSetSsMigrateState state = {0};
×
6579
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &state.fid));
×
6580
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &state.state));
×
6581
    taosArrayPush(pState->pFileSetStates, &state);
×
6582
  }
6583

6584
  tEndDecode(&decoder);
×
6585
_exit:
×
6586
  tDecoderClear(&decoder);
×
6587
  return code;
×
6588
}
6589

6590
void tFreeSVnodeSsMigrateState(SVnodeSsMigrateState* pState) {
13,926✔
6591
  if (pState->pFileSetStates) {
13,926!
6592
    taosArrayDestroy(pState->pFileSetStates);
13,964✔
6593
    pState->pFileSetStates = NULL;
13,965✔
6594
  }
6595
}
13,927✔
6596

6597
int32_t tSerializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
217,020✔
6598
  SEncoder encoder = {0};
217,020✔
6599
  int32_t  code = 0;
217,020✔
6600
  int32_t  lino;
6601
  int32_t  tlen;
6602
  tEncoderInit(&encoder, buf, bufLen);
217,020✔
6603

6604
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
217,020!
6605
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestampSec));
434,040!
6606
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttlDropMaxCount));
434,040!
6607
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->nUids));
434,040!
6608
  for (int32_t i = 0; i < pReq->nUids; ++i) {
217,268✔
6609
    tb_uid_t *pTbUid = taosArrayGet(pReq->pTbUids, i);
248✔
6610
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, *pTbUid));
496!
6611
  }
6612
  tEndEncode(&encoder);
217,020✔
6613

6614
_exit:
217,020✔
6615
  if (code) {
217,020!
6616
    tlen = code;
×
6617
  } else {
6618
    tlen = encoder.pos;
217,020✔
6619
  }
6620
  tEncoderClear(&encoder);
217,020✔
6621
  return tlen;
217,020✔
6622
}
6623

6624
int32_t tDeserializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
201,388✔
6625
  SDecoder decoder = {0};
201,388✔
6626
  int32_t  code = 0;
201,388✔
6627
  int32_t  lino;
6628
  tDecoderInit(&decoder, buf, bufLen);
201,388✔
6629

6630
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
201,503!
6631
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestampSec));
404,480!
6632
  pReq->ttlDropMaxCount = INT32_MAX;
202,235✔
6633
  pReq->nUids = 0;
202,235✔
6634
  pReq->pTbUids = NULL;
202,235✔
6635
  if (!tDecodeIsEnd(&decoder)) {
202,235!
6636
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttlDropMaxCount));
404,482!
6637
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->nUids));
404,319!
6638

6639
    if (pReq->nUids > 0) {
202,116✔
6640
      pReq->pTbUids = taosArrayInit(pReq->nUids, sizeof(tb_uid_t));
31✔
6641
      if (pReq->pTbUids == NULL) {
31!
6642
        TAOS_CHECK_EXIT(terrno);
154!
6643
      }
6644
    }
6645

6646
    tb_uid_t tbUid = 0;
201,962✔
6647
    for (int32_t i = 0; i < pReq->nUids; ++i) {
202,086✔
6648
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &tbUid));
124!
6649
      if (taosArrayPush(pReq->pTbUids, &tbUid) == NULL) {
248!
6650
        TAOS_CHECK_EXIT(terrno);
×
6651
      }
6652
    }
6653
  }
6654
  tEndDecode(&decoder);
201,918✔
6655

6656
_exit:
201,826✔
6657
  tDecoderClear(&decoder);
201,826✔
6658
  return code;
202,094✔
6659
}
6660

6661
int32_t tSerializeSDbCfgRspImpl(SEncoder *encoder, const SDbCfgRsp *pRsp) {
312,165✔
6662
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pRsp->db));
624,330!
6663
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->dbId));
624,330!
6664
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cfgVersion));
624,330!
6665
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfVgroups));
624,330!
6666
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfStables));
624,330!
6667
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->buffer));
624,330!
6668
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cacheSize));
624,330!
6669
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pageSize));
624,330!
6670
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pages));
624,330!
6671
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysPerFile));
624,330!
6672
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep0));
624,330!
6673
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep1));
624,330!
6674
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep2));
624,330!
6675
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->minRows));
624,330!
6676
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->maxRows));
624,330!
6677
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walFsyncPeriod));
624,330!
6678
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashPrefix));
624,330!
6679
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashSuffix));
624,330!
6680
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->walLevel));
624,330!
6681
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->precision));
624,330!
6682
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compression));
624,330!
6683
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->replications));
624,330!
6684
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->strict));
624,330!
6685
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->cacheLast));
624,330!
6686
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->tsdbPageSize));
624,330!
6687
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRetentionPeriod));
624,330!
6688
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRollPeriod));
624,330!
6689
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walRetentionSize));
624,330!
6690
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walSegmentSize));
624,330!
6691
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfRetensions));
624,330!
6692
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
312,165!
6693
    SRetention *pRetension = taosArrayGet(pRsp->pRetensions, i);
×
6694
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->freq));
×
6695
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->keep));
×
6696
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->freqUnit));
×
6697
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->keepUnit));
×
6698
  }
6699
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->schemaless));
624,330!
6700
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->sstTrigger));
624,330!
6701
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->keepTimeOffset));
624,330!
6702
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->withArbitrator));
624,330!
6703
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->encryptAlgorithm));
624,330!
6704
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->ssChunkSize));
624,330!
6705
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->ssKeepLocal));
624,330!
6706
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->ssCompact));
624,330!
6707
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->hashMethod));
624,330!
6708
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactInterval));
624,330!
6709
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactStartTime));
624,330!
6710
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactEndTime));
624,330!
6711
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compactTimeOffset));
624,330!
6712
  TAOS_CHECK_RETURN(tEncodeU8(encoder, pRsp->flags));
624,330!
6713

6714
  return 0;
312,165✔
6715
}
6716

6717
int32_t tSerializeSDbCfgRsp(void *buf, int32_t bufLen, const SDbCfgRsp *pRsp) {
283,137✔
6718
  SEncoder encoder = {0};
283,137✔
6719
  int32_t  code = 0;
283,137✔
6720
  int32_t  lino;
6721
  int32_t  tlen;
6722
  tEncoderInit(&encoder, buf, bufLen);
283,137✔
6723

6724
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
283,137!
6725
  TAOS_CHECK_EXIT(tSerializeSDbCfgRspImpl(&encoder, pRsp));
283,137!
6726
  tEndEncode(&encoder);
283,137✔
6727

6728
_exit:
283,134✔
6729
  if (code) {
283,134!
6730
    tlen = code;
×
6731
  } else {
6732
    tlen = encoder.pos;
283,134✔
6733
  }
6734
  tEncoderClear(&encoder);
283,134✔
6735
  return tlen;
283,133✔
6736
}
6737

6738
int32_t tDeserializeSDbCfgRspImpl(SDecoder *decoder, SDbCfgRsp *pRsp) {
2,151✔
6739
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
2,151!
6740
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
4,302!
6741
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cfgVersion));
4,302!
6742
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfVgroups));
4,302!
6743
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfStables));
4,302!
6744
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->buffer));
4,302!
6745
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cacheSize));
4,302!
6746
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pageSize));
4,301!
6747
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pages));
4,301!
6748
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysPerFile));
4,302!
6749
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep0));
4,302!
6750
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep1));
4,302!
6751
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep2));
4,302!
6752
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->minRows));
4,302!
6753
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->maxRows));
4,302!
6754
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walFsyncPeriod));
4,302!
6755
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashPrefix));
4,302!
6756
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashSuffix));
4,302!
6757
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->walLevel));
4,302!
6758
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->precision));
4,302!
6759
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compression));
4,302!
6760
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->replications));
4,302!
6761
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->strict));
4,302!
6762
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->cacheLast));
4,302!
6763
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->tsdbPageSize));
4,302!
6764
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRetentionPeriod));
4,302!
6765
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRollPeriod));
4,302!
6766
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walRetentionSize));
4,302!
6767
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walSegmentSize));
4,302!
6768
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfRetensions));
4,302!
6769
  if (pRsp->numOfRetensions > 0) {
2,151✔
6770
    pRsp->pRetensions = taosArrayInit(pRsp->numOfRetensions, sizeof(SRetention));
2✔
6771
    if (pRsp->pRetensions == NULL) {
2!
6772
      TAOS_CHECK_RETURN(terrno);
×
6773
    }
6774
  }
6775

6776
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
2,157✔
6777
    SRetention rentension = {0};
6✔
6778
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.freq));
6!
6779
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.keep));
6!
6780
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.freqUnit));
6!
6781
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.keepUnit));
6!
6782
    if (taosArrayPush(pRsp->pRetensions, &rentension) == NULL) {
12!
6783
      TAOS_CHECK_RETURN(terrno);
×
6784
    }
6785
  }
6786
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->schemaless));
4,302!
6787
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->sstTrigger));
4,302!
6788
  if (!tDecodeIsEnd(decoder)) {
2,151!
6789
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->keepTimeOffset));
4,302!
6790
  } else {
6791
    pRsp->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
6792
  }
6793
  if (!tDecodeIsEnd(decoder)) {
2,151!
6794
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->withArbitrator));
4,302!
6795
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->encryptAlgorithm));
4,302!
6796
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->ssChunkSize));
4,302!
6797
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->ssKeepLocal));
4,302!
6798
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->ssCompact));
4,302!
6799
  } else {
6800
    pRsp->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
6801
    pRsp->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
6802
    pRsp->ssChunkSize = TSDB_DEFAULT_SS_CHUNK_SIZE;
×
6803
    pRsp->ssKeepLocal = TSDB_DEFAULT_SS_KEEP_LOCAL;
×
6804
    pRsp->ssCompact = TSDB_DEFAULT_SS_COMPACT;
×
6805
  }
6806
  if (!tDecodeIsEnd(decoder)) {
2,151!
6807
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->hashMethod));
4,302!
6808
  } else {
6809
    pRsp->hashMethod = 1;  // default value
×
6810
  }
6811
  if (!tDecodeIsEnd(decoder)) {
2,151!
6812
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactInterval));
4,302!
6813
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactStartTime));
4,302!
6814
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactEndTime));
4,302!
6815
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compactTimeOffset));
4,302!
6816
  } else {
6817
    pRsp->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
6818
    pRsp->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
6819
    pRsp->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
6820
    pRsp->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
6821
  }
6822

6823
  if (!tDecodeIsEnd(decoder)) {
2,151!
6824
    TAOS_CHECK_RETURN(tDecodeU8(decoder, &pRsp->flags));
4,302!
6825
  }
6826

6827
  return 0;
2,151✔
6828
}
6829

6830
int32_t tDeserializeSDbCfgRsp(void *buf, int32_t bufLen, SDbCfgRsp *pRsp) {
1,945✔
6831
  SDecoder decoder = {0};
1,945✔
6832
  int32_t  code = 0;
1,945✔
6833
  int32_t  lino;
6834
  tDecoderInit(&decoder, buf, bufLen);
1,945✔
6835

6836
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,946!
6837
  TAOS_CHECK_EXIT(tDeserializeSDbCfgRspImpl(&decoder, pRsp));
1,946!
6838
  tEndDecode(&decoder);
1,946✔
6839

6840
_exit:
1,946✔
6841
  tDecoderClear(&decoder);
1,946✔
6842
  return code;
1,946✔
6843
}
6844

6845
void tFreeSDbCfgRsp(SDbCfgRsp *pRsp) {
156,888✔
6846
  if (NULL == pRsp) {
156,888!
6847
    return;
×
6848
  }
6849

6850
  taosArrayDestroy(pRsp->pRetensions);
156,888✔
6851
}
6852

6853
int32_t tSerializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
2✔
6854
  SEncoder encoder = {0};
2✔
6855
  int32_t  code = 0;
2✔
6856
  int32_t  lino;
6857
  int32_t  tlen;
6858
  tEncoderInit(&encoder, buf, bufLen);
2✔
6859

6860
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
6861
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->indexFName));
4!
6862
  tEndEncode(&encoder);
2✔
6863

6864
_exit:
2✔
6865
  if (code) {
2!
6866
    tlen = code;
×
6867
  } else {
6868
    tlen = encoder.pos;
2✔
6869
  }
6870
  tEncoderClear(&encoder);
2✔
6871
  return tlen;
2✔
6872
}
6873

6874
int32_t tDeserializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
×
6875
  SDecoder decoder = {0};
×
6876
  int32_t  code = 0;
×
6877
  int32_t  lino;
6878
  tDecoderInit(&decoder, buf, bufLen);
×
6879

6880
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6881
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->indexFName));
×
6882
  tEndDecode(&decoder);
×
6883

6884
_exit:
×
6885
  tDecoderClear(&decoder);
×
6886
  return code;
×
6887
}
6888

6889
int32_t tSerializeSUserIndexRsp(void *buf, int32_t bufLen, const SUserIndexRsp *pRsp) {
×
6890
  SEncoder encoder = {0};
×
6891
  int32_t  code = 0;
×
6892
  int32_t  lino;
6893
  int32_t  tlen;
6894
  tEncoderInit(&encoder, buf, bufLen);
×
6895

6896
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6897
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
×
6898
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tblFName));
×
6899
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->colName));
×
6900
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexType));
×
6901
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexExts));
×
6902
  tEndEncode(&encoder);
×
6903

6904
_exit:
×
6905
  if (code) {
×
6906
    tlen = code;
×
6907
  } else {
6908
    tlen = encoder.pos;
×
6909
  }
6910
  tEncoderClear(&encoder);
×
6911
  return tlen;
×
6912
}
6913

6914
int32_t tDeserializeSUserIndexRsp(void *buf, int32_t bufLen, SUserIndexRsp *pRsp) {
×
6915
  SDecoder decoder = {0};
×
6916
  int32_t  code = 0;
×
6917
  int32_t  lino;
6918
  tDecoderInit(&decoder, buf, bufLen);
×
6919

6920
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6921
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
×
6922
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tblFName));
×
6923
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->colName));
×
6924
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexType));
×
6925
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexExts));
×
6926
  tEndDecode(&decoder);
×
6927

6928
_exit:
×
6929
  tDecoderClear(&decoder);
×
6930
  return code;
×
6931
}
6932

6933
int32_t tSerializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
2✔
6934
  SEncoder encoder = {0};
2✔
6935
  int32_t  code = 0;
2✔
6936
  int32_t  lino;
6937
  int32_t  tlen;
6938
  tEncoderInit(&encoder, buf, bufLen);
2✔
6939

6940
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
6941
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbFName));
4!
6942
  tEndEncode(&encoder);
2✔
6943

6944
_exit:
2✔
6945
  if (code) {
2!
6946
    tlen = code;
×
6947
  } else {
6948
    tlen = encoder.pos;
2✔
6949
  }
6950
  tEncoderClear(&encoder);
2✔
6951
  return tlen;
2✔
6952
}
6953

6954
int32_t tDeserializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
×
6955
  SDecoder decoder = {0};
×
6956
  int32_t  code = 0;
×
6957
  int32_t  lino;
6958
  tDecoderInit(&decoder, buf, bufLen);
×
6959

6960
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6961
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbFName));
×
6962
  tEndDecode(&decoder);
×
6963

6964
_exit:
×
6965
  tDecoderClear(&decoder);
×
6966
  return code;
×
6967
}
6968

6969
int32_t tSerializeSTableIndexInfo(SEncoder *pEncoder, STableIndexInfo *pInfo) {
6✔
6970
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->intervalUnit));
12!
6971
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->slidingUnit));
12!
6972
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->interval));
12!
6973
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->offset));
12!
6974
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->sliding));
12!
6975
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->dstTbUid));
12!
6976
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pInfo->dstVgId));
12!
6977
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pInfo->epSet));
6!
6978
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->expr));
12!
6979
  return 0;
6✔
6980
}
6981

6982
int32_t tSerializeSTableIndexRsp(void *buf, int32_t bufLen, const STableIndexRsp *pRsp) {
2✔
6983
  SEncoder encoder = {0};
2✔
6984
  int32_t  code = 0;
2✔
6985
  int32_t  lino;
6986
  int32_t  tlen;
6987
  tEncoderInit(&encoder, buf, bufLen);
2✔
6988

6989
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
6990
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
4!
6991
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
4!
6992
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pRsp->suid));
4!
6993
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->version));
4!
6994
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->indexSize));
4!
6995
  int32_t num = taosArrayGetSize(pRsp->pIndex);
2✔
6996
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
2!
6997
  if (num > 0) {
2!
6998
    for (int32_t i = 0; i < num; ++i) {
8✔
6999
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pRsp->pIndex, i);
6✔
7000
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
6!
7001
    }
7002
  }
7003
  tEndEncode(&encoder);
2✔
7004

7005
_exit:
2✔
7006
  if (code) {
2!
7007
    tlen = code;
×
7008
  } else {
7009
    tlen = encoder.pos;
2✔
7010
  }
7011
  tEncoderClear(&encoder);
2✔
7012
  return tlen;
2✔
7013
}
7014

7015
void tFreeSerializeSTableIndexRsp(STableIndexRsp *pRsp) {
×
7016
  if (pRsp->pIndex != NULL) {
×
7017
    tFreeSTableIndexRsp(pRsp);
×
7018
    pRsp->pIndex = NULL;
×
7019
  }
7020
}
×
7021

7022
int32_t tDeserializeSTableIndexInfo(SDecoder *pDecoder, STableIndexInfo *pInfo) {
3✔
7023
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->intervalUnit));
6!
7024
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->slidingUnit));
6!
7025
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->interval));
6!
7026
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->offset));
6!
7027
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->sliding));
6!
7028
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->dstTbUid));
6!
7029
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pInfo->dstVgId));
6!
7030
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pInfo->epSet));
3!
7031
  TAOS_CHECK_RETURN(tDecodeCStrAlloc(pDecoder, &pInfo->expr));
6!
7032
  return 0;
3✔
7033
}
7034

7035
int32_t tDeserializeSTableIndexRsp(void *buf, int32_t bufLen, STableIndexRsp *pRsp) {
1✔
7036
  SDecoder decoder = {0};
1✔
7037
  int32_t  code = 0;
1✔
7038
  int32_t  lino;
7039
  tDecoderInit(&decoder, buf, bufLen);
1✔
7040

7041
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
7042
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
1!
7043
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
1!
7044
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->suid));
2!
7045
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->version));
2!
7046
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->indexSize));
2!
7047
  int32_t num = 0;
1✔
7048
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1!
7049
  if (num > 0) {
1!
7050
    pRsp->pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
1✔
7051
    if (NULL == pRsp->pIndex) {
1!
7052
      TAOS_CHECK_EXIT(terrno);
×
7053
    }
7054
    STableIndexInfo info;
7055
    for (int32_t i = 0; i < num; ++i) {
4✔
7056
      TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
3!
7057
      if (NULL == taosArrayPush(pRsp->pIndex, &info)) {
6!
7058
        taosMemoryFree(info.expr);
×
7059
        TAOS_CHECK_EXIT(terrno);
×
7060
      }
7061
    }
7062
  }
7063
  tEndDecode(&decoder);
1✔
7064

7065
_exit:
1✔
7066
  tDecoderClear(&decoder);
1✔
7067
  return code;
1✔
7068
}
7069

7070
void tFreeSTableIndexInfo(void *info) {
9✔
7071
  if (NULL == info) {
9!
7072
    return;
×
7073
  }
7074

7075
  STableIndexInfo *pInfo = (STableIndexInfo *)info;
9✔
7076

7077
  taosMemoryFree(pInfo->expr);
9!
7078
}
7079

7080
int32_t tSerializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
234✔
7081
  SEncoder encoder = {0};
234✔
7082
  int32_t  code = 0;
234✔
7083
  int32_t  lino;
7084
  int32_t  tlen;
7085
  tEncoderInit(&encoder, buf, bufLen);
234✔
7086

7087
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
234!
7088
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->opType));
468!
7089
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->valLen));
468!
7090
  if (pReq->valLen > 0) {
234!
7091
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->val, pReq->valLen));
×
7092
  }
7093
  tEndEncode(&encoder);
234✔
7094

7095
_exit:
234✔
7096
  if (code) {
234!
7097
    tlen = code;
×
7098
  } else {
7099
    tlen = encoder.pos;
234✔
7100
  }
7101
  tEncoderClear(&encoder);
234✔
7102
  return tlen;
234✔
7103
}
7104

7105
int32_t tDeserializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
151✔
7106
  SDecoder decoder = {0};
151✔
7107
  int32_t  code = 0;
151✔
7108
  int32_t  lino;
7109
  tDecoderInit(&decoder, buf, bufLen);
151✔
7110

7111
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
151!
7112
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->opType));
302!
7113
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->valLen));
302!
7114

7115
  if (pReq->valLen > 0) {
151✔
7116
    pReq->val = taosMemoryCalloc(1, pReq->valLen + 1);
21!
7117
    if (pReq->val == NULL) {
21!
7118
      TAOS_CHECK_EXIT(terrno);
×
7119
    }
7120
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->val));
21!
7121
  }
7122

7123
  tEndDecode(&decoder);
151✔
7124
_exit:
151✔
7125
  tDecoderClear(&decoder);
151✔
7126
  return code;
151✔
7127
}
7128

7129
void tFreeSShowVariablesReq(SShowVariablesReq *pReq) {
268✔
7130
  if (NULL != pReq && NULL != pReq->val) {
268!
7131
    taosMemoryFree(pReq->val);
21!
7132
    pReq->val = NULL;
21✔
7133
  }
7134
}
268✔
7135

7136
int32_t tEncodeSVariablesInfo(SEncoder *pEncoder, SVariablesInfo *pInfo) {
21,686✔
7137
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->name));
43,372!
7138
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->value));
43,372!
7139
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->scope));
43,372!
7140
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->category));
43,372!
7141
  return 0;
21,686✔
7142
}
7143

7144
int32_t tDecodeSVariablesInfo(SDecoder *pDecoder, SVariablesInfo *pInfo) {
9,379✔
7145
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->name));
9,379!
7146
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->value));
9,379!
7147
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->scope));
9,379!
7148
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->category));
9,379!
7149
  return 0;
9,379✔
7150
}
7151

7152
int32_t tSerializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
302✔
7153
  SEncoder encoder = {0};
302✔
7154
  int32_t  code = 0;
302✔
7155
  int32_t  lino;
7156
  int32_t  tlen;
7157
  tEncoderInit(&encoder, buf, bufLen);
302✔
7158

7159
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
302!
7160
  int32_t varNum = taosArrayGetSize(pRsp->variables);
302✔
7161
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, varNum));
302!
7162
  for (int32_t i = 0; i < varNum; ++i) {
21,988✔
7163
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
21,686✔
7164
    TAOS_CHECK_EXIT(tEncodeSVariablesInfo(&encoder, pInfo));
21,686!
7165
  }
7166

7167
  for (int32_t i = 0; i < varNum; ++i) {
21,988✔
7168
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
21,686✔
7169
    TAOS_CHECK_RETURN(tEncodeCStr(&encoder, pInfo->info));
43,372!
7170
  }
7171

7172
  tEndEncode(&encoder);
302✔
7173

7174
_exit:
302✔
7175
  if (code) {
302!
7176
    tlen = code;
×
7177
  } else {
7178
    tlen = encoder.pos;
302✔
7179
  }
7180
  tEncoderClear(&encoder);
302✔
7181
  return tlen;
302✔
7182
}
7183

7184
int32_t tDeserializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
113✔
7185
  SDecoder decoder = {0};
113✔
7186
  int32_t  code = 0;
113✔
7187
  int32_t  lino;
7188
  tDecoderInit(&decoder, buf, bufLen);
113✔
7189

7190
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
113!
7191
  int32_t varNum = 0;
113✔
7192
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &varNum));
113!
7193
  if (varNum > 0) {
113!
7194
    pRsp->variables = taosArrayInit(varNum, sizeof(SVariablesInfo));
113✔
7195
    if (NULL == pRsp->variables) {
113!
7196
      TAOS_CHECK_EXIT(terrno);
×
7197
    }
7198
    for (int32_t i = 0; i < varNum; ++i) {
9,492✔
7199
      SVariablesInfo info = {0};
9,379✔
7200
      TAOS_CHECK_EXIT(tDecodeSVariablesInfo(&decoder, &info));
9,379!
7201
      if (NULL == taosArrayPush(pRsp->variables, &info)) {
18,758!
7202
        TAOS_CHECK_EXIT(terrno);
×
7203
      }
7204
    }
7205

7206
    if (!tDecodeIsEnd(&decoder)) {
113!
7207
      for (int32_t i = 0; i < varNum; ++i) {
9,492✔
7208
        SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
9,379✔
7209
        TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pInfo->info));
9,379!
7210
      }
7211
    }
7212
  }
7213

7214
  tEndDecode(&decoder);
113✔
7215
_exit:
113✔
7216
  tDecoderClear(&decoder);
113✔
7217
  return code;
113✔
7218
}
7219

7220
void tFreeSShowVariablesRsp(SShowVariablesRsp *pRsp) {
264✔
7221
  if (NULL == pRsp) {
264!
7222
    return;
×
7223
  }
7224

7225
  taosArrayDestroy(pRsp->variables);
264✔
7226
}
7227

7228
int32_t tSerializeSShowReq(void *buf, int32_t bufLen, SShowReq *pReq) {
4✔
7229
  SEncoder encoder = {0};
4✔
7230
  int32_t  code = 0;
4✔
7231
  int32_t  lino;
7232
  int32_t  tlen;
7233
  tEncoderInit(&encoder, buf, bufLen);
4✔
7234

7235
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
7236
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
8!
7237
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
8!
7238
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->payloadLen));
8!
7239
  if (pReq->payloadLen > 0) {
4!
7240
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->payload, pReq->payloadLen));
×
7241
  }
7242
  tEndEncode(&encoder);
4✔
7243

7244
_exit:
4✔
7245
  if (code) {
4!
7246
    tlen = code;
×
7247
  } else {
7248
    tlen = encoder.pos;
4✔
7249
  }
7250
  tEncoderClear(&encoder);
4✔
7251
  return tlen;
4✔
7252
}
7253

7254
void tFreeSShowReq(SShowReq *pReq) { taosMemoryFreeClear(pReq->payload); }
2!
7255

7256
int32_t tSerializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
906,089✔
7257
  SEncoder encoder = {0};
906,089✔
7258
  int32_t  code = 0;
906,089✔
7259
  int32_t  lino;
7260
  int32_t  tlen;
7261
  tEncoderInit(&encoder, buf, bufLen);
906,089✔
7262

7263
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
906,391!
7264
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->showId));
1,813,842!
7265
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
1,813,842!
7266
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tb));
1,813,842!
7267
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->filterTb));
1,813,842!
7268
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
1,813,842!
7269
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactId));
1,813,842!
7270
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withFull));
1,813,842!
7271
  tEndEncode(&encoder);
906,921✔
7272

7273
_exit:
906,298✔
7274
  if (code) {
906,298!
7275
    tlen = code;
×
7276
  } else {
7277
    tlen = encoder.pos;
906,298✔
7278
  }
7279
  tEncoderClear(&encoder);
906,298✔
7280
  return tlen;
905,813✔
7281
}
7282

7283
int32_t tDeserializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
454,199✔
7284
  SDecoder decoder = {0};
454,199✔
7285
  int32_t  code = 0;
454,199✔
7286
  int32_t  lino;
7287

7288
  tDecoderInit(&decoder, buf, bufLen);
454,199✔
7289

7290
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
454,194!
7291
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->showId));
908,707!
7292
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
454,347!
7293
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tb));
454,306!
7294
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->filterTb));
454,317✔
7295
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
454,319!
7296
  if (!tDecodeIsEnd(&decoder)) {
454,209!
7297
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactId));
908,643!
7298
  } else {
7299
    pReq->compactId = -1;
×
7300
  }
7301
  if (!tDecodeIsEnd(&decoder)) {
454,198!
7302
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->withFull));
908,560!
7303
  }
7304
  tEndDecode(&decoder);
454,154✔
7305
_exit:
454,077✔
7306
  tDecoderClear(&decoder);
454,077✔
7307
  return code;
454,251✔
7308
}
7309

7310
static int32_t tEncodeSTableMetaRsp(SEncoder *pEncoder, STableMetaRsp *pRsp) {
16,150,488✔
7311
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->tbName));
32,300,976!
7312
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->stbName));
32,300,976!
7313
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->dbFName));
32,300,976!
7314
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
32,300,976!
7315
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfTags));
32,300,976!
7316
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColumns));
32,300,976!
7317
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->precision));
32,300,976!
7318
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->tableType));
32,300,976!
7319
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->sversion));
32,300,976!
7320
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->tversion));
32,300,976!
7321
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->suid));
32,300,976!
7322
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->tuid));
32,300,976!
7323
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgId));
32,300,976!
7324
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
622,872,162✔
7325
    SSchema *pSchema = &pRsp->pSchemas[i];
606,721,674✔
7326
    TAOS_CHECK_RETURN(tEncodeSSchema(pEncoder, pSchema));
606,721,674!
7327
  }
7328

7329
  if (withExtSchema(pRsp->tableType)) {
16,150,488✔
7330
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
396,285,524✔
7331
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
381,215,836✔
7332
      TAOS_CHECK_RETURN(tEncodeSSchemaExt(pEncoder, pSchemaExt));
381,215,836!
7333
    }
7334
  }
7335

7336
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->virtualStb));
32,304,224!
7337
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColRefs));
32,304,224!
7338
  if (hasRefCol(pRsp->tableType)) {
16,152,112✔
7339
    for (int32_t i = 0; i < pRsp->numOfColRefs; ++i) {
17,028✔
7340
      SColRef *pColRef = &pRsp->pColRefs[i];
15,418✔
7341
      TAOS_CHECK_RETURN(tEncodeSColRef(pEncoder, pColRef));
15,418!
7342
    }
7343
  }
7344
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->rversion));
32,303,190!
7345

7346
  return 0;
16,151,595✔
7347
}
7348

7349
static int32_t tDecodeSTableMetaRsp(SDecoder *pDecoder, STableMetaRsp *pRsp) {
159,790✔
7350
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->tbName));
159,790!
7351
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->stbName));
159,819!
7352
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->dbFName));
159,825!
7353
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->dbId));
319,633!
7354
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfTags));
319,600!
7355
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColumns));
319,563!
7356
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->precision));
319,545!
7357
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->tableType));
319,546!
7358
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->sversion));
319,528!
7359
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->tversion));
319,509!
7360
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->suid));
319,503!
7361
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->tuid));
319,511!
7362
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgId));
319,538!
7363

7364
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
159,780✔
7365
  if (totalCols > 0) {
159,780✔
7366
    pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
79,893!
7367
    if (pRsp->pSchemas == NULL) {
79,897!
7368
      TAOS_CHECK_RETURN(terrno);
×
7369
    }
7370

7371
    for (int32_t i = 0; i < totalCols; ++i) {
836,856✔
7372
      SSchema *pSchema = &pRsp->pSchemas[i];
756,967✔
7373
      TAOS_CHECK_RETURN(tDecodeSSchema(pDecoder, pSchema));
756,959!
7374
    }
7375
  } else {
7376
    pRsp->pSchemas = NULL;
79,887✔
7377
  }
7378

7379
  if (!tDecodeIsEnd(pDecoder)) {
159,776✔
7380
    if (withExtSchema(pRsp->tableType) && pRsp->numOfColumns > 0) {
159,751✔
7381
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
77,914!
7382
      if (pRsp->pSchemaExt == NULL) {
77,913!
7383
        TAOS_CHECK_RETURN(terrno);
×
7384
      }
7385

7386
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
600,223✔
7387
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
522,332✔
7388
        TAOS_CHECK_RETURN(tDecodeSSchemaExt(pDecoder, pSchemaExt));
522,310!
7389
      }
7390
    } else {
7391
      pRsp->pSchemaExt = NULL;
81,851✔
7392
    }
7393
  }
7394
  if (!tDecodeIsEnd(pDecoder)) {
159,767✔
7395
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->virtualStb));
319,518!
7396
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColRefs));
319,505!
7397
    if (hasRefCol(pRsp->tableType) && pRsp->numOfColRefs > 0) {
159,744!
7398
      pRsp->pColRefs = taosMemoryMalloc(sizeof(SColRef) * pRsp->numOfColRefs);
61!
7399
      if (pRsp->pColRefs == NULL) {
61!
7400
        TAOS_CHECK_RETURN(terrno);
×
7401
      }
7402

7403
      for (int32_t i = 0; i < pRsp->numOfColRefs; ++i) {
1,025✔
7404
        SColRef *pColRef = &pRsp->pColRefs[i];
964✔
7405
        TAOS_CHECK_RETURN(tDecodeSColRef(pDecoder, pColRef));
964!
7406
      }
7407
    } else {
7408
      pRsp->pColRefs = NULL;
159,674✔
7409
    }
7410
  }
7411
  if (!tDecodeIsEnd(pDecoder)) {
159,745✔
7412
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->rversion));
319,472!
7413
  }
7414

7415
  return 0;
159,759✔
7416
}
7417

7418
int32_t tSerializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
15,686,398✔
7419
  SEncoder encoder = {0};
15,686,398✔
7420
  int32_t  code = 0;
15,686,398✔
7421
  int32_t  lino;
7422
  int32_t  tlen;
7423
  tEncoderInit(&encoder, buf, bufLen);
15,686,398✔
7424

7425
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
15,687,560!
7426
  TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pRsp));
15,690,517!
7427
  tEndEncode(&encoder);
15,688,600✔
7428

7429
_exit:
15,688,182✔
7430
  if (code) {
15,688,182!
7431
    tlen = code;
×
7432
  } else {
7433
    tlen = encoder.pos;
15,688,182✔
7434
  }
7435
  tEncoderClear(&encoder);
15,688,182✔
7436
  return tlen;
15,687,906✔
7437
}
7438

7439
int32_t tSerializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
100,863✔
7440
  SEncoder encoder = {0};
100,863✔
7441
  int32_t  code = 0;
100,863✔
7442
  int32_t  lino;
7443
  int32_t  tlen;
7444

7445
  tEncoderInit(&encoder, buf, bufLen);
100,863✔
7446

7447
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
100,863!
7448

7449
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
100,863✔
7450
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
100,863!
7451
  for (int32_t i = 0; i < numOfMeta; ++i) {
102,473✔
7452
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
1,610✔
7453
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pMetaRsp));
1,610!
7454
  }
7455

7456
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
100,863✔
7457
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfIndex));
100,863!
7458
  for (int32_t i = 0; i < numOfIndex; ++i) {
100,863!
7459
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
7460
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->tbName));
×
7461
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->dbFName));
×
7462
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, pIndexRsp->suid));
×
7463
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->version));
×
7464
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->indexSize));
×
7465
    int32_t num = taosArrayGetSize(pIndexRsp->pIndex);
×
7466
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
7467
    for (int32_t j = 0; j < num; ++j) {
×
7468
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pIndexRsp->pIndex, j);
×
7469
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
×
7470
    }
7471
  }
7472

7473
  tEndEncode(&encoder);
100,863✔
7474

7475
_exit:
100,864✔
7476
  if (code) {
100,864!
7477
    tlen = code;
×
7478
  } else {
7479
    tlen = encoder.pos;
100,864✔
7480
  }
7481
  tEncoderClear(&encoder);
100,864✔
7482
  return tlen;
100,863✔
7483
}
7484

7485
int32_t tDeserializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
75,681✔
7486
  SDecoder decoder = {0};
75,681✔
7487
  int32_t  code = 0;
75,681✔
7488
  int32_t  lino;
7489

7490
  tDecoderInit(&decoder, buf, bufLen);
75,681✔
7491

7492
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
75,680!
7493
  TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, pRsp));
75,690!
7494

7495
  tEndDecode(&decoder);
75,683✔
7496
_exit:
75,683✔
7497
  tDecoderClear(&decoder);
75,683✔
7498
  return code;
75,681✔
7499
}
7500

7501
int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
1,445✔
7502
  SDecoder decoder = {0};
1,445✔
7503
  int32_t  code = 0;
1,445✔
7504
  int32_t  lino;
7505

7506
  tDecoderInit(&decoder, buf, bufLen);
1,445✔
7507

7508
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,445!
7509

7510
  int32_t numOfMeta = 0;
1,445✔
7511
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
1,445!
7512
  pRsp->pMetaRsp = taosArrayInit(numOfMeta, sizeof(STableMetaRsp));
1,445✔
7513
  if (pRsp->pMetaRsp == NULL) {
1,445!
7514
    TAOS_CHECK_EXIT(terrno);
×
7515
  }
7516

7517
  for (int32_t i = 0; i < numOfMeta; ++i) {
1,456✔
7518
    STableMetaRsp tableMetaRsp = {0};
11✔
7519
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, &tableMetaRsp));
11!
7520
    if (taosArrayPush(pRsp->pMetaRsp, &tableMetaRsp) == NULL) {
22!
7521
      taosMemoryFree(tableMetaRsp.pSchemas);
×
7522
      taosMemoryFree(tableMetaRsp.pSchemaExt);
×
7523
      taosMemoryFree(tableMetaRsp.pColRefs);
×
7524
      TAOS_CHECK_EXIT(terrno);
×
7525
    }
7526
  }
7527

7528
  int32_t numOfIndex = 0;
1,445✔
7529
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfIndex));
1,445!
7530

7531
  pRsp->pIndexRsp = taosArrayInit(numOfIndex, sizeof(STableIndexRsp));
1,445✔
7532
  if (pRsp->pIndexRsp == NULL) {
1,445!
7533
    TAOS_CHECK_EXIT(terrno);
×
7534
  }
7535

7536
  for (int32_t i = 0; i < numOfIndex; ++i) {
1,445!
7537
    STableIndexRsp tableIndexRsp = {0};
×
7538
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.tbName));
×
7539
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.dbFName));
×
7540
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &tableIndexRsp.suid));
×
7541
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.version));
×
7542
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.indexSize));
×
7543
    int32_t num = 0;
×
7544
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
7545
    if (num > 0) {
×
7546
      tableIndexRsp.pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
×
7547
      if (NULL == tableIndexRsp.pIndex) {
×
7548
        TAOS_CHECK_EXIT(terrno);
×
7549
      }
7550
      STableIndexInfo info;
7551
      for (int32_t j = 0; j < num; ++j) {
×
7552
        TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
×
7553
        if (NULL == taosArrayPush(tableIndexRsp.pIndex, &info)) {
×
7554
          taosMemoryFree(info.expr);
×
7555
          TAOS_CHECK_EXIT(terrno);
×
7556
        }
7557
      }
7558
    }
7559
    if (taosArrayPush(pRsp->pIndexRsp, &tableIndexRsp) == NULL) {
×
7560
      taosArrayDestroyEx(tableIndexRsp.pIndex, tFreeSTableIndexInfo);
×
7561
      TAOS_CHECK_EXIT(terrno);
×
7562
    }
7563
  }
7564

7565
  tEndDecode(&decoder);
1,445✔
7566

7567
_exit:
1,445✔
7568
  tDecoderClear(&decoder);
1,445✔
7569
  return code;
1,445✔
7570
}
7571

7572
void tFreeSTableMetaRsp(void *pRsp) {
4,273,001✔
7573
  if (NULL == pRsp) {
4,273,001!
7574
    return;
×
7575
  }
7576

7577
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemas);
4,273,001!
7578
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemaExt);
4,272,954!
7579
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pColRefs);
4,272,956!
7580
}
7581

7582
void tFreeSTableIndexRsp(void *info) {
1✔
7583
  if (NULL == info) {
1!
7584
    return;
×
7585
  }
7586

7587
  STableIndexRsp *pInfo = (STableIndexRsp *)info;
1✔
7588

7589
  taosArrayDestroyEx(pInfo->pIndex, tFreeSTableIndexInfo);
1✔
7590
}
7591

7592
void tFreeSSTbHbRsp(SSTbHbRsp *pRsp) {
51,876✔
7593
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
51,876✔
7594
  for (int32_t i = 0; i < numOfMeta; ++i) {
52,693✔
7595
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
816✔
7596
    tFreeSTableMetaRsp(pMetaRsp);
816✔
7597
  }
7598

7599
  taosArrayDestroy(pRsp->pMetaRsp);
51,877✔
7600

7601
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
51,877✔
7602
  for (int32_t i = 0; i < numOfIndex; ++i) {
51,877!
7603
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
7604
    tFreeSTableIndexRsp(pIndexRsp);
×
7605
  }
7606

7607
  taosArrayDestroy(pRsp->pIndexRsp);
51,877✔
7608
}
51,877✔
7609

7610
int32_t tSerializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
163,096✔
7611
  int32_t headLen = sizeof(SMsgHead);
163,096✔
7612
  int32_t code = 0;
163,096✔
7613
  int32_t lino;
7614
  if (buf != NULL) {
163,096✔
7615
    buf = (char *)buf + headLen;
81,575✔
7616
    bufLen -= headLen;
81,575✔
7617
  }
7618

7619
  SEncoder encoder = {0};
163,096✔
7620
  tEncoderInit(&encoder, buf, bufLen);
163,096✔
7621

7622
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
163,129!
7623
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
326,286!
7624
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
326,286!
7625
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->option));
326,286!
7626
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->autoCreateCtb));
326,286!
7627
  tEndEncode(&encoder);
163,143✔
7628

7629
_exit:
163,124✔
7630
  if (code) {
163,124!
7631
    tEncoderClear(&encoder);
×
7632
    return code;
×
7633
  } else {
7634
    int32_t tlen = encoder.pos;
163,124✔
7635
    tEncoderClear(&encoder);
163,124✔
7636

7637
    if (buf != NULL) {
163,127✔
7638
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
81,576✔
7639
      pHead->vgId = htonl(pReq->header.vgId);
81,576✔
7640
      pHead->contLen = htonl(tlen + headLen);
81,576✔
7641
    }
7642

7643
    return tlen + headLen;
163,127✔
7644
  }
7645
}
7646

7647
int32_t tDeserializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
7,903,376✔
7648
  int32_t   headLen = sizeof(SMsgHead);
7,903,376✔
7649
  int32_t   code = 0;
7,903,376✔
7650
  int32_t   lino;
7651
  SMsgHead *pHead = buf;
7,903,376✔
7652
  pHead->vgId = pReq->header.vgId;
7,903,376✔
7653
  pHead->contLen = pReq->header.contLen;
7,903,376✔
7654

7655
  SDecoder decoder = {0};
7,903,376✔
7656
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
7,903,376✔
7657

7658
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,903,903!
7659
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
7,904,750!
7660
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
7,903,975!
7661
  if (!tDecodeIsEnd(&decoder)) {
7,904,190✔
7662
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->option));
15,807,160!
7663
  } else {
7664
    pReq->option = 0;
606✔
7665
  }
7666
  if (!tDecodeIsEnd(&decoder)) {
7,904,182✔
7667
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->autoCreateCtb));
15,807,142!
7668
  } else {
7669
    pReq->autoCreateCtb = 0;
439✔
7670
  }
7671

7672
  tEndDecode(&decoder);
7,903,838✔
7673
_exit:
7,903,198✔
7674
  tDecoderClear(&decoder);
7,903,198✔
7675
  return code;
7,904,922✔
7676
}
7677

7678
int32_t tSerializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
146✔
7679
  SEncoder encoder = {0};
146✔
7680
  int32_t  code = 0;
146✔
7681
  int32_t  lino;
7682
  int32_t  tlen;
7683
  tEncoderInit(&encoder, buf, bufLen);
146✔
7684

7685
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
146!
7686
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
292!
7687
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
292!
7688
  ENCODESQL();
438!
7689
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
292!
7690

7691
  tEndEncode(&encoder);
146✔
7692

7693
_exit:
146✔
7694
  if (code) {
146!
7695
    tlen = code;
×
7696
  } else {
7697
    tlen = encoder.pos;
146✔
7698
  }
7699
  tEncoderClear(&encoder);
146✔
7700
  return tlen;
146✔
7701
}
7702

7703
int32_t tDeserializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
340✔
7704
  SDecoder decoder = {0};
340✔
7705
  int32_t  code = 0;
340✔
7706
  int32_t  lino;
7707

7708
  tDecoderInit(&decoder, buf, bufLen);
340✔
7709

7710
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
340!
7711
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
340!
7712
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
680!
7713
  DECODESQL();
1,020!
7714
  if (!tDecodeIsEnd(&decoder)) {
340!
7715
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
680!
7716
  }
7717
  tEndDecode(&decoder);
340✔
7718

7719
_exit:
340✔
7720
  tDecoderClear(&decoder);
340✔
7721
  return code;
340✔
7722
}
7723

7724
void tFreeSMDropTopicReq(SMDropTopicReq *pReq) { FREESQL(); }
413!
7725

7726
int32_t tSerializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
18✔
7727
  SEncoder encoder = {0};
18✔
7728
  int32_t  code = 0;
18✔
7729
  int32_t  lino;
7730
  int32_t  tlen;
7731
  tEncoderInit(&encoder, buf, bufLen);
18✔
7732

7733
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
18!
7734
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->topic));
36!
7735
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
36!
7736
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
36!
7737
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
36!
7738
  tEndEncode(&encoder);
18✔
7739

7740
_exit:
18✔
7741
  if (code) {
18!
7742
    tlen = code;
×
7743
  } else {
7744
    tlen = encoder.pos;
18✔
7745
  }
7746
  tEncoderClear(&encoder);
18✔
7747
  return tlen;
18✔
7748
}
7749

7750
int32_t tDeserializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
5✔
7751
  SDecoder decoder = {0};
5✔
7752
  int32_t  code = 0;
5✔
7753
  int32_t  lino;
7754
  tDecoderInit(&decoder, buf, bufLen);
5✔
7755

7756
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5!
7757
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->topic));
5!
7758
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
5!
7759
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
10!
7760
  if (!tDecodeIsEnd(&decoder)) {
5!
7761
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
10!
7762
  }
7763
  tEndDecode(&decoder);
5✔
7764

7765
_exit:
5✔
7766
  tDecoderClear(&decoder);
5✔
7767
  return code;
5✔
7768
}
7769

7770
int32_t tSerializeSCMCreateTopicReq(void *buf, int32_t bufLen, const SCMCreateTopicReq *pReq) {
414✔
7771
  SEncoder encoder = {0};
414✔
7772
  int32_t  code = 0;
414✔
7773
  int32_t  lino;
7774
  int32_t  tlen;
7775
  tEncoderInit(&encoder, buf, bufLen);
414✔
7776

7777
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
414!
7778
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
828!
7779
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
828!
7780
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->subType));
828!
7781
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withMeta));
828!
7782
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subDbName));
828!
7783
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
414✔
7784
  } else {
7785
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
344✔
7786
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subStbName));
104!
7787
    }
7788
    if (pReq->ast && strlen(pReq->ast) > 0) {
344!
7789
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->ast)));
640!
7790
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
640!
7791
    } else {
7792
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
24!
7793
    }
7794
  }
7795
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->sql)));
828!
7796
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
828!
7797

7798
  tEndEncode(&encoder);
414✔
7799

7800
_exit:
414✔
7801
  if (code) {
414!
7802
    tlen = code;
×
7803
  } else {
7804
    tlen = encoder.pos;
414✔
7805
  }
7806
  tEncoderClear(&encoder);
414✔
7807
  return tlen;
414✔
7808
}
7809

7810
int32_t tDeserializeSCMCreateTopicReq(void *buf, int32_t bufLen, SCMCreateTopicReq *pReq) {
531✔
7811
  int32_t  sqlLen = 0;
531✔
7812
  int32_t  astLen = 0;
531✔
7813
  int32_t  code = 0;
531✔
7814
  int32_t  lino;
7815
  SDecoder decoder = {0};
531✔
7816
  tDecoderInit(&decoder, buf, bufLen);
531✔
7817

7818
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
531!
7819
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
531!
7820
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
1,062!
7821
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->subType));
1,062!
7822
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withMeta));
1,062!
7823
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subDbName));
531!
7824
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
531✔
7825
  } else {
7826
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
461✔
7827
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subStbName));
40!
7828
    }
7829
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
461!
7830
    if (astLen > 0) {
461✔
7831
      pReq->ast = taosMemoryCalloc(1, astLen + 1);
443!
7832
      if (pReq->ast == NULL) {
443!
7833
        TAOS_CHECK_EXIT(terrno);
×
7834
      }
7835
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
443!
7836
    }
7837
  }
7838
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
531!
7839
  if (sqlLen > 0) {
531!
7840
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
531!
7841
    if (pReq->sql == NULL) {
531!
7842
      TAOS_CHECK_EXIT(terrno);
×
7843
    }
7844
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
531!
7845
  }
7846

7847
  tEndDecode(&decoder);
531✔
7848

7849
_exit:
531✔
7850
  tDecoderClear(&decoder);
531✔
7851
  return code;
531✔
7852
}
7853

7854
void tFreeSCMCreateTopicReq(SCMCreateTopicReq *pReq) {
751✔
7855
  taosMemoryFreeClear(pReq->sql);
751!
7856
  if (TOPIC_SUB_TYPE__DB != pReq->subType) {
751✔
7857
    taosMemoryFreeClear(pReq->ast);
646!
7858
  }
7859
}
751✔
7860

7861
int32_t tSerializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
25,262✔
7862
  SEncoder encoder = {0};
25,262✔
7863
  int32_t  code = 0;
25,262✔
7864
  int32_t  lino;
7865
  int32_t  tlen;
7866
  tEncoderInit(&encoder, buf, bufLen);
25,262✔
7867

7868
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
25,342!
7869
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->connType));
50,712!
7870
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pid));
50,712!
7871
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->app));
50,712!
7872
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
50,712!
7873
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
50,712!
7874
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->passwd, TSDB_PASSWORD_LEN));
50,712!
7875
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->startTime));
50,712!
7876
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sVer));
50,712!
7877
  tEndEncode(&encoder);
25,356✔
7878

7879
_exit:
25,347✔
7880
  if (code) {
25,347!
7881
    tlen = code;
×
7882
  } else {
7883
    tlen = encoder.pos;
25,347✔
7884
  }
7885
  tEncoderClear(&encoder);
25,347✔
7886
  return tlen;
25,327✔
7887
}
7888

7889
int32_t tDeserializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
170,620✔
7890
  SDecoder decoder = {0};
170,620✔
7891
  int32_t  code = 0;
170,620✔
7892
  int32_t  lino;
7893
  tDecoderInit(&decoder, buf, bufLen);
170,620✔
7894

7895
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
170,614!
7896
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->connType));
341,234!
7897
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pid));
341,238!
7898
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->app));
170,619!
7899
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
170,616!
7900
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
170,614!
7901
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->passwd));
170,611!
7902
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->startTime));
341,235!
7903
  // Check the client version from version 3.0.3.0
7904
  if (tDecodeIsEnd(&decoder)) {
170,617!
7905
    tDecoderClear(&decoder);
×
7906
    TAOS_CHECK_EXIT(TSDB_CODE_VERSION_NOT_COMPATIBLE);
×
7907
  }
7908
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sVer));
170,617!
7909
  tEndDecode(&decoder);
170,612✔
7910

7911
_exit:
170,608✔
7912
  tDecoderClear(&decoder);
170,608✔
7913
  return code;
170,614✔
7914
}
7915

7916
int32_t tSerializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
341,164✔
7917
  SEncoder encoder = {0};
341,164✔
7918
  int32_t  code = 0;
341,164✔
7919
  int32_t  lino;
7920
  int32_t  tlen;
7921
  tEncoderInit(&encoder, buf, bufLen);
341,164✔
7922

7923
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
341,173!
7924
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->acctId));
682,390!
7925
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->clusterId));
682,390!
7926
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->connId));
682,390!
7927
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeNum));
682,390!
7928
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->superUser));
682,390!
7929
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->sysInfo));
682,390!
7930
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->connType));
682,390!
7931
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, &pRsp->epSet));
341,195!
7932
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->svrTimestamp));
682,362!
7933
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sVer));
682,362!
7934
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sDetailVer));
682,362!
7935
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->passVer));
682,362!
7936
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->authVer));
682,362!
7937
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->whiteListVer));
682,362!
7938
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pRsp->monitorParas));
341,181!
7939
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->enableAuditDelete));
682,334!
7940
  tEndEncode(&encoder);
341,167✔
7941

7942
_exit:
341,161✔
7943
  if (code) {
341,161!
7944
    tlen = code;
×
7945
  } else {
7946
    tlen = encoder.pos;
341,161✔
7947
  }
7948
  tEncoderClear(&encoder);
341,161✔
7949
  return tlen;
341,151✔
7950
}
7951

7952
int32_t tDeserializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
12,620✔
7953
  SDecoder decoder = {0};
12,620✔
7954
  int32_t  code = 0;
12,620✔
7955
  int32_t  lino;
7956
  tDecoderInit(&decoder, buf, bufLen);
12,620✔
7957

7958
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12,680!
7959
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->acctId));
25,333!
7960
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->clusterId));
25,334!
7961
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->connId));
25,352!
7962
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeNum));
25,337!
7963
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->superUser));
25,332!
7964
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->sysInfo));
25,323!
7965
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->connType));
25,316!
7966
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &pRsp->epSet));
12,659!
7967
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->svrTimestamp));
25,336!
7968
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sVer));
12,669!
7969
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sDetailVer));
12,677!
7970

7971
  if (!tDecodeIsEnd(&decoder)) {
12,674!
7972
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->passVer));
25,338!
7973
  } else {
7974
    pRsp->passVer = 0;
×
7975
  }
7976
  // since 3.0.7.0
7977
  if (!tDecodeIsEnd(&decoder)) {
12,664✔
7978
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->authVer));
25,315!
7979
  } else {
7980
    pRsp->authVer = 0;
8✔
7981
  }
7982

7983
  if (!tDecodeIsEnd(&decoder)) {
12,667✔
7984
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->whiteListVer));
25,317!
7985
  } else {
7986
    pRsp->whiteListVer = 0;
9✔
7987
  }
7988
  if (!tDecodeIsEnd(&decoder)) {
12,668✔
7989
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pRsp->monitorParas));
12,659!
7990
  }
7991
  if (!tDecodeIsEnd(&decoder)) {
12,663!
7992
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->enableAuditDelete));
25,326!
7993
  } else {
7994
    pRsp->enableAuditDelete = 0;
×
7995
  }
7996
  tEndDecode(&decoder);
12,663✔
7997

7998
_exit:
12,659✔
7999
  tDecoderClear(&decoder);
12,659✔
8000
  return code;
12,664✔
8001
}
8002

8003
int32_t tSerializeSMTimerMsg(void *buf, int32_t bufLen, SMTimerReq *pReq) {
610,218✔
8004
  SEncoder encoder = {0};
610,218✔
8005
  int32_t  code = 0;
610,218✔
8006
  int32_t  lino;
8007
  int32_t  tlen;
8008
  tEncoderInit(&encoder, buf, bufLen);
610,218✔
8009

8010
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
610,218!
8011
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
1,220,436!
8012
  tEndEncode(&encoder);
610,218✔
8013

8014
_exit:
610,218✔
8015
  if (code) {
610,218!
8016
    tlen = code;
×
8017
  } else {
8018
    tlen = encoder.pos;
610,218✔
8019
  }
8020
  tEncoderClear(&encoder);
610,218✔
8021
  return tlen;
610,218✔
8022
}
8023

8024
int32_t tSerializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
×
8025
  SEncoder encoder = {0};
×
8026
  int32_t  code = 0;
×
8027
  int32_t  lino;
8028
  int32_t  tlen;
8029
  tEncoderInit(&encoder, buf, bufLen);
×
8030

8031
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8032

8033
  int32_t size = taosArrayGetSize(pMsg->pList);
×
8034
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
×
8035

8036
  for (int32_t i = 0; i < size; i++) {
×
8037
    SOrphanTask *pTask = taosArrayGet(pMsg->pList, i);
×
8038
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pTask->streamId));
×
8039
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->taskId));
×
8040
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->nodeId));
×
8041
  }
8042

8043
  tEndEncode(&encoder);
×
8044

8045
_exit:
×
8046
  if (code) {
×
8047
    tlen = code;
×
8048
  } else {
8049
    tlen = encoder.pos;
×
8050
  }
8051
  tEncoderClear(&encoder);
×
8052
  return tlen;
×
8053
}
8054

8055
int32_t tDeserializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
×
8056
  SDecoder decoder = {0};
×
8057
  int32_t  code = 0;
×
8058
  int32_t  lino;
8059
  tDecoderInit(&decoder, buf, bufLen);
×
8060

8061
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8062

8063
  int32_t num = 0;
×
8064
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
8065

8066
  if (num > 0) {
×
8067
    pMsg->pList = taosArrayInit(num, sizeof(SOrphanTask));
×
8068
    if (NULL == pMsg->pList) {
×
8069
      TAOS_CHECK_EXIT(terrno);
×
8070
    }
8071
    for (int32_t i = 0; i < num; ++i) {
×
8072
      SOrphanTask info = {0};
×
8073
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &info.streamId));
×
8074
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.taskId));
×
8075
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.nodeId));
×
8076

8077
      if (taosArrayPush(pMsg->pList, &info) == NULL) {
×
8078
        TAOS_CHECK_EXIT(terrno);
×
8079
      }
8080
    }
8081
  }
8082

8083
  tEndDecode(&decoder);
×
8084
_exit:
×
8085
  tDecoderClear(&decoder);
×
8086
  return code;
×
8087
}
8088

8089
void tDestroyDropOrphanTaskMsg(SMStreamDropOrphanMsg *pMsg) {
×
8090
  if (pMsg == NULL) {
×
8091
    return;
×
8092
  }
8093

8094
  taosArrayDestroy(pMsg->pList);
×
8095
}
8096

8097
int32_t tEncodeSReplica(SEncoder *pEncoder, SReplica *pReplica) {
395,550✔
8098
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReplica->id));
791,100!
8099
  TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pReplica->port));
791,100!
8100
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReplica->fqdn));
791,100!
8101
  return 0;
395,550✔
8102
}
8103

8104
int32_t tDecodeSReplica(SDecoder *pDecoder, SReplica *pReplica) {
858,102✔
8105
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReplica->id));
1,716,142!
8106
  TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pReplica->port));
1,715,847!
8107
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReplica->fqdn));
857,807!
8108
  return 0;
858,287✔
8109
}
8110

8111
int32_t tSerializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
22,270✔
8112
  SEncoder encoder = {0};
22,270✔
8113
  int32_t  code = 0;
22,270✔
8114
  int32_t  lino;
8115
  int32_t  tlen;
8116
  tEncoderInit(&encoder, buf, bufLen);
22,270✔
8117

8118
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
22,270!
8119
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
44,540!
8120
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
44,540!
8121
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
44,540!
8122
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
44,540!
8123
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
44,540!
8124
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
44,540!
8125
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
44,540!
8126
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
44,540!
8127
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
44,540!
8128
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
44,540!
8129
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
44,540!
8130
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
44,540!
8131
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
44,540!
8132
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
44,540!
8133
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
44,540!
8134
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
44,540!
8135
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashBegin));
44,540!
8136
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashEnd));
44,540!
8137
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->hashMethod));
44,540!
8138
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
44,540!
8139
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
44,540!
8140
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
44,540!
8141
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
44,540!
8142
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
44,540!
8143
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
44,540!
8144
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
44,540!
8145
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
133,620✔
8146
    SReplica *pReplica = &pReq->replicas[i];
111,350✔
8147
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
111,350!
8148
  }
8149
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
44,540!
8150
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
22,270!
8151
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
×
8152
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
×
8153
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
×
8154
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
×
8155
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
×
8156
  }
8157

8158
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isTsma));
44,540!
8159
  if (pReq->isTsma) {
22,270!
8160
    uint32_t tsmaLen = (uint32_t)(htonl(((SMsgHead *)pReq->pTsma)->contLen));
×
8161
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pTsma, tsmaLen));
×
8162
  }
8163
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
44,540!
8164
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
44,540!
8165
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
44,540!
8166
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
44,540!
8167
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sstTrigger));
44,540!
8168
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
44,540!
8169
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
44,540!
8170
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
44,540!
8171
  for (int32_t i = 0; i < 6; ++i) {
155,890✔
8172
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
267,240!
8173
  }
8174
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
44,540!
8175
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
44,540!
8176
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
244,970✔
8177
    SReplica *pReplica = &pReq->learnerReplicas[i];
222,700✔
8178
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
222,700!
8179
  }
8180
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
44,540!
8181
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
44,540!
8182
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
44,540!
8183
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssChunkSize));
44,540!
8184
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssKeepLocal));
44,540!
8185
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ssCompact));
44,540!
8186

8187
  tEndEncode(&encoder);
22,270✔
8188

8189
_exit:
22,270✔
8190
  if (code) {
22,270!
8191
    tlen = code;
×
8192
  } else {
8193
    tlen = encoder.pos;
22,270✔
8194
  }
8195
  tEncoderClear(&encoder);
22,270✔
8196
  return tlen;
22,270✔
8197
}
8198

8199
int32_t tDeserializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
50,809✔
8200
  SDecoder decoder = {0};
50,809✔
8201
  int32_t  code = 0;
50,809✔
8202
  int32_t  lino;
8203

8204
  tDecoderInit(&decoder, buf, bufLen);
50,809✔
8205

8206
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
50,813!
8207
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
101,612!
8208
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
50,804!
8209
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
101,609!
8210
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
101,605!
8211
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
101,613!
8212
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
101,616!
8213
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
101,616!
8214
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
101,616!
8215
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
101,615!
8216
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
101,612!
8217
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
101,603!
8218
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
101,602!
8219
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
101,610!
8220
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
101,609!
8221
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
101,606!
8222
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
101,607!
8223
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashBegin));
101,609!
8224
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashEnd));
101,610!
8225
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->hashMethod));
101,607!
8226
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
101,607!
8227
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
101,609!
8228
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
101,606!
8229
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
101,604!
8230
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
101,606!
8231
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
101,602!
8232
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
101,594!
8233
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
304,678✔
8234
    SReplica *pReplica = &pReq->replicas[i];
253,858✔
8235
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
253,858!
8236
  }
8237
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
101,624!
8238
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
50,804✔
8239
  if (pReq->pRetensions == NULL) {
50,806!
8240
    TAOS_CHECK_EXIT(terrno);
×
8241
  }
8242

8243
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
50,809!
8244
    SRetention rentension = {0};
×
8245
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
×
8246
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
×
8247
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
×
8248
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
×
8249
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
×
8250
      TAOS_CHECK_EXIT(terrno);
×
8251
    }
8252
  }
8253

8254
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isTsma));
101,602!
8255
  if (pReq->isTsma) {
50,793!
8256
    TAOS_CHECK_EXIT(tDecodeBinary(&decoder, (uint8_t **)&pReq->pTsma, NULL));
×
8257
  }
8258

8259
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
101,586!
8260
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
101,573!
8261
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
101,568!
8262
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
101,573!
8263
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sstTrigger));
101,570!
8264
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
101,565!
8265
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
101,560!
8266
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
101,552!
8267
  for (int32_t i = 0; i < 6; ++i) {
355,193✔
8268
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
608,837!
8269
  }
8270
  if (!tDecodeIsEnd(&decoder)) {
50,777✔
8271
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
101,535!
8272
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
101,540!
8273
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
558,477✔
8274
      SReplica *pReplica = &pReq->learnerReplicas[i];
507,600✔
8275
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
507,600!
8276
    }
8277
  }
8278
  if (!tDecodeIsEnd(&decoder)) {
50,884✔
8279
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
101,602!
8280
  }
8281
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
50,880✔
8282
  if (!tDecodeIsEnd(&decoder)) {
50,880✔
8283
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
101,592!
8284
  }
8285
  pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
50,872✔
8286
  pReq->ssChunkSize = TSDB_DEFAULT_SS_CHUNK_SIZE;
50,872✔
8287
  pReq->ssKeepLocal = TSDB_DEFAULT_SS_KEEP_LOCAL;
50,872✔
8288
  pReq->ssCompact = TSDB_DEFAULT_SS_COMPACT;
50,872✔
8289
  if (!tDecodeIsEnd(&decoder)) {
50,872✔
8290
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
101,579!
8291
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssChunkSize));
101,564!
8292
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssKeepLocal));
101,556!
8293
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ssCompact));
101,548!
8294
  }
8295

8296
  tEndDecode(&decoder);
50,849✔
8297

8298
_exit:
50,767✔
8299
  tDecoderClear(&decoder);
50,767✔
8300
  return code;
50,782✔
8301
}
8302

8303
int32_t tFreeSCreateVnodeReq(SCreateVnodeReq *pReq) {
50,815✔
8304
  taosArrayDestroy(pReq->pRetensions);
50,815✔
8305
  pReq->pRetensions = NULL;
50,815✔
8306
  return 0;
50,815✔
8307
}
8308

8309
int32_t tSerializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
404✔
8310
  SEncoder encoder = {0};
404✔
8311
  int32_t  code = 0;
404✔
8312
  int32_t  lino;
8313
  int32_t  tlen;
8314
  tEncoderInit(&encoder, buf, bufLen);
404✔
8315

8316
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
404!
8317

8318
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
808!
8319
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
808!
8320
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
808!
8321

8322
  tEndEncode(&encoder);
404✔
8323

8324
_exit:
404✔
8325
  if (code) {
404!
8326
    tlen = code;
×
8327
  } else {
8328
    tlen = encoder.pos;
404✔
8329
  }
8330
  tEncoderClear(&encoder);
404✔
8331
  return tlen;
404✔
8332
}
8333

8334
int32_t tDeserializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
201✔
8335
  int32_t  headLen = sizeof(SMsgHead);
201✔
8336
  SDecoder decoder = {0};
201✔
8337
  int32_t  code = 0;
201✔
8338
  int32_t  lino;
8339
  tDecoderInit(&decoder, ((uint8_t *)buf) + headLen, bufLen - headLen);
201✔
8340

8341
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
201!
8342
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
402!
8343
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
402!
8344
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
402!
8345

8346
  tEndDecode(&decoder);
201✔
8347
_exit:
201✔
8348
  tDecoderClear(&decoder);
201✔
8349
  return code;
201✔
8350
}
8351

8352
int32_t tSerializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
402✔
8353
  SEncoder encoder = {0};
402✔
8354
  int32_t  code = 0;
402✔
8355
  int32_t  lino;
8356
  int32_t  tlen;
8357
  tEncoderInit(&encoder, buf, bufLen);
402✔
8358

8359
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
402!
8360
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
804!
8361
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
804!
8362
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
804!
8363
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numberFileset));
804!
8364
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->finished));
804!
8365
  // 1. add progress and remaining time
8366
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->progress));
804!
8367
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->remainingTime));
804!
8368

8369
  tEndEncode(&encoder);
402✔
8370

8371
_exit:
402✔
8372
  if (code) {
402!
8373
    tlen = code;
×
8374
  } else {
8375
    tlen = encoder.pos;
402✔
8376
  }
8377
  tEncoderClear(&encoder);
402✔
8378
  return tlen;
402✔
8379
}
8380
int32_t tDeserializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
202✔
8381
  SDecoder decoder = {0};
202✔
8382
  int32_t  code = 0;
202✔
8383
  int32_t  lino;
8384
  tDecoderInit(&decoder, buf, bufLen);
202✔
8385

8386
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
202!
8387
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
404!
8388
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
404!
8389
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
404!
8390
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numberFileset));
404!
8391
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->finished));
404!
8392
  // 1. decode progress and remaining time
8393
  if (!tDecodeIsEnd(&decoder)) {
202!
8394
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->progress));
404!
8395
    TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->remainingTime));
404!
8396
  } else {
8397
    pReq->progress = 0;
×
8398
    pReq->remainingTime = 0;
×
8399
  }
8400

8401
  tEndDecode(&decoder);
202✔
8402
_exit:
202✔
8403
  tDecoderClear(&decoder);
202✔
8404
  return code;
202✔
8405
}
8406

8407
int32_t tSerializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
32,564✔
8408
  SEncoder encoder = {0};
32,564✔
8409
  int32_t  code = 0;
32,564✔
8410
  int32_t  lino;
8411
  int32_t  tlen;
8412
  tEncoderInit(&encoder, buf, bufLen);
32,564✔
8413

8414
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32,564!
8415
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
65,128!
8416
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
65,128!
8417
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
65,128!
8418
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
65,128!
8419
  for (int32_t i = 0; i < 8; ++i) {
293,076✔
8420
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
521,024!
8421
  }
8422
  tEndEncode(&encoder);
32,564✔
8423

8424
_exit:
32,564✔
8425
  if (code) {
32,564!
8426
    tlen = code;
×
8427
  } else {
8428
    tlen = encoder.pos;
32,564✔
8429
  }
8430
  tEncoderClear(&encoder);
32,564✔
8431
  return tlen;
32,564✔
8432
}
8433

8434
int32_t tDeserializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
115,250✔
8435
  SDecoder decoder = {0};
115,250✔
8436
  int32_t  code = 0;
115,250✔
8437
  int32_t  lino;
8438
  tDecoderInit(&decoder, buf, bufLen);
115,250✔
8439

8440
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
115,250!
8441
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
230,500!
8442
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
230,500!
8443
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
230,500!
8444
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
115,250!
8445
  for (int32_t i = 0; i < 8; ++i) {
1,037,250✔
8446
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
1,844,000!
8447
  }
8448
  tEndDecode(&decoder);
115,250✔
8449

8450
_exit:
115,250✔
8451
  tDecoderClear(&decoder);
115,250✔
8452
  return code;
115,250✔
8453
}
8454
int32_t tSerializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
8,460✔
8455
  SEncoder encoder = {0};
8,460✔
8456
  int32_t  code = 0;
8,460✔
8457
  int32_t  lino;
8458
  int32_t  tlen;
8459
  tEncoderInit(&encoder, buf, bufLen);
8,460✔
8460

8461
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8,460!
8462
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
16,920!
8463
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
16,920!
8464
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stbUid));
16,920!
8465
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
16,920!
8466
  for (int32_t i = 0; i < 8; ++i) {
76,140✔
8467
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
135,360!
8468
  }
8469
  tEndEncode(&encoder);
8,460✔
8470

8471
_exit:
8,460✔
8472
  if (code) {
8,460!
8473
    tlen = code;
×
8474
  } else {
8475
    tlen = encoder.pos;
8,460✔
8476
  }
8477
  tEncoderClear(&encoder);
8,460✔
8478
  return tlen;
8,460✔
8479
}
8480

8481
int32_t tDeserializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
4,230✔
8482
  SDecoder decoder = {0};
4,230✔
8483
  int32_t  code = 0;
4,230✔
8484
  int32_t  lino;
8485
  tDecoderInit(&decoder, buf, bufLen);
4,230✔
8486

8487
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,230!
8488
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
4,230!
8489
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
4,230!
8490
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stbUid));
8,460!
8491
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
8,460!
8492
  for (int32_t i = 0; i < 8; ++i) {
38,070✔
8493
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
67,680!
8494
  }
8495
  tEndDecode(&decoder);
4,230✔
8496

8497
_exit:
4,230✔
8498
  tDecoderClear(&decoder);
4,230✔
8499
  return code;
4,230✔
8500
}
8501

8502
int32_t tSerializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
244✔
8503
  SEncoder encoder = {0};
244✔
8504
  int32_t  code = 0;
244✔
8505
  int32_t  lino;
8506
  int32_t  tlen;
8507
  tEncoderInit(&encoder, buf, bufLen);
244✔
8508

8509
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
244!
8510
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
488!
8511
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
488!
8512
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactStartTime));
488!
8513

8514
  // 1.1 add tw.skey and tw.ekey
8515
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.skey));
488!
8516
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.ekey));
488!
8517

8518
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
488!
8519
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
488!
8520

8521
  tEndEncode(&encoder);
244✔
8522

8523
_exit:
244✔
8524
  if (code) {
244!
8525
    tlen = code;
×
8526
  } else {
8527
    tlen = encoder.pos;
244✔
8528
  }
8529
  tEncoderClear(&encoder);
244✔
8530
  return tlen;
244✔
8531
}
8532

8533
int32_t tDeserializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
136✔
8534
  SDecoder decoder = {0};
136✔
8535
  int32_t  code = 0;
136✔
8536
  int32_t  lino;
8537
  tDecoderInit(&decoder, buf, bufLen);
136✔
8538

8539
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
137!
8540
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
274!
8541
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
137!
8542
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactStartTime));
274!
8543

8544
  // 1.1
8545
  if (tDecodeIsEnd(&decoder)) {
137!
8546
    pReq->tw.skey = TSKEY_MIN;
×
8547
    pReq->tw.ekey = TSKEY_MAX;
×
8548
  } else {
8549
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.skey));
274!
8550
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.ekey));
274!
8551
  }
8552

8553
  if (!tDecodeIsEnd(&decoder)) {
137!
8554
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
274!
8555
  }
8556

8557
  if (!tDecodeIsEnd(&decoder)) {
137!
8558
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
274!
8559
  } else {
8560
    pReq->metaOnly = false;
×
8561
  }
8562

8563
  tEndDecode(&decoder);
137✔
8564
_exit:
137✔
8565
  tDecoderClear(&decoder);
137✔
8566
  return code;
137✔
8567
}
8568

8569
int32_t tSerializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
4✔
8570
  SEncoder encoder = {0};
4✔
8571
  int32_t  code = 0;
4✔
8572
  int32_t  lino;
8573
  int32_t  tlen;
8574
  tEncoderInit(&encoder, buf, bufLen);
4✔
8575

8576
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
8577
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
8!
8578
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
8!
8579
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
8!
8580

8581
  tEndEncode(&encoder);
4✔
8582

8583
_exit:
4✔
8584
  if (code) {
4!
8585
    tlen = code;
×
8586
  } else {
8587
    tlen = encoder.pos;
4✔
8588
  }
8589
  tEncoderClear(&encoder);
4✔
8590
  return tlen;
4✔
8591
}
8592

8593
int32_t tDeserializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
2✔
8594
  int32_t  code = 0;
2✔
8595
  int32_t  lino;
8596
  SDecoder decoder = {0};
2✔
8597

8598
  tDecoderInit(&decoder, buf, bufLen);
2✔
8599

8600
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8601
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
4!
8602
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
4!
8603
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
4!
8604
  tEndDecode(&decoder);
2✔
8605

8606
_exit:
2✔
8607
  tDecoderClear(&decoder);
2✔
8608
  return code;
2✔
8609
}
8610

8611
int32_t tSerializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
1,918✔
8612
  int32_t  code = 0;
1,918✔
8613
  int32_t  lino;
8614
  int32_t  tlen;
8615
  SEncoder encoder = {0};
1,918✔
8616

8617
  tEncoderInit(&encoder, buf, bufLen);
1,918✔
8618

8619
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,918!
8620
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
3,836!
8621
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
3,836!
8622
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
3,836!
8623
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
3,836!
8624
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
3,836!
8625
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
3,836!
8626
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
3,836!
8627
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
3,836!
8628
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
3,836!
8629
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
3,836!
8630
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
3,836!
8631
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
3,836!
8632
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
3,836!
8633
  for (int32_t i = 0; i < 7; ++i) {
15,344✔
8634
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
26,852!
8635
  }
8636

8637
  // 1st modification
8638
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sttTrigger));
3,836!
8639
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
3,836!
8640
  // 2nd modification
8641
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
3,836!
8642
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
3,836!
8643
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
3,836!
8644

8645
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ssKeepLocal));
3,836!
8646
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ssCompact));
3,836!
8647

8648
  tEndEncode(&encoder);
1,918✔
8649

8650
_exit:
1,918✔
8651
  if (code) {
1,918!
8652
    tlen = code;
×
8653
  } else {
8654
    tlen = encoder.pos;
1,918✔
8655
  }
8656
  tEncoderClear(&encoder);
1,918✔
8657
  return tlen;
1,918✔
8658
}
8659

8660
int32_t tDeserializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
1,154✔
8661
  SDecoder decoder = {0};
1,154✔
8662
  int32_t  code = 0;
1,154✔
8663
  int32_t  lino;
8664
  tDecoderInit(&decoder, buf, bufLen);
1,154✔
8665

8666
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,154!
8667
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
2,309!
8668
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
2,309!
8669
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
2,310!
8670
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
2,310!
8671
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
2,310!
8672
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
2,308!
8673
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
2,307!
8674
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
2,307!
8675
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
2,307!
8676
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
2,309!
8677
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
2,310!
8678
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
2,309!
8679
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
2,308!
8680
  for (int32_t i = 0; i < 7; ++i) {
9,238✔
8681
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
16,168!
8682
  }
8683

8684
  // 1st modification
8685
  if (tDecodeIsEnd(&decoder)) {
1,154!
8686
    pReq->sttTrigger = -1;
×
8687
    pReq->minRows = -1;
×
8688
  } else {
8689
    TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sttTrigger));
2,309!
8690
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
2,310!
8691
  }
8692

8693
  // 2n modification
8694
  if (tDecodeIsEnd(&decoder)) {
1,155!
8695
    pReq->walRetentionPeriod = -1;
×
8696
    pReq->walRetentionSize = -1;
×
8697
  } else {
8698
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
2,310!
8699
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
2,309!
8700
  }
8701
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
1,154✔
8702
  if (!tDecodeIsEnd(&decoder)) {
1,154!
8703
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
2,308!
8704
  }
8705

8706
  pReq->ssKeepLocal = TSDB_DEFAULT_SS_KEEP_LOCAL;
1,154✔
8707
  pReq->ssCompact = TSDB_DEFAULT_SS_COMPACT;
1,154✔
8708
  if (!tDecodeIsEnd(&decoder)) {
1,154!
8709
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ssKeepLocal) < 0);
2,309!
8710
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ssCompact) < 0);
2,309!
8711
  }
8712

8713
  tEndDecode(&decoder);
1,154✔
8714

8715
_exit:
1,154✔
8716
  tDecoderClear(&decoder);
1,154✔
8717
  return code;
1,155✔
8718
}
8719

8720
int32_t tSerializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
3,672✔
8721
  SEncoder encoder = {0};
3,672✔
8722
  int32_t  code = 0;
3,672✔
8723
  int32_t  lino;
8724
  int32_t  tlen;
8725
  tEncoderInit(&encoder, buf, bufLen);
3,672✔
8726

8727
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,672!
8728
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
7,344!
8729
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
7,344!
8730
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
7,344!
8731
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
7,344!
8732
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
22,032✔
8733
    SReplica *pReplica = &pReq->replicas[i];
18,360✔
8734
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
18,360!
8735
  }
8736
  for (int32_t i = 0; i < 8; ++i) {
33,048✔
8737
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
58,752!
8738
  }
8739
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
7,344!
8740
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
7,344!
8741
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
40,392✔
8742
    SReplica *pReplica = &pReq->learnerReplicas[i];
36,720✔
8743
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
36,720!
8744
  }
8745
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
7,344!
8746
  tEndEncode(&encoder);
3,672✔
8747

8748
_exit:
3,672✔
8749
  if (code) {
3,672!
8750
    tlen = code;
×
8751
  } else {
8752
    tlen = encoder.pos;
3,672✔
8753
  }
8754
  tEncoderClear(&encoder);
3,672✔
8755
  return tlen;
3,672✔
8756
}
8757

8758
int32_t tDeserializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
6,245✔
8759
  SDecoder decoder = {0};
6,245✔
8760
  int32_t  code = 0;
6,245✔
8761
  int32_t  lino;
8762
  tDecoderInit(&decoder, buf, bufLen);
6,245✔
8763

8764
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6,245!
8765
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
12,490!
8766
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
12,490!
8767
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
12,490!
8768
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
12,490!
8769
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
37,470✔
8770
    SReplica *pReplica = &pReq->replicas[i];
31,225✔
8771
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
31,225!
8772
  }
8773
  for (int32_t i = 0; i < 8; ++i) {
56,205✔
8774
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
99,920!
8775
  }
8776
  if (!tDecodeIsEnd(&decoder)) {
6,245!
8777
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
12,490!
8778
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
12,490!
8779
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
68,695✔
8780
      SReplica *pReplica = &pReq->learnerReplicas[i];
62,450✔
8781
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
62,450!
8782
    }
8783
  }
8784
  if (!tDecodeIsEnd(&decoder)) {
6,245!
8785
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
12,490!
8786
  }
8787

8788
  tEndDecode(&decoder);
6,245✔
8789
_exit:
6,245✔
8790
  tDecoderClear(&decoder);
6,245✔
8791
  return code;
6,245✔
8792
}
8793

8794
int32_t tSerializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
224✔
8795
  SEncoder encoder = {0};
224✔
8796
  int32_t  code = 0;
224✔
8797
  int32_t  lino;
8798
  int32_t  tlen;
8799
  tEncoderInit(&encoder, buf, bufLen);
224✔
8800

8801
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
224!
8802
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
448!
8803
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->disable));
448!
8804

8805
  tEndEncode(&encoder);
224✔
8806

8807
_exit:
224✔
8808
  if (code) {
224!
8809
    tlen = code;
×
8810
  } else {
8811
    tlen = encoder.pos;
224✔
8812
  }
8813
  tEncoderClear(&encoder);
224✔
8814
  return tlen;
224✔
8815
}
8816

8817
int32_t tDeserializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
88✔
8818
  SDecoder decoder = {0};
88✔
8819
  int32_t  code = 0;
88✔
8820
  int32_t  lino;
8821
  tDecoderInit(&decoder, buf, bufLen);
88✔
8822

8823
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
88!
8824
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
176!
8825
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->disable));
176!
8826

8827
  tEndDecode(&decoder);
88✔
8828
_exit:
88✔
8829
  tDecoderClear(&decoder);
88✔
8830
  return code;
88✔
8831
}
8832

8833
int32_t tSerializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
224✔
8834
  SEncoder encoder = {0};
224✔
8835
  int32_t  code = 0;
224✔
8836
  int32_t  lino;
8837
  int32_t  tlen;
8838
  tEncoderInit(&encoder, buf, bufLen);
224✔
8839

8840
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
224!
8841
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->srcVgId));
448!
8842
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
448!
8843
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashBegin));
448!
8844
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashEnd));
448!
8845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
448!
8846
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
448!
8847

8848
  tEndEncode(&encoder);
224✔
8849

8850
_exit:
224✔
8851
  if (code) {
224!
8852
    tlen = code;
×
8853
  } else {
8854
    tlen = encoder.pos;
224✔
8855
  }
8856
  tEncoderClear(&encoder);
224✔
8857
  return tlen;
224✔
8858
}
8859

8860
int32_t tDeserializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
88✔
8861
  SDecoder decoder = {0};
88✔
8862
  int32_t  code = 0;
88✔
8863
  int32_t  lino;
8864
  tDecoderInit(&decoder, buf, bufLen);
88✔
8865

8866
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
88!
8867
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->srcVgId));
176!
8868
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
176!
8869
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashBegin));
176!
8870
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashEnd));
176!
8871
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
176!
8872
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
176!
8873

8874
  tEndDecode(&decoder);
88✔
8875
_exit:
88✔
8876
  tDecoderClear(&decoder);
88✔
8877
  return code;
88✔
8878
}
8879

8880
int32_t tSerializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
2✔
8881
  SEncoder encoder = {0};
2✔
8882
  int32_t  code = 0;
2✔
8883
  int32_t  lino;
8884
  int32_t  tlen;
8885
  tEncoderInit(&encoder, buf, bufLen);
2✔
8886

8887
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
8888
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->queryStrId));
4!
8889
  tEndEncode(&encoder);
2✔
8890

8891
_exit:
2✔
8892
  if (code) {
2!
8893
    tlen = code;
×
8894
  } else {
8895
    tlen = encoder.pos;
2✔
8896
  }
8897
  tEncoderClear(&encoder);
2✔
8898
  return tlen;
2✔
8899
}
8900

8901
int32_t tDeserializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
1✔
8902
  SDecoder decoder = {0};
1✔
8903
  int32_t  code = 0;
1✔
8904
  int32_t  lino;
8905
  tDecoderInit(&decoder, buf, bufLen);
1✔
8906

8907
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
8908
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->queryStrId));
1!
8909
  tEndDecode(&decoder);
1✔
8910

8911
_exit:
1✔
8912
  tDecoderClear(&decoder);
1✔
8913
  return code;
1✔
8914
}
8915

8916
int32_t tSerializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
4✔
8917
  SEncoder encoder = {0};
4✔
8918
  int32_t  code = 0;
4✔
8919
  int32_t  lino;
8920
  int32_t  tlen;
8921
  tEncoderInit(&encoder, buf, bufLen);
4✔
8922

8923
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
8924
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->connId));
8!
8925
  tEndEncode(&encoder);
4✔
8926

8927
_exit:
4✔
8928
  if (code) {
4!
8929
    tlen = code;
×
8930
  } else {
8931
    tlen = encoder.pos;
4✔
8932
  }
8933
  tEncoderClear(&encoder);
4✔
8934
  return tlen;
4✔
8935
}
8936

8937
int32_t tDeserializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
3✔
8938
  SDecoder decoder = {0};
3✔
8939
  int32_t  code = 0;
3✔
8940
  int32_t  lino;
8941
  tDecoderInit(&decoder, buf, bufLen);
3✔
8942

8943
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
8944
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->connId));
6!
8945
  tEndDecode(&decoder);
3✔
8946

8947
_exit:
3✔
8948
  tDecoderClear(&decoder);
3✔
8949
  return code;
3✔
8950
}
8951

8952
int32_t tSerializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
2✔
8953
  SEncoder encoder = {0};
2✔
8954
  int32_t  code = 0;
2✔
8955
  int32_t  lino;
8956
  int32_t  tlen;
8957
  tEncoderInit(&encoder, buf, bufLen);
2✔
8958

8959
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
8960
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->transId));
4!
8961
  tEndEncode(&encoder);
2✔
8962

8963
_exit:
2✔
8964
  if (code) {
2!
8965
    tlen = code;
×
8966
  } else {
8967
    tlen = encoder.pos;
2✔
8968
  }
8969
  tEncoderClear(&encoder);
2✔
8970
  return tlen;
2✔
8971
}
8972

8973
int32_t tDeserializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
2✔
8974
  SDecoder decoder = {0};
2✔
8975
  int32_t  code = 0;
2✔
8976
  int32_t  lino;
8977
  tDecoderInit(&decoder, buf, bufLen);
2✔
8978

8979
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8980
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->transId));
4!
8981
  tEndDecode(&decoder);
2✔
8982

8983
_exit:
2✔
8984
  tDecoderClear(&decoder);
2✔
8985
  return code;
2✔
8986
}
8987

8988
int32_t tSerializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
10✔
8989
  SEncoder encoder = {0};
10✔
8990
  int32_t  code = 0;
10✔
8991
  int32_t  lino;
8992
  int32_t  tlen;
8993
  tEncoderInit(&encoder, buf, bufLen);
10✔
8994

8995
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
8996
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
20!
8997
  ENCODESQL();
30!
8998
  tEndEncode(&encoder);
10✔
8999

9000
_exit:
10✔
9001
  if (code) {
10!
9002
    tlen = code;
×
9003
  } else {
9004
    tlen = encoder.pos;
10✔
9005
  }
9006
  tEncoderClear(&encoder);
10✔
9007
  return tlen;
10✔
9008
}
9009

9010
int32_t tDeserializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
32✔
9011
  SDecoder decoder = {0};
32✔
9012
  int32_t  code = 0;
32✔
9013
  int32_t  lino;
9014
  tDecoderInit(&decoder, buf, bufLen);
32✔
9015

9016
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
32!
9017
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
64!
9018
  DECODESQL();
96!
9019
  tEndDecode(&decoder);
32✔
9020

9021
_exit:
32✔
9022
  tDecoderClear(&decoder);
32✔
9023
  return code;
32✔
9024
}
9025

9026
void tFreeSBalanceVgroupReq(SBalanceVgroupReq *pReq) { FREESQL(); }
37!
9027

9028
int32_t tSerializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
×
9029
  SEncoder encoder = {0};
×
9030
  int32_t  code = 0;
×
9031
  int32_t  lino;
9032
  int32_t  tlen;
9033
  tEncoderInit(&encoder, buf, bufLen);
×
9034

9035
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9036
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
×
9037
  ENCODESQL();
×
9038
  tEndEncode(&encoder);
×
9039

9040
_exit:
×
9041
  if (code) {
×
9042
    tlen = code;
×
9043
  } else {
9044
    tlen = encoder.pos;
×
9045
  }
9046
  tEncoderClear(&encoder);
×
9047
  return tlen;
×
9048
}
9049

9050
int32_t tDeserializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
1✔
9051
  SDecoder decoder = {0};
1✔
9052
  int32_t  code = 0;
1✔
9053
  int32_t  lino;
9054
  tDecoderInit(&decoder, buf, bufLen);
1✔
9055

9056
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
9057
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
2!
9058
  DECODESQL();
3!
9059
  tEndDecode(&decoder);
1✔
9060

9061
_exit:
1✔
9062
  tDecoderClear(&decoder);
1✔
9063
  return code;
1✔
9064
}
9065

9066
void tFreeSAssignLeaderReq(SAssignLeaderReq *pReq) { FREESQL(); }
1!
9067

9068
int32_t tSerializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
10✔
9069
  SEncoder encoder = {0};
10✔
9070
  int32_t  code = 0;
10✔
9071
  int32_t  lino;
9072
  int32_t  tlen;
9073
  tEncoderInit(&encoder, buf, bufLen);
10✔
9074

9075
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
9076
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
20!
9077
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
20!
9078
  ENCODESQL();
30!
9079
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
20!
9080

9081
  tEndEncode(&encoder);
10✔
9082

9083
_exit:
10✔
9084
  if (code) {
10!
9085
    tlen = code;
×
9086
  } else {
9087
    tlen = encoder.pos;
10✔
9088
  }
9089
  tEncoderClear(&encoder);
10✔
9090
  return tlen;
10✔
9091
}
9092

9093
int32_t tDeserializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
11✔
9094
  SDecoder decoder = {0};
11✔
9095
  int32_t  code = 0;
11✔
9096
  int32_t  lino;
9097
  tDecoderInit(&decoder, buf, bufLen);
11✔
9098

9099
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11!
9100
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
22!
9101
  if (!tDecodeIsEnd(&decoder)) {
11!
9102
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
22!
9103
  }
9104
  DECODESQL();
33!
9105
  if (!tDecodeIsEnd(&decoder)) {
11!
9106
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
11!
9107
  }
9108

9109
  tEndDecode(&decoder);
11✔
9110

9111
_exit:
11✔
9112
  tDecoderClear(&decoder);
11✔
9113
  return code;
11✔
9114
}
9115

9116
void tFreeSBalanceVgroupLeaderReq(SBalanceVgroupLeaderReq *pReq) { FREESQL(); }
16!
9117

9118
int32_t tSerializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
8✔
9119
  SEncoder encoder = {0};
8✔
9120
  int32_t  code = 0;
8✔
9121
  int32_t  lino;
9122
  int32_t  tlen;
9123
  tEncoderInit(&encoder, buf, bufLen);
8✔
9124

9125
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
9126
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId1));
16!
9127
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId2));
16!
9128
  tEndEncode(&encoder);
8✔
9129

9130
_exit:
8✔
9131
  if (code) {
8!
9132
    tlen = code;
×
9133
  } else {
9134
    tlen = encoder.pos;
8✔
9135
  }
9136
  tEncoderClear(&encoder);
8✔
9137
  return tlen;
8✔
9138
}
9139

9140
int32_t tDeserializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
2✔
9141
  SDecoder decoder = {0};
2✔
9142
  int32_t  code = 0;
2✔
9143
  int32_t  lino;
9144
  tDecoderInit(&decoder, buf, bufLen);
2✔
9145

9146
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
9147
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId1));
4!
9148
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId2));
4!
9149
  tEndDecode(&decoder);
2✔
9150

9151
_exit:
2✔
9152
  tDecoderClear(&decoder);
2✔
9153
  return code;
2✔
9154
}
9155

9156
int32_t tSerializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
18✔
9157
  SEncoder encoder = {0};
18✔
9158
  int32_t  code = 0;
18✔
9159
  int32_t  lino;
9160
  int32_t  tlen;
9161
  tEncoderInit(&encoder, buf, bufLen);
18✔
9162

9163
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
18!
9164
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
36!
9165
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId1));
36!
9166
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId2));
36!
9167
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId3));
36!
9168
  ENCODESQL();
54!
9169
  tEndEncode(&encoder);
18✔
9170

9171
_exit:
18✔
9172
  if (code) {
18!
9173
    tlen = code;
×
9174
  } else {
9175
    tlen = encoder.pos;
18✔
9176
  }
9177
  tEncoderClear(&encoder);
18✔
9178
  return tlen;
18✔
9179
}
9180

9181
int32_t tDeserializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
121✔
9182
  SDecoder decoder = {0};
121✔
9183
  int32_t  code = 0;
121✔
9184
  int32_t  lino;
9185
  tDecoderInit(&decoder, buf, bufLen);
121✔
9186

9187
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
121!
9188
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
242!
9189
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId1));
242!
9190
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId2));
242!
9191
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId3));
242!
9192
  DECODESQL();
363!
9193
  tEndDecode(&decoder);
121✔
9194

9195
_exit:
121✔
9196
  tDecoderClear(&decoder);
121✔
9197
  return code;
121✔
9198
}
9199

9200
void tFreeSRedistributeVgroupReq(SRedistributeVgroupReq *pReq) { FREESQL(); }
130!
9201

9202
int32_t tSerializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
8✔
9203
  SEncoder encoder = {0};
8✔
9204
  int32_t  code = 0;
8✔
9205
  int32_t  lino;
9206
  int32_t  tlen;
9207
  tEncoderInit(&encoder, buf, bufLen);
8✔
9208

9209
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
9210
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
16!
9211
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->force));
8!
9212
  tEndEncode(&encoder);
8✔
9213

9214
_exit:
8✔
9215
  if (code) {
8!
9216
    tlen = code;
×
9217
  } else {
9218
    tlen = encoder.pos;
8✔
9219
  }
9220
  tEncoderClear(&encoder);
8✔
9221
  return tlen;
8✔
9222
}
9223

9224
int32_t tDeserializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
59✔
9225
  SDecoder decoder = {0};
59✔
9226
  int32_t  code = 0;
59✔
9227
  int32_t  lino;
9228
  tDecoderInit(&decoder, buf, bufLen);
59✔
9229

9230
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
59!
9231
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
118!
9232
  TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->force));
59!
9233
  tEndDecode(&decoder);
59✔
9234

9235
_exit:
59✔
9236
  tDecoderClear(&decoder);
59✔
9237
  return code;
59✔
9238
}
9239

9240
int32_t tSerializeSForceBecomeFollowerReq(void *buf, int32_t bufLen, SForceBecomeFollowerReq *pReq) {
32✔
9241
  SEncoder encoder = {0};
32✔
9242
  int32_t  code = 0;
32✔
9243
  int32_t  lino;
9244
  int32_t  tlen;
9245
  tEncoderInit(&encoder, buf, bufLen);
32✔
9246

9247
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
9248
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
64!
9249
  tEndEncode(&encoder);
32✔
9250

9251
_exit:
32✔
9252
  if (code) {
32!
9253
    tlen = code;
×
9254
  } else {
9255
    tlen = encoder.pos;
32✔
9256
  }
9257
  tEncoderClear(&encoder);
32✔
9258
  return tlen;
32✔
9259
}
9260

9261
int32_t tSerializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
428✔
9262
  SEncoder encoder = {0};
428✔
9263
  int32_t  code = 0;
428✔
9264
  int32_t  lino;
9265
  int32_t  tlen;
9266
  tEncoderInit(&encoder, buf, bufLen);
428✔
9267

9268
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
428!
9269
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
856!
9270
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
2,568✔
9271
    SReplica *pReplica = &pReq->replicas[i];
2,140✔
9272
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
2,140!
9273
  }
9274
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
856!
9275
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
4,708✔
9276
    SReplica *pReplica = &pReq->learnerReplicas[i];
4,280✔
9277
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
4,280!
9278
  }
9279
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastIndex));
856!
9280
  tEndEncode(&encoder);
428✔
9281

9282
_exit:
428✔
9283
  if (code) {
428!
9284
    tlen = code;
×
9285
  } else {
9286
    tlen = encoder.pos;
428✔
9287
  }
9288
  tEncoderClear(&encoder);
428✔
9289
  return tlen;
428✔
9290
}
9291

9292
int32_t tDeserializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
216✔
9293
  SDecoder decoder = {0};
216✔
9294
  int32_t  code = 0;
216✔
9295
  int32_t  lino;
9296
  tDecoderInit(&decoder, buf, bufLen);
216✔
9297

9298
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
216!
9299
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
432!
9300
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
1,296✔
9301
    SReplica *pReplica = &pReq->replicas[i];
1,080✔
9302
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
1,080!
9303
  }
9304
  if (!tDecodeIsEnd(&decoder)) {
216!
9305
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
432!
9306
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
2,376✔
9307
      SReplica *pReplica = &pReq->learnerReplicas[i];
2,160✔
9308
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
2,160!
9309
    }
9310
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastIndex));
432!
9311
  }
9312
  tEndDecode(&decoder);
216✔
9313

9314
_exit:
216✔
9315
  tDecoderClear(&decoder);
216✔
9316
  return code;
216✔
9317
}
9318

9319
int32_t tSerializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
254✔
9320
  SEncoder encoder = {0};
254✔
9321
  int32_t  code = 0;
254✔
9322
  int32_t  lino;
9323
  int32_t  tlen;
9324
  tEncoderInit(&encoder, buf, bufLen);
254✔
9325

9326
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
254!
9327
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
508!
9328
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
508!
9329
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
508!
9330

9331
  int32_t size = taosArrayGetSize(pReq->hbMembers);
254✔
9332
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
254!
9333
  for (int32_t i = 0; i < size; i++) {
542✔
9334
    SVArbHbReqMember *pMember = taosArrayGet(pReq->hbMembers, i);
288✔
9335
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
576!
9336
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
576!
9337
  }
9338

9339
  tEndEncode(&encoder);
254✔
9340

9341
_exit:
254✔
9342
  if (code) {
254!
9343
    tlen = code;
×
9344
  } else {
9345
    tlen = encoder.pos;
254✔
9346
  }
9347
  tEncoderClear(&encoder);
254✔
9348
  return tlen;
254✔
9349
}
9350

9351
int32_t tDeserializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
125✔
9352
  SDecoder decoder = {0};
125✔
9353
  int32_t  code = 0;
125✔
9354
  int32_t  lino;
9355
  tDecoderInit(&decoder, buf, bufLen);
125✔
9356

9357
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
125!
9358
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
250!
9359
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
125!
9360
    TAOS_CHECK_EXIT(terrno);
×
9361
  }
9362
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
125!
9363
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
250!
9364

9365
  if ((pReq->hbMembers = taosArrayInit(16, sizeof(SVArbHbReqMember))) == NULL) {
125!
9366
    TAOS_CHECK_EXIT(terrno);
×
9367
  }
9368
  int32_t size = 0;
125✔
9369
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
125!
9370
  for (int32_t i = 0; i < size; i++) {
267✔
9371
    SVArbHbReqMember member = {0};
142✔
9372
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.vgId));
142!
9373
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.hbSeq));
142!
9374
    if (taosArrayPush(pReq->hbMembers, &member) == NULL) {
284!
9375
      TAOS_CHECK_EXIT(terrno);
×
9376
    }
9377
  }
9378

9379
  tEndDecode(&decoder);
125✔
9380

9381
_exit:
125✔
9382
  tDecoderClear(&decoder);
125✔
9383
  return code;
125✔
9384
}
9385

9386
void tFreeSVArbHeartBeatReq(SVArbHeartBeatReq *pReq) {
125✔
9387
  if (!pReq) return;
125!
9388
  taosMemoryFree(pReq->arbToken);
125!
9389
  taosArrayDestroy(pReq->hbMembers);
125✔
9390
}
9391

9392
int32_t tSerializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
250✔
9393
  SEncoder encoder = {0};
250✔
9394
  int32_t  code = 0;
250✔
9395
  int32_t  lino;
9396
  int32_t  tlen;
9397
  tEncoderInit(&encoder, buf, bufLen);
250✔
9398

9399
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
250!
9400
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
500!
9401
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeId));
500!
9402
  int32_t sz = taosArrayGetSize(pRsp->hbMembers);
250✔
9403
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
250!
9404
  for (int32_t i = 0; i < sz; i++) {
534✔
9405
    SVArbHbRspMember *pMember = taosArrayGet(pRsp->hbMembers, i);
284✔
9406
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
568!
9407
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
568!
9408
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pMember->memberToken));
568!
9409
  }
9410
  tEndEncode(&encoder);
250✔
9411

9412
_exit:
250✔
9413
  if (code) {
250!
9414
    tlen = code;
×
9415
  } else {
9416
    tlen = encoder.pos;
250✔
9417
  }
9418
  tEncoderClear(&encoder);
250✔
9419
  return tlen;
250✔
9420
}
9421

9422
int32_t tDeserializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
125✔
9423
  SDecoder decoder = {0};
125✔
9424
  int32_t  code = 0;
125✔
9425
  int32_t  lino;
9426
  tDecoderInit(&decoder, buf, bufLen);
125✔
9427

9428
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
125!
9429
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
125!
9430
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeId));
250!
9431
  int32_t sz = 0;
125✔
9432
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
125!
9433
  if ((pRsp->hbMembers = taosArrayInit(sz, sizeof(SVArbHbRspMember))) == NULL) {
125!
9434
    TAOS_CHECK_EXIT(terrno);
×
9435
  }
9436
  for (int32_t i = 0; i < sz; i++) {
267✔
9437
    SVArbHbRspMember hbMember = {0};
142✔
9438
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.vgId));
142!
9439
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.hbSeq));
142!
9440
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, hbMember.memberToken));
142!
9441
    if (taosArrayPush(pRsp->hbMembers, &hbMember) == NULL) {
284!
9442
      TAOS_CHECK_EXIT(terrno);
×
9443
    }
9444
  }
9445
  tEndDecode(&decoder);
125✔
9446

9447
_exit:
125✔
9448
  tDecoderClear(&decoder);
125✔
9449
  return code;
125✔
9450
}
9451

9452
void tFreeSVArbHeartBeatRsp(SVArbHeartBeatRsp *pRsp) {
250✔
9453
  if (NULL == pRsp) {
250!
9454
    return;
×
9455
  }
9456
  taosArrayDestroy(pRsp->hbMembers);
250✔
9457
}
9458

9459
int32_t tSerializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
56✔
9460
  SEncoder encoder = {0};
56✔
9461
  int32_t  code = 0;
56✔
9462
  int32_t  lino;
9463
  int32_t  tlen;
9464
  tEncoderInit(&encoder, buf, bufLen);
56✔
9465

9466
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
56!
9467
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
112!
9468
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
112!
9469
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member0Token));
112!
9470
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member1Token));
112!
9471

9472
  tEndEncode(&encoder);
56✔
9473

9474
_exit:
56✔
9475
  if (code) {
56!
9476
    tlen = code;
×
9477
  } else {
9478
    tlen = encoder.pos;
56✔
9479
  }
9480
  tEncoderClear(&encoder);
56✔
9481
  return tlen;
56✔
9482
}
9483

9484
int32_t tDeserializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
30✔
9485
  SDecoder decoder = {0};
30✔
9486
  int32_t  code = 0;
30✔
9487
  int32_t  lino;
9488
  tDecoderInit(&decoder, buf, bufLen);
30✔
9489

9490
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
30!
9491
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
30!
9492
    TAOS_CHECK_EXIT(terrno);
×
9493
  }
9494
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
30!
9495
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
60!
9496
  if ((pReq->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
30!
9497
    TAOS_CHECK_EXIT(terrno);
×
9498
  }
9499
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member0Token));
30!
9500
  if ((pReq->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
30!
9501
    TAOS_CHECK_EXIT(terrno);
×
9502
  }
9503
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member1Token));
30!
9504

9505
  tEndDecode(&decoder);
30✔
9506

9507
_exit:
30✔
9508
  tDecoderClear(&decoder);
30✔
9509
  return code;
30✔
9510
}
9511

9512
void tFreeSVArbCheckSyncReq(SVArbCheckSyncReq *pRsp) {
30✔
9513
  if (NULL == pRsp) {
30!
9514
    return;
×
9515
  }
9516
  taosMemoryFreeClear(pRsp->arbToken);
30!
9517
  taosMemoryFreeClear(pRsp->member0Token);
30!
9518
  taosMemoryFreeClear(pRsp->member1Token);
30!
9519
}
9520

9521
int32_t tSerializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
14✔
9522
  SEncoder encoder = {0};
14✔
9523
  int32_t  code = 0;
14✔
9524
  int32_t  lino;
9525
  int32_t  tlen;
9526
  tEncoderInit(&encoder, buf, bufLen);
14✔
9527

9528
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
9529
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
28!
9530
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member0Token));
28!
9531
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member1Token));
28!
9532
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
28!
9533
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->errCode));
28!
9534

9535
  tEndEncode(&encoder);
14✔
9536

9537
_exit:
14✔
9538
  if (code) {
14!
9539
    tlen = code;
×
9540
  } else {
9541
    tlen = encoder.pos;
14✔
9542
  }
9543
  tEncoderClear(&encoder);
14✔
9544
  return tlen;
14✔
9545
}
9546

9547
int32_t tDeserializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
7✔
9548
  SDecoder decoder = {0};
7✔
9549
  int32_t  code = 0;
7✔
9550
  int32_t  lino;
9551
  tDecoderInit(&decoder, buf, bufLen);
7✔
9552

9553
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7!
9554
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
7!
9555
    TAOS_CHECK_EXIT(terrno);
×
9556
  }
9557
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
7!
9558
  if ((pRsp->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
7!
9559
    TAOS_CHECK_EXIT(terrno);
×
9560
  }
9561
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member0Token));
7!
9562
  if ((pRsp->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
7!
9563
    TAOS_CHECK_EXIT(terrno);
×
9564
  }
9565
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member1Token));
7!
9566
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
14!
9567
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->errCode));
14!
9568

9569
  tEndDecode(&decoder);
7✔
9570

9571
_exit:
7✔
9572
  tDecoderClear(&decoder);
7✔
9573
  return code;
7✔
9574
}
9575

9576
void tFreeSVArbCheckSyncRsp(SVArbCheckSyncRsp *pRsp) {
7✔
9577
  if (NULL == pRsp) {
7!
9578
    return;
×
9579
  }
9580
  taosMemoryFreeClear(pRsp->arbToken);
7!
9581
  taosMemoryFreeClear(pRsp->member0Token);
7!
9582
  taosMemoryFreeClear(pRsp->member1Token);
7!
9583
}
9584

9585
int32_t tSerializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
4✔
9586
  SEncoder encoder = {0};
4✔
9587
  int32_t  code = 0;
4✔
9588
  int32_t  lino;
9589
  int32_t  tlen;
9590
  tEncoderInit(&encoder, buf, bufLen);
4✔
9591

9592
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
9593
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
8!
9594
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
8!
9595
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->memberToken));
8!
9596
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
8!
9597

9598
  tEndEncode(&encoder);
4✔
9599

9600
_exit:
4✔
9601
  if (code) {
4!
9602
    tlen = code;
×
9603
  } else {
9604
    tlen = encoder.pos;
4✔
9605
  }
9606
  tEncoderClear(&encoder);
4✔
9607
  return tlen;
4✔
9608
}
9609

9610
int32_t tDeserializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
2✔
9611
  SDecoder decoder = {0};
2✔
9612
  int32_t  code = 0;
2✔
9613
  int32_t  lino;
9614
  tDecoderInit(&decoder, buf, bufLen);
2✔
9615

9616
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
9617
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
2!
9618
    TAOS_CHECK_EXIT(terrno);
×
9619
  }
9620
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
2!
9621
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
4!
9622
  if ((pReq->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
2!
9623
    TAOS_CHECK_EXIT(terrno);
×
9624
  }
9625
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->memberToken));
2!
9626
  if (!tDecodeIsEnd(&decoder)) {
2!
9627
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
4!
9628
  }
9629

9630
  tEndDecode(&decoder);
2✔
9631

9632
_exit:
2✔
9633
  tDecoderClear(&decoder);
2✔
9634
  return code;
2✔
9635
}
9636

9637
void tFreeSVArbSetAssignedLeaderReq(SVArbSetAssignedLeaderReq *pReq) {
2✔
9638
  if (NULL == pReq) {
2!
9639
    return;
×
9640
  }
9641
  taosMemoryFreeClear(pReq->arbToken);
2!
9642
  taosMemoryFreeClear(pReq->memberToken);
2!
9643
}
9644

9645
int32_t tSerializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
4✔
9646
  SEncoder encoder = {0};
4✔
9647
  int32_t  code = 0;
4✔
9648
  int32_t  lino;
9649
  int32_t  tlen;
9650
  tEncoderInit(&encoder, buf, bufLen);
4✔
9651

9652
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
9653
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
8!
9654
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->memberToken));
8!
9655
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
8!
9656

9657
  tEndEncode(&encoder);
4✔
9658

9659
_exit:
4✔
9660
  if (code) {
4!
9661
    tlen = code;
×
9662
  } else {
9663
    tlen = encoder.pos;
4✔
9664
  }
9665
  tEncoderClear(&encoder);
4✔
9666
  return tlen;
4✔
9667
}
9668

9669
int32_t tDeserializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
2✔
9670
  SDecoder decoder = {0};
2✔
9671
  int32_t  code = 0;
2✔
9672
  int32_t  lino;
9673
  tDecoderInit(&decoder, buf, bufLen);
2✔
9674

9675
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
9676
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
2!
9677
    TAOS_CHECK_EXIT(terrno);
×
9678
  }
9679
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
2!
9680
  if ((pRsp->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
2!
9681
    TAOS_CHECK_EXIT(terrno);
×
9682
  }
9683
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->memberToken));
2!
9684
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
4!
9685

9686
  tEndDecode(&decoder);
2✔
9687

9688
_exit:
2✔
9689
  tDecoderClear(&decoder);
2✔
9690
  return code;
2✔
9691
}
9692

9693
void tFreeSVArbSetAssignedLeaderRsp(SVArbSetAssignedLeaderRsp *pRsp) {
2✔
9694
  if (NULL == pRsp) {
2!
9695
    return;
×
9696
  }
9697
  taosMemoryFreeClear(pRsp->arbToken);
2!
9698
  taosMemoryFreeClear(pRsp->memberToken);
2!
9699
}
9700

9701
int32_t tSerializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
46✔
9702
  SEncoder encoder = {0};
46✔
9703
  int32_t  code = 0;
46✔
9704
  int32_t  lino;
9705
  int32_t  tlen;
9706
  tEncoderInit(&encoder, buf, bufLen);
46✔
9707

9708
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
46!
9709

9710
  int32_t sz = taosArrayGetSize(pReq->updateArray);
46✔
9711
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
46!
9712

9713
  for (int32_t i = 0; i < sz; i++) {
98✔
9714
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
52✔
9715
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->vgId));
104!
9716
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->dbUid));
104!
9717
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
156✔
9718
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->members[j].dnodeId));
208!
9719
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->members[j].token));
208!
9720
    }
9721
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->isSync));
104!
9722
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->assignedLeader.dnodeId));
104!
9723
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->assignedLeader.token));
104!
9724
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->version));
104!
9725
  }
9726

9727
  for (int32_t i = 0; i < sz; i++) {
98✔
9728
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
52✔
9729
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->assignedLeader.acked));
104!
9730
  }
9731

9732
  for (int32_t i = 0; i < sz; i++) {
98✔
9733
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
52✔
9734
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->code));
104!
9735
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->updateTimeMs));
104!
9736
  }
9737

9738
  tEndEncode(&encoder);
46✔
9739

9740
_exit:
46✔
9741
  if (code) {
46!
9742
    tlen = code;
×
9743
  } else {
9744
    tlen = encoder.pos;
46✔
9745
  }
9746
  tEncoderClear(&encoder);
46✔
9747
  return tlen;
46✔
9748
}
9749

9750
int32_t tDeserializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
23✔
9751
  SDecoder decoder = {0};
23✔
9752
  int32_t  code = 0;
23✔
9753
  int32_t  lino;
9754
  tDecoderInit(&decoder, buf, bufLen);
23✔
9755

9756
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
23!
9757
  int32_t sz = 0;
23✔
9758
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
23!
9759

9760
  SArray *updateArray = taosArrayInit(sz, sizeof(SMArbUpdateGroup));
23✔
9761
  if (!updateArray) {
23!
9762
    TAOS_CHECK_EXIT(terrno);
×
9763
  }
9764

9765
  for (int32_t i = 0; i < sz; i++) {
49✔
9766
    SMArbUpdateGroup group = {0};
26✔
9767
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.vgId));
26!
9768
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.dbUid));
26!
9769
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
78✔
9770
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.members[j].dnodeId));
104!
9771
      if ((group.members[j].token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
52!
9772
        TAOS_CHECK_EXIT(terrno);
×
9773
      }
9774
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.members[j].token));
52!
9775
    }
9776
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &group.isSync));
26!
9777
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.assignedLeader.dnodeId));
26!
9778
    if ((group.assignedLeader.token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
26!
9779
      TAOS_CHECK_EXIT(terrno);
×
9780
    }
9781
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.assignedLeader.token));
26!
9782
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.version));
26!
9783
    group.assignedLeader.acked = false;
26✔
9784

9785
    if (taosArrayPush(updateArray, &group) == NULL) {
26!
9786
      TAOS_CHECK_EXIT(terrno);
×
9787
    }
9788
  }
9789

9790
  if (!tDecodeIsEnd(&decoder)) {
23!
9791
    for (int32_t i = 0; i < sz; i++) {
49✔
9792
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
26✔
9793
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pGroup->assignedLeader.acked));
52!
9794
    }
9795
  }
9796

9797
  if (!tDecodeIsEnd(&decoder)) {
23!
9798
    for (int32_t i = 0; i < sz; i++) {
49✔
9799
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
26✔
9800
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pGroup->code));
52!
9801
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pGroup->updateTimeMs));
52!
9802
    }
9803
  }
9804

9805
  pReq->updateArray = updateArray;
23✔
9806

9807
  tEndDecode(&decoder);
23✔
9808

9809
_exit:
23✔
9810
  tDecoderClear(&decoder);
23✔
9811
  return code;
23✔
9812
}
9813

9814
void tFreeSMArbUpdateGroupBatchReq(SMArbUpdateGroupBatchReq *pReq) {
23✔
9815
  if (NULL == pReq || NULL == pReq->updateArray) {
23!
9816
    return;
×
9817
  }
9818

9819
  int32_t sz = taosArrayGetSize(pReq->updateArray);
23✔
9820
  for (int32_t i = 0; i < sz; i++) {
49✔
9821
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
26✔
9822
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
78✔
9823
      taosMemoryFreeClear(pGroup->members[j].token);
52!
9824
    }
9825
    taosMemoryFreeClear(pGroup->assignedLeader.token);
26!
9826
  }
9827
  taosArrayDestroy(pReq->updateArray);
23✔
9828
}
9829

9830
int32_t tSerializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
8✔
9831
  SEncoder encoder = {0};
8✔
9832
  int32_t  code = 0;
8✔
9833
  int32_t  lino;
9834
  int32_t  tlen;
9835
  tEncoderInit(&encoder, buf, bufLen);
8✔
9836

9837
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
9838
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusCode));
16!
9839
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->details));
16!
9840

9841
  tEndEncode(&encoder);
8✔
9842

9843
_exit:
8✔
9844
  if (code) {
8!
9845
    tlen = code;
×
9846
  } else {
9847
    tlen = encoder.pos;
8✔
9848
  }
9849
  tEncoderClear(&encoder);
8✔
9850
  return tlen;
8✔
9851
}
9852

9853
int32_t tDeserializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
3✔
9854
  SDecoder decoder = {0};
3✔
9855
  int32_t  code = 0;
3✔
9856
  int32_t  lino;
9857
  tDecoderInit(&decoder, buf, bufLen);
3✔
9858

9859
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
9860
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusCode));
6!
9861
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->details));
3!
9862

9863
  tEndDecode(&decoder);
3✔
9864
_exit:
3✔
9865
  tDecoderClear(&decoder);
3✔
9866
  return code;
3✔
9867
}
9868

9869
int32_t tSerializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
2,059,152✔
9870
  SEncoder encoder = {0};
2,059,152✔
9871
  int32_t  code = 0;
2,059,152✔
9872
  int32_t  lino;
9873
  int32_t  tlen;
9874
  tEncoderInit(&encoder, buf, bufLen);
2,059,152✔
9875

9876
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,059,438!
9877
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfPlans));
4,118,738!
9878
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
6,871,504✔
9879
    SExplainExecInfo *info = &pRsp->subplanInfo[i];
4,812,135✔
9880
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->startupCost));
9,624,270!
9881
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->totalCost));
9,624,270!
9882
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, info->numOfRows));
9,624,270!
9883
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, info->verboseLen));
9,624,270!
9884
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, info->verboseInfo, info->verboseLen));
9,624,270!
9885
  }
9886

9887
  tEndEncode(&encoder);
2,059,369✔
9888

9889
_exit:
2,059,309✔
9890
  if (code) {
2,059,309!
9891
    tlen = code;
×
9892
  } else {
9893
    tlen = encoder.pos;
2,059,309✔
9894
  }
9895
  tEncoderClear(&encoder);
2,059,309✔
9896
  return tlen;
2,059,382✔
9897
}
9898

9899
int32_t tDeserializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
4,195✔
9900
  SDecoder decoder = {0};
4,195✔
9901
  int32_t  code = 0;
4,195✔
9902
  int32_t  lino;
9903
  tDecoderInit(&decoder, buf, bufLen);
4,195✔
9904

9905
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,195✔
9906
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfPlans));
8,370!
9907
  if (pRsp->numOfPlans > 0) {
4,185!
9908
    pRsp->subplanInfo = taosMemoryCalloc(pRsp->numOfPlans, sizeof(SExplainExecInfo));
4,185!
9909
    if (pRsp->subplanInfo == NULL) {
4,185!
9910
      TAOS_CHECK_EXIT(terrno);
×
9911
    }
9912
  }
9913
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
14,040✔
9914
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].startupCost));
19,710!
9915
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].totalCost));
19,709!
9916
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->subplanInfo[i].numOfRows));
19,708!
9917
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->subplanInfo[i].verboseLen));
19,709!
9918
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &pRsp->subplanInfo[i].verboseInfo, NULL));
19,710!
9919
  }
9920

9921
  tEndDecode(&decoder);
4,185✔
9922

9923
_exit:
4,195✔
9924
  tDecoderClear(&decoder);
4,195✔
9925
  return code;
4,195✔
9926
}
9927

9928
void tFreeSExplainRsp(SExplainRsp *pRsp) {
4,195✔
9929
  if (NULL == pRsp) {
4,195!
9930
    return;
×
9931
  }
9932

9933
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
14,052✔
9934
    SExplainExecInfo *pExec = pRsp->subplanInfo + i;
9,857✔
9935
    taosMemoryFree(pExec->verboseInfo);
9,857!
9936
  }
9937

9938
  taosMemoryFreeClear(pRsp->subplanInfo);
4,195!
9939
}
9940

9941
int32_t tSerializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
161,952✔
9942
  int32_t code = 0;
161,952✔
9943
  int32_t lino;
9944
  int32_t headLen = sizeof(SMsgHead);
161,952✔
9945
  if (buf != NULL) {
161,952✔
9946
    buf = (char *)buf + headLen;
81,005✔
9947
    bufLen -= headLen;
81,005✔
9948
  }
9949

9950
  SEncoder encoder = {0};
161,952✔
9951
  tEncoderInit(&encoder, buf, bufLen);
161,952✔
9952
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
162,004!
9953

9954
  int32_t num = taosArrayGetSize(pReq->pMsgs);
162,001✔
9955
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
161,983!
9956
  for (int32_t i = 0; i < num; ++i) {
361,673✔
9957
    SBatchMsg *pMsg = taosArrayGet(pReq->pMsgs, i);
199,707✔
9958
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
399,380!
9959
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgType));
399,380!
9960
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
399,380!
9961
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
399,380!
9962
  }
9963

9964
  tEndEncode(&encoder);
161,966✔
9965

9966
_exit:
161,984✔
9967
  if (code) {
161,984!
9968
    tEncoderClear(&encoder);
×
9969
    return code;
×
9970
  } else {
9971
    int32_t tlen = encoder.pos;
161,984✔
9972
    tEncoderClear(&encoder);
161,984✔
9973

9974
    if (buf != NULL) {
161,992✔
9975
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
81,020✔
9976
      pHead->vgId = htonl(pReq->header.vgId);
81,020✔
9977
      pHead->contLen = htonl(tlen + headLen);
81,020✔
9978
    }
9979

9980
    return tlen + headLen;
161,992✔
9981
  }
9982
}
9983

9984
int32_t tDeserializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
5,964,248✔
9985
  int32_t   headLen = sizeof(SMsgHead);
5,964,248✔
9986
  int32_t   code = 0;
5,964,248✔
9987
  int32_t   lino;
9988
  SMsgHead *pHead = buf;
5,964,248✔
9989
  pHead->vgId = pReq->header.vgId;
5,964,248✔
9990
  pHead->contLen = pReq->header.contLen;
5,964,248✔
9991

9992
  SDecoder decoder = {0};
5,964,248✔
9993
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
5,964,248✔
9994

9995
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,962,306!
9996

9997
  int32_t num = 0;
5,965,292✔
9998
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
5,964,964!
9999
  if (num <= 0) {
5,964,964!
10000
    pReq->pMsgs = NULL;
×
10001
    tEndDecode(&decoder);
×
10002
    tDecoderClear(&decoder);
×
10003
    return 0;
295✔
10004
  }
10005

10006
  pReq->pMsgs = taosArrayInit(num, sizeof(SBatchMsg));
5,964,964✔
10007
  if (NULL == pReq->pMsgs) {
5,964,888!
10008
    TAOS_CHECK_EXIT(terrno);
×
10009
  }
10010
  for (int32_t i = 0; i < num; ++i) {
23,997,399✔
10011
    SBatchMsg msg = {0};
18,034,738✔
10012
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
18,035,583!
10013
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgType));
18,035,458!
10014
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
18,035,681!
10015
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
18,034,425!
10016
    if (NULL == taosArrayPush(pReq->pMsgs, &msg)) {
36,066,921!
10017
      TAOS_CHECK_EXIT(terrno);
×
10018
    }
10019
  }
10020

10021
  tEndDecode(&decoder);
5,962,661✔
10022

10023
_exit:
5,963,899✔
10024
  tDecoderClear(&decoder);
5,963,899✔
10025
  return code;
5,965,085✔
10026
}
10027

10028
int32_t tSerializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
11,930,275✔
10029
  SEncoder encoder = {0};
11,930,275✔
10030
  int32_t  code = 0;
11,930,275✔
10031
  int32_t  lino;
10032
  int32_t  tlen;
10033
  tEncoderInit(&encoder, buf, bufLen);
11,930,275✔
10034
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,930,374!
10035

10036
  int32_t num = taosArrayGetSize(pRsp->pRsps);
11,930,784✔
10037
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
11,929,520!
10038
  for (int32_t i = 0; i < num; ++i) {
47,971,499✔
10039
    SBatchRspMsg *pMsg = taosArrayGet(pRsp->pRsps, i);
36,072,502✔
10040
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->reqType));
72,083,958!
10041
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
72,083,958!
10042
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
72,083,958!
10043
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->rspCode));
72,083,958!
10044
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
72,083,958!
10045
  }
10046

10047
  tEndEncode(&encoder);
11,898,997✔
10048

10049
_exit:
11,931,416✔
10050
  if (code) {
11,931,416!
10051
    tlen = code;
×
10052
  } else {
10053
    tlen = encoder.pos;
11,931,416✔
10054
  }
10055
  tEncoderClear(&encoder);
11,931,416✔
10056
  return tlen;
11,931,310✔
10057
}
10058

10059
int32_t tDeserializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
80,312✔
10060
  SDecoder decoder = {0};
80,312✔
10061
  int32_t  code = 0;
80,312✔
10062
  int32_t  lino;
10063
  tDecoderInit(&decoder, (char *)buf, bufLen);
80,312✔
10064

10065
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
80,311!
10066

10067
  int32_t num = 0;
80,311✔
10068
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
80,312!
10069
  if (num <= 0) {
80,312!
10070
    pRsp->pRsps = NULL;
×
10071
    tEndDecode(&decoder);
×
10072

10073
    tDecoderClear(&decoder);
×
10074
    return 0;
3✔
10075
  }
10076

10077
  pRsp->pRsps = taosArrayInit(num, sizeof(SBatchRspMsg));
80,312✔
10078
  if (NULL == pRsp->pRsps) {
80,310!
10079
    TAOS_CHECK_EXIT(terrno);
×
10080
  }
10081
  for (int32_t i = 0; i < num; ++i) {
179,496✔
10082
    SBatchRspMsg msg = {0};
99,189✔
10083
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.reqType));
99,186!
10084
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
99,186!
10085
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
99,183!
10086
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.rspCode));
99,182!
10087
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
99,187!
10088
    if (NULL == taosArrayPush(pRsp->pRsps, &msg)) {
198,373!
10089
      TAOS_CHECK_EXIT(terrno);
×
10090
    }
10091
  }
10092

10093
  tEndDecode(&decoder);
80,307✔
10094

10095
_exit:
80,305✔
10096
  tDecoderClear(&decoder);
80,305✔
10097
  return code;
80,308✔
10098
}
10099

10100
int32_t tSerializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
3,150✔
10101
  SEncoder encoder = {0};
3,150✔
10102
  int32_t  code = 0;
3,150✔
10103
  int32_t  lino;
10104
  int32_t  tlen;
10105
  tEncoderInit(&encoder, buf, bufLen);
3,150✔
10106

10107
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,150!
10108
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
6,300!
10109
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
6,300!
10110
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
6,300!
10111

10112
  tEndEncode(&encoder);
3,150✔
10113

10114
_exit:
3,150✔
10115
  if (code) {
3,150!
10116
    tlen = code;
×
10117
  } else {
10118
    tlen = encoder.pos;
3,150✔
10119
  }
10120
  tEncoderClear(&encoder);
3,150✔
10121
  return tlen;
3,150✔
10122
}
10123

10124
int32_t tDeserializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
10,796✔
10125
  SDecoder decoder = {0};
10,796✔
10126
  int32_t  code = 0;
10,796✔
10127
  int32_t  lino;
10128
  tDecoderInit(&decoder, (char *)buf, bufLen);
10,796✔
10129

10130
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,796!
10131

10132
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
21,592!
10133
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
21,592!
10134
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
10,796!
10135

10136
  tEndDecode(&decoder);
10,796✔
10137

10138
_exit:
10,796✔
10139
  tDecoderClear(&decoder);
10,796✔
10140
  return code;
10,796✔
10141
}
10142

10143
void tDestroySMqHbRsp(SMqHbRsp *pRsp) { taosArrayDestroy(pRsp->topicPrivileges); }
2,893✔
10144

10145
int32_t tSerializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
4,850✔
10146
  SEncoder encoder = {0};
4,850✔
10147
  int32_t  code = 0;
4,850✔
10148
  int32_t  lino;
10149
  int32_t  tlen;
10150
  tEncoderInit(&encoder, buf, bufLen);
4,850✔
10151
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,850!
10152

10153
  int32_t sz = taosArrayGetSize(pRsp->topicPrivileges);
4,850✔
10154
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
4,850!
10155
  for (int32_t i = 0; i < sz; ++i) {
9,252✔
10156
    STopicPrivilege *privilege = (STopicPrivilege *)taosArrayGet(pRsp->topicPrivileges, i);
4,402✔
10157
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, privilege->topic));
8,804!
10158
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, privilege->noPrivilege));
8,804!
10159
  }
10160

10161
  if (tEncodeI32(&encoder, pRsp->debugFlag) < 0) return -1;
9,700!
10162
  tEndEncode(&encoder);
4,850✔
10163

10164
_exit:
4,850✔
10165
  if (code) {
4,850!
10166
    tlen = code;
×
10167
  } else {
10168
    tlen = encoder.pos;
4,850✔
10169
  }
10170
  tEncoderClear(&encoder);
4,850✔
10171
  return tlen;
4,850✔
10172
}
10173

10174
int32_t tDeserializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
454✔
10175
  SDecoder decoder = {0};
454✔
10176
  int32_t  code = 0;
454✔
10177
  int32_t  lino;
10178
  tDecoderInit(&decoder, (char *)buf, bufLen);
454✔
10179

10180
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
454!
10181

10182
  int32_t sz = 0;
454✔
10183
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
454!
10184
  if (sz > 0) {
454✔
10185
    pRsp->topicPrivileges = taosArrayInit(sz, sizeof(STopicPrivilege));
335✔
10186
    if (NULL == pRsp->topicPrivileges) {
335!
10187
      TAOS_CHECK_EXIT(terrno);
×
10188
    }
10189
    for (int32_t i = 0; i < sz; ++i) {
783✔
10190
      STopicPrivilege *data = taosArrayReserve(pRsp->topicPrivileges, 1);
448✔
10191
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topic));
448!
10192
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &data->noPrivilege));
896!
10193
    }
10194
  }
10195

10196
  if (!tDecodeIsEnd(&decoder)) {
454!
10197
    if (tDecodeI32(&decoder, &pRsp->debugFlag) < 0) return -1;
908!
10198
  }
10199
  tEndDecode(&decoder);
454✔
10200

10201
_exit:
454✔
10202
  tDecoderClear(&decoder);
454✔
10203
  return code;
454✔
10204
}
10205

10206
void tDestroySMqHbReq(SMqHbReq *pReq) {
2,903✔
10207
  for (int i = 0; i < taosArrayGetSize(pReq->topics); i++) {
5,597✔
10208
    TopicOffsetRows *vgs = taosArrayGet(pReq->topics, i);
2,694✔
10209
    if (vgs) taosArrayDestroy(vgs->offsetRows);
2,694!
10210
  }
10211
  taosArrayDestroy(pReq->topics);
2,903✔
10212
}
2,903✔
10213

10214
int32_t tSerializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
928✔
10215
  SEncoder encoder = {0};
928✔
10216
  int32_t  code = 0;
928✔
10217
  int32_t  lino;
10218
  int32_t  tlen;
10219
  tEncoderInit(&encoder, buf, bufLen);
928✔
10220
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
928!
10221

10222
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
1,856!
10223
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
1,856!
10224

10225
  int32_t sz = taosArrayGetSize(pReq->topics);
928✔
10226
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
928!
10227
  for (int32_t i = 0; i < sz; ++i) {
1,862✔
10228
    TopicOffsetRows *vgs = (TopicOffsetRows *)taosArrayGet(pReq->topics, i);
934✔
10229
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, vgs->topicName));
1,868!
10230
    int32_t szVgs = taosArrayGetSize(vgs->offsetRows);
934✔
10231
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, szVgs));
934!
10232
    for (int32_t j = 0; j < szVgs; ++j) {
2,732✔
10233
      OffsetRows *offRows = taosArrayGet(vgs->offsetRows, j);
1,798✔
10234
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, offRows->vgId));
3,596!
10235
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->rows));
3,596!
10236
      TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &offRows->offset));
1,798!
10237
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->ever));
3,596!
10238
    }
10239
  }
10240

10241
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->pollFlag));
1,856!
10242
  tEndEncode(&encoder);
928✔
10243

10244
_exit:
928✔
10245
  if (code) {
928!
10246
    tlen = code;
×
10247
  } else {
10248
    tlen = encoder.pos;
928✔
10249
  }
10250
  tEncoderClear(&encoder);
928✔
10251
  return tlen;
928✔
10252
}
10253

10254
int32_t tDeserializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
2,439✔
10255
  int32_t  code = 0;
2,439✔
10256
  int32_t  lino;
10257
  SDecoder decoder = {0};
2,439✔
10258
  tDecoderInit(&decoder, (char *)buf, bufLen);
2,439✔
10259

10260
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,439!
10261

10262
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
4,878!
10263
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
4,878!
10264
  int32_t sz = 0;
2,439✔
10265
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
2,439!
10266
  if (sz > 0) {
2,439✔
10267
    pReq->topics = taosArrayInit(sz, sizeof(TopicOffsetRows));
2,102✔
10268
    if (NULL == pReq->topics) {
2,102!
10269
      TAOS_CHECK_EXIT(terrno);
×
10270
    }
10271
    for (int32_t i = 0; i < sz; ++i) {
4,329✔
10272
      TopicOffsetRows *data = taosArrayReserve(pReq->topics, 1);
2,227✔
10273
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topicName));
2,227!
10274
      int32_t szVgs = 0;
2,227✔
10275
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &szVgs));
2,227!
10276
      if (szVgs > 0) {
2,227✔
10277
        data->offsetRows = taosArrayInit(szVgs, sizeof(OffsetRows));
2,195✔
10278
        if (NULL == data->offsetRows) {
2,195!
10279
          TAOS_CHECK_EXIT(terrno);
×
10280
        }
10281
        for (int32_t j = 0; j < szVgs; ++j) {
7,102✔
10282
          OffsetRows *offRows = taosArrayReserve(data->offsetRows, 1);
4,907✔
10283
          TAOS_CHECK_EXIT(tDecodeI32(&decoder, &offRows->vgId));
9,814!
10284
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->rows));
9,814!
10285
          TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &offRows->offset));
4,907!
10286
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->ever));
9,814!
10287
        }
10288
      }
10289
    }
10290
  }
10291
  if (!tDecodeIsEnd(&decoder)) {
2,439!
10292
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->pollFlag));
4,878!
10293
  }
10294
  tEndDecode(&decoder);
2,439✔
10295

10296
_exit:
2,439✔
10297
  tDecoderClear(&decoder);
2,439✔
10298
  return code;
2,439✔
10299
}
10300

10301
int32_t tSerializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
4✔
10302
  int32_t code = 0;
4✔
10303
  int32_t lino;
10304
  int32_t headLen = sizeof(SMsgHead);
4✔
10305
  if (buf != NULL) {
4✔
10306
    buf = (char *)buf + headLen;
2✔
10307
    bufLen -= headLen;
2✔
10308
  }
10309
  SEncoder encoder = {0};
4✔
10310
  tEncoderInit(&encoder, buf, bufLen);
4✔
10311
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
10312
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
8!
10313
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
8!
10314
  tEndEncode(&encoder);
4✔
10315

10316
_exit:
4✔
10317
  if (code) {
4!
10318
    tEncoderClear(&encoder);
×
10319
    return code;
×
10320
  } else {
10321
    int32_t tlen = encoder.pos;
4✔
10322
    tEncoderClear(&encoder);
4✔
10323

10324
    if (buf != NULL) {
4✔
10325
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
2✔
10326
      pHead->vgId = htonl(pReq->head.vgId);
2✔
10327
      pHead->contLen = htonl(tlen + headLen);
2✔
10328
    }
10329

10330
    return tlen + headLen;
4✔
10331
  }
10332
}
10333

10334
int32_t tDeserializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
6✔
10335
  int32_t  code = 0;
6✔
10336
  int32_t  lino;
10337
  int32_t  headLen = sizeof(SMsgHead);
6✔
10338
  SDecoder decoder = {0};
6✔
10339
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
6✔
10340

10341
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
10342
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
12!
10343
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
6!
10344

10345
  tEndDecode(&decoder);
6✔
10346

10347
_exit:
6✔
10348
  tDecoderClear(&decoder);
6✔
10349
  return code;
6✔
10350
}
10351

10352
int32_t tSerializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
534,727✔
10353
  int32_t code = 0;
534,727✔
10354
  int32_t lino;
10355
  int32_t headLen = sizeof(SMsgHead);
534,727✔
10356
  if (buf != NULL) {
534,727✔
10357
    buf = (char *)buf + headLen;
267,412✔
10358
    bufLen -= headLen;
267,412✔
10359
  }
10360

10361
  SEncoder encoder = {0};
534,727✔
10362
  tEncoderInit(&encoder, buf, bufLen);
534,727✔
10363
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
534,813!
10364

10365
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
1,069,662!
10366
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
1,069,662!
10367
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
1,069,662!
10368
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
1,069,662!
10369
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
1,069,662!
10370
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->msgMask));
1,069,662!
10371
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->taskType));
1,069,662!
10372
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->explain));
1,069,662!
10373
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->needFetch));
1,069,662!
10374
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compress));
1,069,662!
10375
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
1,069,662!
10376
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->sql, pReq->sqlLen));
1,069,662!
10377
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->msgLen));
1,069,662!
10378
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (uint8_t *)pReq->msg, pReq->msgLen));
1,069,662!
10379
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
1,069,662!
10380

10381
  tEndEncode(&encoder);
534,831✔
10382

10383
_exit:
534,812✔
10384
  if (code) {
534,812!
10385
    tEncoderClear(&encoder);
×
10386
    return code;
×
10387
  } else {
10388
    int32_t tlen = encoder.pos;
534,812✔
10389
    tEncoderClear(&encoder);
534,812✔
10390

10391
    if (buf != NULL) {
534,811✔
10392
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
267,442✔
10393
      pHead->vgId = htonl(pReq->header.vgId);
267,442✔
10394
      pHead->contLen = htonl(tlen + headLen);
267,442✔
10395
    }
10396

10397
    return tlen + headLen;
534,811✔
10398
  }
10399
}
10400

10401
int32_t tDeserializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
27,610,049✔
10402
  int32_t   code = 0;
27,610,049✔
10403
  int32_t   lino;
10404
  int32_t   headLen = sizeof(SMsgHead);
27,610,049✔
10405
  SMsgHead *pHead = buf;
27,610,049✔
10406
  pHead->vgId = pReq->header.vgId;
27,610,049✔
10407
  pHead->contLen = pReq->header.contLen;
27,610,049✔
10408

10409
  SDecoder decoder = {0};
27,610,049✔
10410
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
27,610,049✔
10411

10412
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
27,609,342!
10413

10414
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
55,271,157!
10415
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
55,262,736!
10416
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
55,249,059!
10417
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
55,230,907!
10418
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
55,225,872!
10419
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->msgMask));
55,233,229!
10420
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->taskType));
55,233,228!
10421
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->explain));
55,230,237!
10422
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->needFetch));
55,231,668!
10423
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compress));
55,227,961!
10424
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
55,220,030!
10425
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
55,249,884!
10426
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->msgLen));
55,257,044!
10427
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, NULL));
55,258,584!
10428
  if (!tDecodeIsEnd(&decoder)) {
27,643,854✔
10429
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
55,229,189!
10430
  } else {
10431
    pReq->clientId = 0;
37,063✔
10432
  }
10433

10434
  tEndDecode(&decoder);
27,659,461✔
10435

10436
_exit:
27,620,463✔
10437
  tDecoderClear(&decoder);
27,620,463✔
10438
  return code;
27,636,194✔
10439
}
10440

10441
void tFreeSSubQueryMsg(SSubQueryMsg *pReq) {
27,625,228✔
10442
  if (NULL == pReq) {
27,625,228!
10443
    return;
×
10444
  }
10445

10446
  taosMemoryFreeClear(pReq->sql);
27,625,228!
10447
  taosMemoryFreeClear(pReq->msg);
27,627,179!
10448
}
10449

10450
int32_t tSerializeSOperatorParam(SEncoder *pEncoder, SOperatorParam *pOpParam) {
2,902✔
10451
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->opType));
5,804!
10452
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->downstreamIdx));
5,804!
10453
  switch (pOpParam->opType) {
2,902!
10454
    case QUERY_NODE_PHYSICAL_PLAN_TAG_SCAN: {
×
10455
      STagScanOperatorParam *pTagScan = (STagScanOperatorParam *)pOpParam->value;
×
10456
      TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pTagScan->vcUid));
×
10457
      break;
×
10458
    }
10459
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
2,902✔
10460
      STableScanOperatorParam *pScan = (STableScanOperatorParam *)pOpParam->value;
2,902✔
10461
      TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pScan->tableSeq));
5,804!
10462
      int32_t uidNum = taosArrayGetSize(pScan->pUidList);
2,902✔
10463
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, uidNum));
2,902!
10464
      for (int32_t m = 0; m < uidNum; ++m) {
115,532✔
10465
        int64_t *pUid = taosArrayGet(pScan->pUidList, m);
112,630✔
10466
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, *pUid));
225,260!
10467
      }
10468
      if (pScan->pOrgTbInfo) {
2,902!
10469
        TAOS_CHECK_RETURN(tEncodeBool(pEncoder, true));
×
10470
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pScan->pOrgTbInfo->vgId));
×
10471
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pScan->pOrgTbInfo->tbName));
×
10472
        int32_t num = taosArrayGetSize(pScan->pOrgTbInfo->colMap);
×
10473
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
×
10474
        for (int32_t i = 0; i < num; ++i) {
×
10475
          SColIdNameKV *pColKV = taosArrayGet(pScan->pOrgTbInfo->colMap, i);
×
10476
          TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pColKV->colId));
×
10477
          TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pColKV->colName));
×
10478
        }
10479
      } else {
10480
        TAOS_CHECK_RETURN(tEncodeBool(pEncoder, false));
2,902!
10481
      }
10482
      TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pScan->window.skey));
5,804!
10483
      TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pScan->window.ekey));
5,804!
10484
      break;
2,902✔
10485
    }
10486
    default:
×
10487
      return TSDB_CODE_INVALID_PARA;
×
10488
  }
10489

10490
  int32_t n = taosArrayGetSize(pOpParam->pChildren);
2,902✔
10491
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, n));
2,902!
10492
  for (int32_t i = 0; i < n; ++i) {
2,902!
10493
    SOperatorParam *pChild = *(SOperatorParam **)taosArrayGet(pOpParam->pChildren, i);
×
10494
    TAOS_CHECK_RETURN(tSerializeSOperatorParam(pEncoder, pChild));
×
10495
  }
10496

10497
  TAOS_CHECK_RETURN(tEncodeBool(pEncoder, pOpParam->reUse));
2,902!
10498
  return 0;
2,902✔
10499
}
10500

10501
int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam *pOpParam) {
1,579✔
10502
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->opType));
3,158!
10503
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->downstreamIdx));
3,157!
10504
  switch (pOpParam->opType) {
1,578!
10505
    case QUERY_NODE_PHYSICAL_PLAN_TAG_SCAN: {
×
10506
      pOpParam->value = taosMemoryMalloc(sizeof(STagScanOperatorParam));
×
10507
      if (NULL == pOpParam->value) {
×
10508
        TAOS_CHECK_RETURN(terrno);
×
10509
      }
10510
      STagScanOperatorParam *pTagScan = pOpParam->value;
×
10511
      TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pTagScan->vcUid));
×
10512
      break;
×
10513
    }
10514
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
1,579✔
10515
      pOpParam->value = taosMemoryMalloc(sizeof(STableScanOperatorParam));
1,579!
10516
      if (NULL == pOpParam->value) {
1,579!
10517
        TAOS_CHECK_RETURN(terrno);
×
10518
      }
10519
      STableScanOperatorParam *pScan = pOpParam->value;
1,579✔
10520
      TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&pScan->tableSeq));
3,158!
10521
      int32_t uidNum = 0;
1,579✔
10522
      int64_t uid = 0;
1,579✔
10523
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &uidNum));
1,579!
10524
      if (uidNum > 0) {
1,579!
10525
        pScan->pUidList = taosArrayInit(uidNum, sizeof(int64_t));
1,579✔
10526
        if (NULL == pScan->pUidList) {
1,578!
10527
          TAOS_CHECK_RETURN(terrno);
×
10528
        }
10529

10530
        for (int32_t m = 0; m < uidNum; ++m) {
65,873✔
10531
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &uid));
64,311!
10532
          if (taosArrayPush(pScan->pUidList, &uid) == NULL) {
128,617!
10533
            TAOS_CHECK_RETURN(terrno);
×
10534
          }
10535
        }
10536
      } else {
10537
        pScan->pUidList = NULL;
×
10538
      }
10539

10540
      bool hasTbInfo = false;
1,561✔
10541
      TAOS_CHECK_RETURN(tDecodeBool(pDecoder, &hasTbInfo));
1,561!
10542
      if (hasTbInfo) {
1,578!
10543
        pScan->pOrgTbInfo = taosMemoryMalloc(sizeof(SOrgTbInfo));
×
10544
        if (NULL == pScan->pOrgTbInfo) {
×
10545
          TAOS_CHECK_RETURN(terrno);
×
10546
        }
10547
        TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pScan->pOrgTbInfo->vgId));
×
10548
        TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pScan->pOrgTbInfo->tbName));
×
10549
        int32_t num = 0;
×
10550
        TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &num));
×
10551
        pScan->pOrgTbInfo->colMap = taosArrayInit(num, sizeof(SColIdNameKV));
×
10552
        for (int32_t i = 0; i < num; ++i) {
×
10553
          SColIdNameKV pColKV;
10554
          TAOS_CHECK_RETURN(tDecodeI16(pDecoder, (int16_t *)&(pColKV.colId)));
×
10555
          TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pColKV.colName));
×
10556
          if (taosArrayPush(pScan->pOrgTbInfo->colMap, &pColKV) == NULL) {
×
10557
            TAOS_CHECK_RETURN(terrno);
×
10558
          }
10559
        }
10560
      } else {
10561
        pScan->pOrgTbInfo = NULL;
1,578✔
10562
      }
10563
      TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pScan->window.skey));
3,156!
10564
      TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pScan->window.ekey));
3,156!
10565
      break;
1,578✔
10566
    }
10567
    default:
×
10568
      return TSDB_CODE_INVALID_PARA;
×
10569
  }
10570

10571
  int32_t childrenNum = 0;
1,578✔
10572
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &childrenNum));
1,578!
10573

10574
  if (childrenNum > 0) {
1,578!
10575
    pOpParam->pChildren = taosArrayInit(childrenNum, POINTER_BYTES);
×
10576
    if (NULL == pOpParam->pChildren) {
×
10577
      TAOS_CHECK_RETURN(terrno);
×
10578
    }
10579
    for (int32_t i = 0; i < childrenNum; ++i) {
×
10580
      SOperatorParam *pChild = taosMemoryCalloc(1, sizeof(SOperatorParam));
×
10581
      if (NULL == pChild) {
×
10582
        TAOS_CHECK_RETURN(terrno);
×
10583
      }
10584
      TAOS_CHECK_RETURN(tDeserializeSOperatorParam(pDecoder, pChild));
×
10585
      if (taosArrayPush(pOpParam->pChildren, &pChild) == NULL) {
×
10586
        TAOS_CHECK_RETURN(terrno);
×
10587
      }
10588
    }
10589
  } else {
10590
    pOpParam->pChildren = NULL;
1,578✔
10591
  }
10592

10593
  if (!tDecodeIsEnd(pDecoder)) {
1,578!
10594
    TAOS_CHECK_RETURN(tDecodeBool(pDecoder, &pOpParam->reUse));
1,578!
10595
  } else {
10596
    pOpParam->reUse = false;
×
10597
  }
10598

10599
  return 0;
1,577✔
10600
}
10601

10602
int32_t tSerializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
19,253,497✔
10603
  int32_t code = 0;
19,253,497✔
10604
  int32_t lino;
10605
  int32_t headLen = sizeof(SMsgHead);
19,253,497✔
10606
  if (buf != NULL) {
19,253,497✔
10607
    buf = (char *)buf + headLen;
9,627,678✔
10608
    bufLen -= headLen;
9,627,678✔
10609
  }
10610

10611
  SEncoder encoder = {0};
19,253,497✔
10612
  tEncoderInit(&encoder, buf, bufLen);
19,253,497✔
10613
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
19,253,825!
10614

10615
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
38,509,462!
10616
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
38,509,462!
10617
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
38,509,462!
10618
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
38,509,462!
10619
  if (pReq->pOpParam) {
19,254,731✔
10620
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 1));
2,902!
10621
    TAOS_CHECK_EXIT(tSerializeSOperatorParam(&encoder, pReq->pOpParam));
2,902!
10622
  } else {
10623
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
19,251,829!
10624
  }
10625
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
38,509,462!
10626
  if (pReq->pStRtFuncInfo) {
19,254,731✔
10627
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 1));
45,180!
10628
    TAOS_CHECK_EXIT(tSerializeStRtFuncInfo(&encoder, pReq->pStRtFuncInfo));
45,180!
10629
  } else {
10630
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
19,209,551!
10631
  }
10632
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->reset));
19,254,728!
10633
  TAOS_CHECK_EXIT(tEncodeBool(&encoder, pReq->dynTbname));
19,254,451!
10634

10635
  tEndEncode(&encoder);
19,254,113✔
10636

10637
_exit:
19,254,391✔
10638
  if (code) {
19,254,391!
10639
    tEncoderClear(&encoder);
×
10640
    return code;
×
10641
  } else {
10642
    int32_t tlen = encoder.pos;
19,254,391✔
10643
    tEncoderClear(&encoder);
19,254,391✔
10644

10645
    if (buf != NULL) {
19,252,383✔
10646
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
9,627,258✔
10647
      pHead->vgId = htonl(pReq->header.vgId);
9,627,258✔
10648
      pHead->contLen = htonl(tlen + headLen);
9,627,258✔
10649
    }
10650

10651
    return tlen + headLen;
19,252,383✔
10652
  }
10653
}
10654

10655
int32_t tDeserializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
17,802,995✔
10656
  int32_t code = 0;
17,802,995✔
10657
  int32_t lino;
10658
  int32_t headLen = sizeof(SMsgHead);
17,802,995✔
10659

10660
  SMsgHead *pHead = buf;
17,802,995✔
10661
  pHead->vgId = pReq->header.vgId;
17,802,995✔
10662
  pHead->contLen = pReq->header.contLen;
17,802,995✔
10663

10664
  SDecoder decoder = {0};
17,802,995✔
10665
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
17,802,995✔
10666

10667
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
17,791,253!
10668

10669
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
35,611,814!
10670
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
35,607,848!
10671
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
35,601,326!
10672
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
35,596,314!
10673

10674
  int32_t paramNum = 0;
17,798,015✔
10675
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &paramNum));
17,798,798!
10676
  if (paramNum > 0) {
17,798,798✔
10677
    pReq->pOpParam = taosMemoryMalloc(sizeof(*pReq->pOpParam));
1,579!
10678
    if (NULL == pReq->pOpParam) {
1,579!
10679
      TAOS_CHECK_EXIT(terrno);
×
10680
    }
10681
    TAOS_CHECK_EXIT(tDeserializeSOperatorParam(&decoder, pReq->pOpParam));
1,579!
10682
  }
10683
  if (!tDecodeIsEnd(&decoder)) {
17,798,796✔
10684
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
35,584,891!
10685
  } else {
10686
    pReq->clientId = 0;
7,724✔
10687
  }
10688
  if (!tDecodeIsEnd(&decoder)) {
17,801,543✔
10689
    int32_t hasStRtFuncInfo = 0;
17,796,733✔
10690
    TAOS_CHECK_ERRNO(tDecodeI32(&decoder, &hasStRtFuncInfo));
35,592,187✔
10691
    if (hasStRtFuncInfo > 0) {
17,784,142✔
10692
      pReq->pStRtFuncInfo = taosMemoryCalloc(1, sizeof(SStreamRuntimeFuncInfo));;
24,154!
10693
      if (NULL == pReq->pStRtFuncInfo) {
24,155!
10694
        TAOS_CHECK_EXIT(terrno);
×
10695
      }
10696
      TAOS_CHECK_EXIT(tDeserializeStRtFuncInfo(&decoder, pReq->pStRtFuncInfo));
24,155!
10697
    }
10698
  }
10699
  if (!tDecodeIsEnd(&decoder)) {
17,788,952!
10700
    TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->reset));
17,792,359!
10701
    TAOS_CHECK_EXIT(tDecodeBool(&decoder, &pReq->dynTbname));
17,795,548!
10702
  }
10703

10704
  tEndDecode(&decoder);
17,790,812✔
10705

10706
_exit:
17,786,429✔
10707
  tDecoderClear(&decoder);
17,786,429✔
10708
  return code;
17,802,705✔
10709
}
10710

10711
void    tDestroySResFetchReq(SResFetchReq* pReq){
24,155✔
10712
  if (pReq != NULL) {
24,155!
10713
    tDestroyStRtFuncInfo(pReq->pStRtFuncInfo);
24,155✔
10714
    taosMemoryFree(pReq->pStRtFuncInfo);
24,155!
10715
  }
10716
}
24,155✔
10717

10718
int32_t tSerializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
2,220✔
10719
  int32_t headLen = sizeof(SMsgHead);
2,220✔
10720
  int32_t code = 0;
2,220✔
10721
  int32_t lino;
10722
  if (buf != NULL) {
2,220✔
10723
    buf = (char *)buf + headLen;
1,110✔
10724
    bufLen -= headLen;
1,110✔
10725
  }
10726

10727
  SEncoder encoder = {0};
2,220✔
10728
  tEncoderInit(&encoder, buf, bufLen);
2,220✔
10729
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,220!
10730

10731
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
4,440!
10732
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withTbName));
4,440!
10733
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->useSnapshot));
4,440!
10734
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
4,440!
10735
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->reqId));
4,440!
10736
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
4,440!
10737
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeout));
4,440!
10738
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &pReq->reqOffset));
2,220!
10739
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableReplay));
4,440!
10740
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sourceExcluded));
4,440!
10741
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableBatchMeta));
4,440!
10742
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->rawData));
4,440!
10743
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minPollRows));
4,440!
10744

10745
  tEndEncode(&encoder);
2,220✔
10746

10747
_exit:
2,220✔
10748
  if (code) {
2,220!
10749
    tEncoderClear(&encoder);
×
10750
    return code;
×
10751
  } else {
10752
    int32_t tlen = encoder.pos;
2,220✔
10753
    tEncoderClear(&encoder);
2,220✔
10754

10755
    if (buf != NULL) {
2,220✔
10756
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
1,110✔
10757
      pHead->vgId = htonl(pReq->head.vgId);
1,110✔
10758
      pHead->contLen = htonl(tlen + headLen);
1,110✔
10759
    }
10760

10761
    return tlen + headLen;
2,220✔
10762
  }
10763
}
10764

10765
int32_t tDeserializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
43,379✔
10766
  int32_t  code = 0;
43,379✔
10767
  int32_t  lino;
10768
  int32_t  headLen = sizeof(SMsgHead);
43,379✔
10769
  SDecoder decoder = {0};
43,379✔
10770
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
43,379✔
10771

10772
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
43,380!
10773

10774
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
43,389!
10775
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withTbName));
86,770!
10776
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->useSnapshot));
86,778!
10777
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
86,776!
10778
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->reqId));
86,765!
10779
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
86,759!
10780
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeout));
86,763!
10781
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &pReq->reqOffset));
43,382!
10782

10783
  if (!tDecodeIsEnd(&decoder)) {
43,379✔
10784
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableReplay));
86,756!
10785
  }
10786

10787
  if (!tDecodeIsEnd(&decoder)) {
43,379!
10788
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sourceExcluded));
86,763!
10789
  }
10790

10791
  if (!tDecodeIsEnd(&decoder)) {
43,378!
10792
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableBatchMeta));
86,765!
10793
  } else {
10794
    pReq->enableBatchMeta = false;
×
10795
  }
10796

10797
  if (!tDecodeIsEnd(&decoder)) {
43,381!
10798
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->rawData));
86,763!
10799
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minPollRows));
86,765!
10800
  }
10801

10802
  tEndDecode(&decoder);
43,383✔
10803

10804
_exit:
43,379✔
10805
  tDecoderClear(&decoder);
43,379✔
10806
  return code;
43,378✔
10807
}
10808

10809
void tDestroySMqPollReq(SMqPollReq *pReq) {
42,798✔
10810
  tOffsetDestroy(&pReq->reqOffset);
42,798✔
10811
  if (pReq->uidHash != NULL) {
42,798!
10812
    taosHashCleanup(pReq->uidHash);
×
10813
    pReq->uidHash = NULL;
×
10814
  }
10815
}
42,798✔
10816
int32_t tSerializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
28,154,472✔
10817
  int32_t code = 0;
28,154,472✔
10818
  int32_t lino;
10819
  int32_t tlen;
10820
  int32_t headLen = sizeof(SMsgHead);
28,154,472✔
10821
  if (buf != NULL) {
28,154,472✔
10822
    buf = (char *)buf + headLen;
14,080,321✔
10823
    bufLen -= headLen;
14,080,321✔
10824
  }
10825

10826
  SEncoder encoder = {0};
28,154,472✔
10827
  tEncoderInit(&encoder, buf, bufLen);
28,154,472✔
10828
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
28,150,949!
10829

10830
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
56,324,190!
10831
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
56,324,190!
10832
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
56,324,190!
10833
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
56,324,190!
10834
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
56,324,190!
10835
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
56,324,190!
10836

10837
  tEndEncode(&encoder);
28,162,095✔
10838

10839
_exit:
28,156,617✔
10840
  if (code) {
28,156,617!
10841
    tEncoderClear(&encoder);
×
10842
    return code;
×
10843
  } else {
10844
    tlen = encoder.pos;
28,156,617✔
10845
    tEncoderClear(&encoder);
28,156,617✔
10846

10847
    if (buf != NULL) {
28,159,205✔
10848
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
14,085,595✔
10849
      pHead->vgId = htonl(pReq->header.vgId);
14,085,595✔
10850
      pHead->contLen = htonl(tlen + headLen);
14,085,595✔
10851
    }
10852

10853
    return tlen + headLen;
28,159,205✔
10854
  }
10855
}
10856

10857
int32_t tDeserializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
13,805,070✔
10858
  int32_t headLen = sizeof(SMsgHead);
13,805,070✔
10859
  int32_t code = 0;
13,805,070✔
10860
  int32_t lino;
10861

10862
  SMsgHead *pHead = buf;
13,805,070✔
10863
  pHead->vgId = pReq->header.vgId;
13,805,070✔
10864
  pHead->contLen = pReq->header.contLen;
13,805,070✔
10865

10866
  SDecoder decoder = {0};
13,805,070✔
10867
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
13,805,070✔
10868

10869
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
13,791,548!
10870

10871
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
27,625,676!
10872
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
27,619,223!
10873
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
27,611,844!
10874
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
27,605,140!
10875
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
27,601,552!
10876
  if (!tDecodeIsEnd(&decoder)) {
13,800,504!
10877
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
27,605,251!
10878
  } else {
10879
    pReq->clientId = 0;
×
10880
  }
10881

10882
  tEndDecode(&decoder);
13,798,735✔
10883

10884
_exit:
13,798,443✔
10885
  tDecoderClear(&decoder);
13,798,443✔
10886
  return code;
13,809,169✔
10887
}
10888

10889
int32_t tSerializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
52✔
10890
  int32_t code = 0;
52✔
10891
  int32_t lino;
10892
  int32_t tlen;
10893
  int32_t headLen = sizeof(SMsgHead);
52✔
10894
  if (buf != NULL) {
52✔
10895
    buf = (char *)buf + headLen;
26✔
10896
    bufLen -= headLen;
26✔
10897
  }
10898

10899
  SEncoder encoder = {0};
52✔
10900
  tEncoderInit(&encoder, buf, bufLen);
52✔
10901
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
52!
10902

10903
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
104!
10904
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
104!
10905
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
104!
10906
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
104!
10907
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
104!
10908
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
104!
10909
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
104!
10910

10911
  tEndEncode(&encoder);
52✔
10912

10913
_exit:
52✔
10914
  if (code) {
52!
10915
    tEncoderClear(&encoder);
×
10916
    return code;
×
10917
  } else {
10918
    tlen = encoder.pos;
52✔
10919
    tEncoderClear(&encoder);
52✔
10920

10921
    if (buf != NULL) {
52✔
10922
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
26✔
10923
      pHead->vgId = htonl(pReq->header.vgId);
26✔
10924
      pHead->contLen = htonl(tlen + headLen);
26✔
10925
    }
10926

10927
    return tlen + headLen;
52✔
10928
  }
10929
}
10930

10931
int32_t tDeserializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
98✔
10932
  int32_t headLen = sizeof(SMsgHead);
98✔
10933
  int32_t code = 0;
98✔
10934
  int32_t lino;
10935

10936
  SMsgHead *pHead = buf;
98✔
10937
  pHead->vgId = pReq->header.vgId;
98✔
10938
  pHead->contLen = pReq->header.contLen;
98✔
10939

10940
  SDecoder decoder = {0};
98✔
10941
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
98✔
10942

10943
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
98!
10944

10945
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
196!
10946
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
196!
10947
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
196!
10948
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
196!
10949
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
196!
10950
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, (int32_t *)&pReq->type));
196!
10951
  if (!tDecodeIsEnd(&decoder)) {
98!
10952
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
196!
10953
  } else {
10954
    pReq->clientId = 0;
×
10955
  }
10956

10957
  tEndDecode(&decoder);
98✔
10958

10959
_exit:
98✔
10960
  tDecoderClear(&decoder);
98✔
10961
  return code;
98✔
10962
}
10963

10964
int32_t tSerializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
27,628,901✔
10965
  SEncoder encoder = {0};
27,628,901✔
10966
  int32_t  code = 0;
27,628,901✔
10967
  int32_t  lino;
10968
  int32_t  tlen;
10969
  tEncoderInit(&encoder, buf, bufLen);
27,628,901✔
10970
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
27,632,105!
10971

10972
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->code));
55,259,994!
10973
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->affectedRows));
55,259,994!
10974
  int32_t tbNum = taosArrayGetSize(pRsp->tbVerInfo);
27,629,997✔
10975
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, tbNum));
27,625,830!
10976
  if (tbNum > 0) {
27,625,830✔
10977
    for (int32_t i = 0; i < tbNum; ++i) {
31,936,559✔
10978
      STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
15,972,168✔
10979
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pVer->tbFName));
31,928,832!
10980
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->sversion));
31,928,832!
10981
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->tversion));
31,928,832!
10982
    }
10983
  }
10984

10985
  if (tbNum > 0) {
27,618,078✔
10986
    for (int32_t i = 0; i < tbNum; ++i) {
31,937,768✔
10987
      STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
15,972,535✔
10988
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->rversion));
31,926,440!
10989
    }
10990
  }
10991
  tEndEncode(&encoder);
27,608,763✔
10992

10993
_exit:
27,625,253✔
10994
  if (code) {
27,625,253!
10995
    tlen = code;
×
10996
  } else {
10997
    tlen = encoder.pos;
27,625,253✔
10998
  }
10999
  tEncoderClear(&encoder);
27,625,253✔
11000
  return tlen;
27,631,039✔
11001
}
11002

11003
int32_t tDeserializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
266,507✔
11004
  SDecoder decoder = {0};
266,507✔
11005
  int32_t  code = 0;
266,507✔
11006
  int32_t  lino;
11007
  tDecoderInit(&decoder, (char *)buf, bufLen);
266,507✔
11008

11009
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
266,507✔
11010

11011
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->code));
533,061!
11012
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->affectedRows));
533,058!
11013
  int32_t tbNum = 0;
266,531✔
11014
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbNum));
266,519!
11015
  if (tbNum > 0) {
266,519✔
11016
    pRsp->tbVerInfo = taosArrayInit(tbNum, sizeof(STbVerInfo));
255,346✔
11017
    if (NULL == pRsp->tbVerInfo) {
255,342!
11018
      TAOS_CHECK_EXIT(terrno);
×
11019
    }
11020
    for (int32_t i = 0; i < tbNum; i++) {
510,719✔
11021
      STbVerInfo tbVer;
11022
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tbVer.tbFName));
255,368!
11023
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.sversion));
255,376!
11024
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.tversion));
255,373!
11025
      tbVer.rversion = 1;
255,373✔
11026
      if (NULL == taosArrayPush(pRsp->tbVerInfo, &tbVer)) {
510,748!
11027
        TAOS_CHECK_EXIT(terrno);
×
11028
      }
11029
    }
11030
  }
11031

11032
  if (!tDecodeIsEnd(&decoder)) {
266,524✔
11033
    if (tbNum > 0) {
255,351!
11034
      for (int32_t i = 0; i < tbNum; i++) {
510,722✔
11035
        STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
255,374✔
11036
        if (NULL == pVer) {
255,368!
11037
          TAOS_CHECK_EXIT(terrno);
×
11038
        }
11039
        TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pVer->rversion));
510,737!
11040
      }
11041
    }
11042
  }
11043

11044
  tEndDecode(&decoder);
266,519✔
11045

11046
_exit:
266,536✔
11047
  tDecoderClear(&decoder);
266,536✔
11048
  return code;
266,539✔
11049
}
11050

11051
int32_t tSerializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
8,152,320✔
11052
  int32_t code = 0;
8,152,320✔
11053
  int32_t lino;
11054
  int32_t tlen;
11055
  int32_t headLen = sizeof(SMsgHead);
8,152,320✔
11056
  if (buf != NULL) {
8,152,320✔
11057
    buf = (char *)buf + headLen;
4,076,709✔
11058
    bufLen -= headLen;
4,076,709✔
11059
  }
11060

11061
  SEncoder encoder = {0};
8,152,320✔
11062
  tEncoderInit(&encoder, buf, bufLen);
8,152,320✔
11063

11064
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8,152,632!
11065
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
16,305,164!
11066
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epId.nodeId));
16,305,164!
11067
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pReq->epId.ep.port));
16,305,164!
11068
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->epId.ep.fqdn));
16,305,164!
11069
  if (pReq->taskAction) {
8,152,582!
11070
    int32_t num = taosArrayGetSize(pReq->taskAction);
×
11071
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
11072
    for (int32_t i = 0; i < num; ++i) {
×
11073
      STaskAction *action = taosArrayGet(pReq->taskAction, i);
×
11074
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->queryId));
×
11075
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->taskId));
×
11076
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, action->action));
×
11077
    }
11078
  } else {
11079
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
8,152,582!
11080
  }
11081
  tEndEncode(&encoder);
8,152,582✔
11082

11083
_exit:
8,152,863✔
11084
  if (code) {
8,152,863!
11085
    tEncoderClear(&encoder);
×
11086
    return code;
×
11087
  } else {
11088
    tlen = encoder.pos;
8,152,863✔
11089
    tEncoderClear(&encoder);
8,152,863✔
11090

11091
    if (buf != NULL) {
8,152,938✔
11092
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
4,077,268✔
11093
      pHead->vgId = htonl(pReq->header.vgId);
4,077,268✔
11094
      pHead->contLen = htonl(tlen + headLen);
4,077,268✔
11095
    }
11096
    return tlen + headLen;
8,152,938✔
11097
  }
11098
}
11099

11100
int32_t tDeserializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
3,863,319✔
11101
  int32_t   headLen = sizeof(SMsgHead);
3,863,319✔
11102
  SMsgHead *pHead = buf;
3,863,319✔
11103
  pHead->vgId = pReq->header.vgId;
3,863,319✔
11104
  pHead->contLen = pReq->header.contLen;
3,863,319✔
11105
  int32_t code = 0;
3,863,319✔
11106
  int32_t lino;
11107

11108
  SDecoder decoder = {0};
3,863,319✔
11109
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
3,863,319✔
11110

11111
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,862,279!
11112
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
7,727,779!
11113
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epId.nodeId));
7,727,402!
11114
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pReq->epId.ep.port));
7,726,683!
11115
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->epId.ep.fqdn));
3,863,023!
11116
  int32_t num = 0;
3,863,597✔
11117
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
3,863,687!
11118
  if (num > 0) {
3,863,687!
11119
    pReq->taskAction = taosArrayInit(num, sizeof(STaskStatus));
×
11120
    if (NULL == pReq->taskAction) {
×
11121
      TAOS_CHECK_EXIT(terrno);
×
11122
    }
11123
    for (int32_t i = 0; i < num; ++i) {
×
11124
      STaskAction action = {0};
×
11125
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.queryId));
×
11126
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.taskId));
×
11127
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &action.action));
×
11128
      if (taosArrayPush(pReq->taskAction, &action) == NULL) {
×
11129
        TAOS_CHECK_EXIT(terrno);
×
11130
      }
11131
    }
11132
  } else {
11133
    pReq->taskAction = NULL;
3,863,687✔
11134
  }
11135
  tEndDecode(&decoder);
3,863,687✔
11136

11137
_exit:
3,862,666✔
11138
  tDecoderClear(&decoder);
3,862,666✔
11139
  return code;
3,863,444✔
11140
}
11141

11142
void tFreeSSchedulerHbReq(SSchedulerHbReq *pReq) { taosArrayDestroy(pReq->taskAction); }
×
11143

11144
int32_t tSerializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
8,413,875✔
11145
  SEncoder encoder = {0};
8,413,875✔
11146
  int32_t  code = 0;
8,413,875✔
11147
  int32_t  lino;
11148
  int32_t  tlen;
11149
  tEncoderInit(&encoder, buf, bufLen);
8,413,875✔
11150

11151
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8,414,097!
11152
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->epId.nodeId));
16,828,678!
11153
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pRsp->epId.ep.port));
16,828,678!
11154
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->epId.ep.fqdn));
16,828,678!
11155
  if (pRsp->taskStatus) {
8,414,339✔
11156
    int32_t num = taosArrayGetSize(pRsp->taskStatus);
694,028✔
11157
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
694,028!
11158
    for (int32_t i = 0; i < num; ++i) {
1,352,594✔
11159
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
658,566✔
11160
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->queryId));
1,317,132!
11161
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->taskId));
1,317,132!
11162
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, status->refId));
1,317,132!
11163
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, status->execId));
1,317,132!
11164
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, status->status));
1,317,132!
11165
    }
11166
    for (int32_t i = 0; i < num; ++i) {
1,352,594✔
11167
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
658,566✔
11168
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->clientId));
1,317,132!
11169
    }
11170
  } else {
11171
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
7,720,311!
11172
  }
11173
  tEndEncode(&encoder);
8,414,339✔
11174

11175
_exit:
8,414,842✔
11176
  if (code) {
8,414,842!
11177
    tlen = code;
×
11178
  } else {
11179
    tlen = encoder.pos;
8,414,842✔
11180
  }
11181
  tEncoderClear(&encoder);
8,414,842✔
11182
  return tlen;
8,414,176✔
11183
}
11184

11185
int32_t tDeserializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
250,466✔
11186
  SDecoder decoder = {0};
250,466✔
11187
  int32_t  code = 0;
250,466✔
11188
  int32_t  lino;
11189
  tDecoderInit(&decoder, buf, bufLen);
250,466✔
11190

11191
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
250,467✔
11192
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->epId.nodeId));
500,946!
11193
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pRsp->epId.ep.port));
500,948!
11194
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->epId.ep.fqdn));
250,477!
11195
  int32_t num = 0;
250,462✔
11196
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
250,469!
11197
  if (num > 0) {
250,469✔
11198
    pRsp->taskStatus = taosArrayInit(num, sizeof(STaskStatus));
2,761✔
11199
    if (NULL == pRsp->taskStatus) {
2,761!
11200
      TAOS_CHECK_EXIT(terrno);
×
11201
    }
11202
    for (int32_t i = 0; i < num; ++i) {
5,773✔
11203
      STaskStatus status = {0};
3,012✔
11204
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.queryId));
3,012!
11205
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.taskId));
3,012!
11206
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &status.refId));
3,012!
11207
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &status.execId));
3,012!
11208
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &status.status));
3,012!
11209
      if (taosArrayPush(pRsp->taskStatus, &status) == NULL) {
6,024!
11210
        TAOS_CHECK_EXIT(terrno);
×
11211
      }
11212
    }
11213
    if (!tDecodeIsEnd(&decoder)) {
2,761!
11214
      for (int32_t i = 0; i < num; ++i) {
5,773✔
11215
        STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
3,012✔
11216
        TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status->clientId));
6,024!
11217
      }
11218
    }
11219
  } else {
11220
    pRsp->taskStatus = NULL;
247,708✔
11221
  }
11222
  tEndDecode(&decoder);
250,469✔
11223

11224
_exit:
250,469✔
11225
  tDecoderClear(&decoder);
250,469✔
11226
  return code;
250,476✔
11227
}
11228

11229
void tFreeSSchedulerHbRsp(SSchedulerHbRsp *pRsp) { taosArrayDestroy(pRsp->taskStatus); }
598,300✔
11230

11231
int tEncodeSVCreateTbBatchRsp(SEncoder *pCoder, const SVCreateTbBatchRsp *pRsp) {
199,011✔
11232
  int32_t        nRsps = taosArrayGetSize(pRsp->pArray);
199,011✔
11233
  SVCreateTbRsp *pCreateRsp;
11234

11235
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
199,012!
11236
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
199,014!
11237
  for (int32_t i = 0; i < nRsps; i++) {
513,003✔
11238
    pCreateRsp = taosArrayGet(pRsp->pArray, i);
314,002✔
11239
    TAOS_CHECK_RETURN(tEncodeSVCreateTbRsp(pCoder, pCreateRsp));
314,000!
11240
  }
11241

11242
  tEndEncode(pCoder);
199,001✔
11243
  return 0;
199,009✔
11244
}
11245

11246
int tDecodeSVCreateTbBatchRsp(SDecoder *pCoder, SVCreateTbBatchRsp *pRsp) {
41,973✔
11247
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
41,973!
11248
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
84,068!
11249
  pRsp->pRsps = (SVCreateTbRsp *)tDecoderMalloc(pCoder, sizeof(*pRsp->pRsps) * pRsp->nRsps);
42,030!
11250
  if (pRsp->pRsps == NULL) {
42,031!
11251
    TAOS_CHECK_RETURN(terrno);
×
11252
  }
11253
  for (int32_t i = 0; i < pRsp->nRsps; i++) {
110,258✔
11254
    TAOS_CHECK_RETURN(tDecodeSVCreateTbRsp(pCoder, pRsp->pRsps + i));
68,288!
11255
  }
11256

11257
  tEndDecode(pCoder);
41,970✔
11258
  return 0;
42,016✔
11259
}
11260

11261
int32_t tEncodeTSma(SEncoder *pCoder, const STSma *pSma) {
×
11262
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->version));
×
11263
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->intervalUnit));
×
11264
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->slidingUnit));
×
11265
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->timezoneInt));
×
11266
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->dstVgId));
×
11267
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->indexName));
×
11268
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->exprLen));
×
11269
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->tagsFilterLen));
×
11270
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->indexUid));
×
11271
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->tableUid));
×
11272
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->dstTbUid));
×
11273
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->dstTbName));
×
11274
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->interval));
×
11275
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->offset));
×
11276
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->sliding));
×
11277
  if (pSma->exprLen > 0) {
×
11278
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->expr));
×
11279
  }
11280
  if (pSma->tagsFilterLen > 0) {
×
11281
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->tagsFilter));
×
11282
  }
11283

11284
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaRow));
×
11285
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaTag));
×
11286

11287
  return 0;
×
11288
}
11289

11290
int32_t tDecodeTSma(SDecoder *pCoder, STSma *pSma, bool deepCopy) {
×
11291
  int32_t code = 0;
×
11292
  int32_t lino;
11293

11294
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->version));
×
11295
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->intervalUnit));
×
11296
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->slidingUnit));
×
11297
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->timezoneInt));
×
11298
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->dstVgId));
×
11299
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pSma->indexName));
×
11300
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->exprLen));
×
11301
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->tagsFilterLen));
×
11302
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->indexUid));
×
11303
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->tableUid));
×
11304
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->dstTbUid));
×
11305
  if (deepCopy) {
×
11306
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->dstTbName));
×
11307
  } else {
11308
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->dstTbName));
×
11309
  }
11310

11311
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->interval));
×
11312
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->offset));
×
11313
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->sliding));
×
11314
  if (pSma->exprLen > 0) {
×
11315
    if (deepCopy) {
×
11316
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->expr));
×
11317
    } else {
11318
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->expr));
×
11319
    }
11320
  } else {
11321
    pSma->expr = NULL;
×
11322
  }
11323
  if (pSma->tagsFilterLen > 0) {
×
11324
    if (deepCopy) {
×
11325
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->tagsFilter));
×
11326
    } else {
11327
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->tagsFilter));
×
11328
    }
11329
  } else {
11330
    pSma->tagsFilter = NULL;
×
11331
  }
11332
  // only needed in dstVgroup
11333
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaRow));
×
11334
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaTag));
×
11335

11336
_exit:
×
11337
  return code;
×
11338
}
11339

11340
int32_t tEncodeSVCreateTSmaReq(SEncoder *pCoder, const SVCreateTSmaReq *pReq) {
×
11341
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
11342
  TAOS_CHECK_RETURN(tEncodeTSma(pCoder, pReq));
×
11343
  tEndEncode(pCoder);
×
11344
  return 0;
×
11345
}
11346

11347
int32_t tDecodeSVCreateTSmaReq(SDecoder *pCoder, SVCreateTSmaReq *pReq) {
×
11348
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
11349
  TAOS_CHECK_RETURN(tDecodeTSma(pCoder, pReq, false));
×
11350
  tEndDecode(pCoder);
×
11351
  return 0;
×
11352
}
11353

11354
int32_t tEncodeSVDropTSmaReq(SEncoder *pCoder, const SVDropTSmaReq *pReq) {
×
11355
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
11356
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->indexUid));
×
11357
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->indexName));
×
11358

11359
  tEndEncode(pCoder);
×
11360
  return 0;
×
11361
}
11362

11363
int32_t tSerializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
210,925✔
11364
  int32_t code = 0;
210,925✔
11365
  int32_t lino;
11366
  int32_t headLen = sizeof(SMsgHead);
210,925✔
11367
  if (buf != NULL) {
210,925✔
11368
    buf = (char *)buf + headLen;
105,471✔
11369
    bufLen -= headLen;
105,471✔
11370
  }
11371

11372
  SEncoder encoder = {0};
210,925✔
11373
  tEncoderInit(&encoder, buf, bufLen);
210,925✔
11374

11375
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
210,937!
11376
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
421,872!
11377
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
421,872!
11378
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
421,872!
11379
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
421,872!
11380
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
421,872!
11381
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->msg, pReq->phyLen));
421,872!
11382
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
421,872!
11383
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
421,872!
11384
  tEndEncode(&encoder);
210,936✔
11385

11386
_exit:
210,932✔
11387
  if (code) {
210,932!
11388
    tEncoderClear(&encoder);
×
11389
    return code;
×
11390
  } else {
11391
    int32_t tlen = encoder.pos;
210,932✔
11392
    tEncoderClear(&encoder);
210,932✔
11393

11394
    if (buf != NULL) {
210,938✔
11395
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
105,474✔
11396
      pHead->vgId = htonl(pReq->header.vgId);
105,474✔
11397
      pHead->contLen = htonl(tlen + headLen);
105,474✔
11398
    }
11399

11400
    return tlen + headLen;
210,938✔
11401
  }
11402
}
11403

11404
int32_t tDeserializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
117,659✔
11405
  int32_t   code = 0;
117,659✔
11406
  int32_t   lino;
11407
  int32_t   headLen = sizeof(SMsgHead);
117,659✔
11408
  SMsgHead *pHead = buf;
117,659✔
11409
  pHead->vgId = pReq->header.vgId;
117,659✔
11410
  pHead->contLen = pReq->header.contLen;
117,659✔
11411

11412
  SDecoder decoder = {0};
117,659✔
11413
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
117,659✔
11414

11415
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
117,657!
11416
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
235,322!
11417
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
235,322!
11418
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
235,321!
11419
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
235,320!
11420
  pReq->sql = taosMemoryCalloc(1, pReq->sqlLen + 1);
117,660!
11421
  if (NULL == pReq->sql) {
117,662!
11422
    TAOS_CHECK_EXIT(terrno);
×
11423
  }
11424
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
117,662!
11425
  uint64_t msgLen = 0;
117,659✔
11426
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, &msgLen));
235,321!
11427
  pReq->phyLen = msgLen;
117,662✔
11428

11429
  if (!tDecodeIsEnd(&decoder)) {
117,662✔
11430
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
235,319!
11431
  }
11432
  if (!tDecodeIsEnd(&decoder)) {
117,663✔
11433
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
235,321!
11434
  } else {
11435
    pReq->clientId = 0;
2✔
11436
  }
11437
  tEndDecode(&decoder);
117,662✔
11438

11439
_exit:
117,660✔
11440
  tDecoderClear(&decoder);
117,660✔
11441
  return 0;
117,663✔
11442
}
11443

11444
int32_t tEncodeSVDeleteRsp(SEncoder *pCoder, const SVDeleteRsp *pReq) {
237,756✔
11445
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
237,756✔
11446
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->affectedRows));
475,516!
11447
  tEndEncode(pCoder);
237,758✔
11448
  return 0;
237,763✔
11449
}
11450

11451
int32_t tDecodeSVDeleteRsp(SDecoder *pCoder, SVDeleteRsp *pReq) {
105,485✔
11452
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
105,485✔
11453
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->affectedRows));
210,957!
11454
  tEndDecode(pCoder);
105,478✔
11455
  return 0;
105,477✔
11456
}
11457

11458
int32_t tEncodeSRSmaParam(SEncoder *pCoder, const SRSmaParam *pRSmaParam) {
×
11459
  int32_t code = 0;
×
11460
  int32_t lino;
11461
  for (int32_t i = 0; i < 2; ++i) {
×
11462
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->maxdelay[i]));
×
11463
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->watermark[i]));
×
11464
    TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRSmaParam->qmsgLen[i]));
×
11465
    if (pRSmaParam->qmsgLen[i] > 0) {
×
11466
      TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pRSmaParam->qmsg[i], (uint64_t)pRSmaParam->qmsgLen[i]));
×
11467
    }
11468
  }
11469

11470
_exit:
×
11471
  return code;
×
11472
}
11473

11474
int32_t tDecodeSRSmaParam(SDecoder *pCoder, SRSmaParam *pRSmaParam) {
×
11475
  int32_t code = 0;
×
11476
  int32_t lino;
11477
  for (int32_t i = 0; i < 2; ++i) {
×
11478
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->maxdelay[i]));
×
11479
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->watermark[i]));
×
11480
    TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pRSmaParam->qmsgLen[i]));
×
11481
    if (pRSmaParam->qmsgLen[i] > 0) {
×
11482
      TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pRSmaParam->qmsg[i], NULL));  // qmsgLen contains len of '\0'
×
11483
    } else {
11484
      pRSmaParam->qmsg[i] = NULL;
×
11485
    }
11486
  }
11487

11488
_exit:
×
11489
  return code;
×
11490
}
11491

11492
int32_t tEncodeSColRefWrapper(SEncoder *pCoder, const SColRefWrapper *pWrapper) {
348✔
11493
  int32_t code = 0;
348✔
11494
  int32_t lino;
11495

11496
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
696!
11497
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
696!
11498
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
1,458✔
11499
    SColRef *p = &pWrapper->pColRef[i];
1,110✔
11500
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, p->hasRef));
2,220!
11501
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
2,220!
11502
    if (p->hasRef) {
1,110✔
11503
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refDbName));
1,524!
11504
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refTableName));
1,524!
11505
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refColName));
1,524!
11506
    }
11507
  }
11508

11509
_exit:
348✔
11510
  return code;
348✔
11511
}
11512

11513
int32_t tDecodeSColRefWrapperEx(SDecoder *pDecoder, SColRefWrapper *pWrapper, bool decoderMalloc) {
563✔
11514
  int32_t code = 0;
563✔
11515
  int32_t lino;
11516

11517
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
1,126!
11518
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
1,126!
11519

11520
  pWrapper->pColRef = decoderMalloc ? (SColRef *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColRef)) : (SColRef *)taosMemoryCalloc(pWrapper->nCols, sizeof(SColRef));
954!
11521
  if (pWrapper->pColRef == NULL) {
563!
11522
    TAOS_CHECK_EXIT(terrno);
×
11523
  }
11524

11525
  for (int i = 0; i < pWrapper->nCols; i++) {
5,661✔
11526
    SColRef *p = &pWrapper->pColRef[i];
5,098✔
11527
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&p->hasRef));
10,196!
11528
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
10,196!
11529
    if (p->hasRef) {
5,098✔
11530
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refDbName));
2,904!
11531
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refTableName));
2,904!
11532
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refColName));
2,904!
11533
    }
11534
  }
11535

11536
_exit:
563✔
11537
  if (code) {
563!
11538
    taosMemoryFree(pWrapper->pColRef);
×
11539
  }
11540
  return code;
563✔
11541
}
11542

11543
int32_t tEncodeSColCmprWrapper(SEncoder *pCoder, const SColCmprWrapper *pWrapper) {
81,496✔
11544
  int32_t code = 0;
81,496✔
11545
  int32_t lino;
11546

11547
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
162,992!
11548
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
162,992!
11549
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
6,894,446✔
11550
    SColCmpr *p = &pWrapper->pColCmpr[i];
6,812,950✔
11551
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
13,625,900!
11552
    TAOS_CHECK_EXIT(tEncodeU32(pCoder, p->alg));
13,625,900!
11553
  }
11554

11555
_exit:
81,496✔
11556
  return code;
81,496✔
11557
}
11558

11559
int32_t tDecodeSColCmprWrapperEx(SDecoder *pDecoder, SColCmprWrapper *pWrapper) {
65,187✔
11560
  int32_t code = 0;
65,187✔
11561
  int32_t lino;
11562

11563
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
130,417!
11564
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
130,458!
11565

11566
  pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr));
65,228✔
11567
  if (pWrapper->pColCmpr == NULL) {
65,253!
11568
    TAOS_CHECK_EXIT(terrno);
×
11569
  }
11570

11571
  for (int i = 0; i < pWrapper->nCols; i++) {
3,770,088✔
11572
    SColCmpr *p = &pWrapper->pColCmpr[i];
3,704,147✔
11573
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
7,408,391!
11574
    TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &p->alg));
7,409,079!
11575
  }
11576

11577
_exit:
65,941✔
11578
  if (code) {
65,941!
11579
    taosMemoryFree(pWrapper->pColCmpr);
×
11580
  }
11581
  return code;
65,216✔
11582
}
11583

11584
static int32_t tEncodeSExtSchema(SEncoder *pCoder, const SExtSchema *pExtSchema) {
5,387,522✔
11585
  int32_t code = 0, lino;
5,387,522✔
11586
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pExtSchema->typeMod));
10,775,044!
11587

11588
_exit:
5,387,522✔
11589
  return code;
5,387,522✔
11590
}
11591

11592
int32_t tDecodeSExtSchema(SDecoder *pCoder, SExtSchema *pExtSchema) {
2,830,890✔
11593
  int32_t code = 0, lino;
2,830,890✔
11594
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pExtSchema->typeMod));
5,661,821!
11595

11596
_exit:
2,830,931✔
11597
  return code;
2,830,931✔
11598
}
11599

11600
static int32_t tEncodeSExtSchemas(SEncoder *pCoder, const SExtSchema *pExtSchemas, int32_t nCol) {
24,640✔
11601
  int32_t code = 0, lino;
24,640✔
11602
  for (int32_t i = 0; i < nCol; ++i) {
5,412,162✔
11603
    TAOS_CHECK_EXIT(tEncodeSExtSchema(pCoder, pExtSchemas + i));
5,387,522!
11604
  }
11605

11606
_exit:
24,640✔
11607
  return code;
24,640✔
11608
}
11609

11610
static int32_t tDecodeSExtSchemas(SDecoder *pCoder, SExtSchema **ppExtSchema, int32_t nCol) {
14,495✔
11611
  int32_t code = 0, lino;
14,495✔
11612
  *ppExtSchema = tDecoderMalloc(pCoder, sizeof(SExtSchema) * nCol);
14,495!
11613
  if (!*ppExtSchema) TAOS_CHECK_EXIT(terrno);
14,496!
11614
  for (int32_t i = 0; i < nCol; ++i) {
2,845,533✔
11615
    TAOS_CHECK_EXIT(tDecodeSExtSchema(pCoder, (*ppExtSchema) + i));
2,831,040!
11616
  }
11617

11618
_exit:
14,493✔
11619
  return code;
14,493✔
11620
}
11621

11622
int tEncodeSVCreateStbReq(SEncoder *pCoder, const SVCreateStbReq *pReq) {
79,976✔
11623
  int32_t code = 0;
79,976✔
11624
  int32_t lino;
11625

11626
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
79,976!
11627

11628
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
159,952!
11629
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->suid));
159,952!
11630
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->rollup));
159,952!
11631
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaRow));
159,952!
11632
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaTag));
159,952!
11633
  if (pReq->rollup) {
79,976!
11634
    TAOS_CHECK_EXIT(tEncodeSRSmaParam(pCoder, &pReq->rsmaParam));
×
11635
  }
11636

11637
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->alterOriDataLen));
159,952!
11638
  if (pReq->alterOriDataLen > 0) {
79,976✔
11639
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->alterOriData, pReq->alterOriDataLen));
58,264!
11640
  }
11641
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->source));
159,952!
11642

11643
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->colCmpred));
159,952!
11644
  TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
79,976!
11645
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->keep));
159,952!
11646
  if (pReq->pExtSchemas) {
79,976✔
11647
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 1));
24,640!
11648
    TAOS_CHECK_EXIT(tEncodeSExtSchemas(pCoder, pReq->pExtSchemas, pReq->schemaRow.nCols));
24,640!
11649
  } else {
11650
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 0));
55,336!
11651
  }
11652
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->virtualStb));
159,952!
11653
  tEndEncode(pCoder);
79,976✔
11654

11655
_exit:
79,976✔
11656
  return code;
79,976✔
11657
}
11658

11659
int tDecodeSVCreateStbReq(SDecoder *pCoder, SVCreateStbReq *pReq) {
51,307✔
11660
  int32_t code = 0;
51,307✔
11661
  int32_t lino;
11662

11663
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
51,307!
11664

11665
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
102,688!
11666
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
102,677!
11667
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->rollup));
102,674!
11668
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaRow));
102,849!
11669
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaTag));
102,842!
11670
  if (pReq->rollup) {
51,325!
11671
    TAOS_CHECK_EXIT(tDecodeSRSmaParam(pCoder, &pReq->rsmaParam));
×
11672
  }
11673

11674
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->alterOriDataLen));
102,649!
11675
  if (pReq->alterOriDataLen > 0) {
51,324✔
11676
    TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pReq->alterOriData, NULL));
34,103!
11677
  }
11678
  if (!tDecodeIsEnd(pCoder)) {
51,325✔
11679
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->source));
102,586!
11680

11681
    if (!tDecodeIsEnd(pCoder)) {
51,302!
11682
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->colCmpred));
102,618!
11683
    }
11684
    if (!tDecodeIsEnd(pCoder)) {
51,310!
11685
      TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
51,322!
11686
    }
11687
    if (!tDecodeIsEnd(pCoder)) {
51,299!
11688
      TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->keep));
102,624!
11689
    }
11690
    if (!tDecodeIsEnd(pCoder)) {
51,287!
11691
      int8_t hasExtSchema = 0;
51,306✔
11692
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &hasExtSchema));
51,306!
11693
      if (hasExtSchema) {
51,306✔
11694
        TAOS_CHECK_EXIT(tDecodeSExtSchemas(pCoder, &pReq->pExtSchemas, pReq->schemaRow.nCols));
14,412!
11695
      }
11696
    }
11697
  }
11698
  if (!tDecodeIsEnd(pCoder)) {
51,329✔
11699
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->virtualStb));
102,601!
11700
  }
11701
  tEndDecode(pCoder);
51,338✔
11702

11703
_exit:
51,282✔
11704
  return code;
51,282✔
11705
}
11706

11707
int tEncodeSVCreateTbReq(SEncoder *pCoder, const SVCreateTbReq *pReq) {
166,675✔
11708
  int32_t code = 0;
166,675✔
11709
  int32_t lino;
11710

11711
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
166,675!
11712

11713
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pReq->flags));
333,492!
11714
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
333,492!
11715
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->uid));
333,492!
11716
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->btime));
333,492!
11717
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->ttl));
333,492!
11718
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->type));
333,492!
11719
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->commentLen));
333,492!
11720
  if (pReq->commentLen > 0) {
166,746✔
11721
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->comment));
16!
11722
  }
11723

11724
  if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
331,988✔
11725
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->ctb.stbName));
330,448!
11726
    TAOS_CHECK_EXIT(tEncodeU8(pCoder, pReq->ctb.tagNum));
330,448!
11727
    TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->ctb.suid));
330,448!
11728
    TAOS_CHECK_EXIT(tEncodeTag(pCoder, (const STag *)pReq->ctb.pTag));
165,224!
11729
    int32_t len = taosArrayGetSize(pReq->ctb.tagName);
165,217✔
11730
    TAOS_CHECK_EXIT(tEncodeI32(pCoder, len));
165,230!
11731
    for (int32_t i = 0; i < len; i++) {
480,152✔
11732
      char *name = taosArrayGet(pReq->ctb.tagName, i);
314,910✔
11733
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, name));
314,922!
11734
    }
11735
  } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
1,522!
11736
    TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->ntb.schemaRow));
3,044!
11737
  } else {
11738
    return TSDB_CODE_INVALID_MSG;
×
11739
  }
11740
  // ENCODESQL
11741

11742
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->sqlLen));
333,528!
11743
  if (pReq->sqlLen > 0) {
166,764!
11744
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->sql, pReq->sqlLen));
×
11745
  }
11746
  // Encode Column Options: encode compress level
11747
  if (pReq->type == TSDB_SUPER_TABLE || pReq->type == TSDB_NORMAL_TABLE) {
166,764✔
11748
    TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
1,605!
11749
  }
11750
  if (pReq->type == TSDB_VIRTUAL_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
166,679!
11751
    TAOS_CHECK_EXIT(tEncodeSColRefWrapper(pCoder, &pReq->colRef));
×
11752
  }
11753
  if (pReq->pExtSchemas) {
166,710!
11754
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 1));
×
11755
    TAOS_CHECK_EXIT(tEncodeSExtSchemas(pCoder, pReq->pExtSchemas, pReq->ntb.schemaRow.nCols));
×
11756
  } else {
11757
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 0));
166,710!
11758
  }
11759

11760
  tEndEncode(pCoder);
166,710✔
11761
_exit:
166,759✔
11762
  return code;
166,759✔
11763
}
11764

11765
int tDecodeSVCreateTbReq(SDecoder *pCoder, SVCreateTbReq *pReq) {
221,640✔
11766
  int32_t code = 0;
221,640✔
11767
  int32_t lino;
11768

11769
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
221,640!
11770

11771
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pReq->flags));
443,405!
11772
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
443,359!
11773
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->uid));
443,115!
11774
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->btime));
442,806!
11775
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->ttl));
442,694!
11776
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->type));
442,728!
11777
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->commentLen));
442,730!
11778
  if (pReq->commentLen > 0) {
221,345✔
11779
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
7!
11780
    if (pReq->comment == NULL) {
7!
11781
      TAOS_CHECK_EXIT(terrno);
×
11782
    }
11783
    TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->comment));
7!
11784
  }
11785

11786
  if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
429,008✔
11787
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->ctb.stbName));
414,569!
11788
    TAOS_CHECK_EXIT(tDecodeU8(pCoder, &pReq->ctb.tagNum));
414,563!
11789
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->ctb.suid));
414,475!
11790
    TAOS_CHECK_EXIT(tDecodeTag(pCoder, (STag **)&pReq->ctb.pTag));
207,205!
11791
    int32_t len = 0;
207,325✔
11792
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &len));
207,321!
11793
    pReq->ctb.tagName = taosArrayInit(len, TSDB_COL_NAME_LEN);
207,321✔
11794
    if (pReq->ctb.tagName == NULL) {
207,585✔
11795
      TAOS_CHECK_EXIT(terrno);
2!
11796
    }
11797
    for (int32_t i = 0; i < len; i++) {
813,643✔
11798
      char  name[TSDB_COL_NAME_LEN] = {0};
605,980✔
11799
      char *tmp = NULL;
605,980✔
11800
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &tmp));
605,771!
11801
      tstrncpy(name, tmp, TSDB_COL_NAME_LEN);
605,771✔
11802
      if (taosArrayPush(pReq->ctb.tagName, name) == NULL) {
1,211,831!
11803
        TAOS_CHECK_EXIT(terrno);
×
11804
      }
11805
    }
11806
  } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
14,069!
11807
    TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->ntb.schemaRow));
28,136!
11808
  } else {
11809
    return TSDB_CODE_INVALID_MSG;
×
11810
  }
11811

11812
  // DECODESQL
11813
  if (!tDecodeIsEnd(pCoder)) {
221,730✔
11814
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->sqlLen));
443,267!
11815
    if (pReq->sqlLen > 0) {
221,629!
11816
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pCoder, (void **)&pReq->sql, NULL));
×
11817
    }
11818
    if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_SUPER_TABLE) {
221,629✔
11819
      if (!tDecodeIsEnd(pCoder)) {
13,938✔
11820
        TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
13,913!
11821
      }
11822
    } else if (pReq->type == TSDB_VIRTUAL_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
207,691✔
11823
      if (!tDecodeIsEnd(pCoder)) {
391!
11824
        TAOS_CHECK_EXIT(tDecodeSColRefWrapperEx(pCoder, &pReq->colRef, true));
391!
11825
      }
11826
    }
11827

11828
    if (!tDecodeIsEnd(pCoder)) {
221,629✔
11829
      int8_t hasExtSchema = 0;
221,602✔
11830
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &hasExtSchema));
221,540!
11831
      if (hasExtSchema) {
221,540✔
11832
        TAOS_CHECK_EXIT(tDecodeSExtSchemas(pCoder, &pReq->pExtSchemas, pReq->ntb.schemaRow.nCols));
83!
11833
      }
11834
    }
11835
  }
11836

11837
  tEndDecode(pCoder);
221,659✔
11838
_exit:
221,523✔
11839
  return code;
221,523✔
11840
}
11841

11842
void tDestroySVCreateTbReq(SVCreateTbReq *pReq, int32_t flags) {
12✔
11843
  if (pReq == NULL) return;
12!
11844

11845
  if (flags & TSDB_MSG_FLG_ENCODE) {
12!
11846
    // TODO
11847
  } else if (flags & TSDB_MSG_FLG_DECODE) {
12!
11848
    taosMemoryFreeClear(pReq->comment);
12!
11849

11850
    if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
12!
11851
      taosArrayDestroy(pReq->ctb.tagName);
12✔
11852
      pReq->ctb.tagName = NULL;
12✔
11853
    } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
×
11854
      taosMemoryFreeClear(pReq->ntb.schemaRow.pSchema);
×
11855
    }
11856
  }
11857

11858
  taosMemoryFreeClear(pReq->colCmpr.pColCmpr);
12!
11859
  taosMemoryFreeClear(pReq->colRef.pColRef);
12!
11860
  taosMemoryFreeClear(pReq->sql);
12!
11861
}
11862

11863
void tDestroySVSubmitCreateTbReq(SVCreateTbReq *pReq, int32_t flags) {
64,238✔
11864
  if (pReq == NULL) return;
64,238!
11865

11866
  if (flags & TSDB_MSG_FLG_ENCODE) {
64,238!
11867
    // TODO
11868
  } else if (flags & TSDB_MSG_FLG_DECODE) {
64,238!
11869
    taosMemoryFreeClear(pReq->comment);
64,240!
11870

11871
    if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
64,240!
11872
      taosArrayDestroy(pReq->ctb.tagName);
63,576✔
11873
      pReq->ctb.tagName = NULL;
63,582✔
11874
    }
11875
  }
11876

11877
  taosMemoryFreeClear(pReq->colRef.pColRef);
64,244!
11878
  taosMemoryFreeClear(pReq->sql);
64,244!
11879
}
11880

11881
int tEncodeSVCreateTbBatchReq(SEncoder *pCoder, const SVCreateTbBatchReq *pReq) {
84,230✔
11882
  int32_t nReq = taosArrayGetSize(pReq->pArray);
84,230✔
11883

11884
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
84,263!
11885
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReq));
84,267!
11886
  for (int iReq = 0; iReq < nReq; iReq++) {
221,132✔
11887
    TAOS_CHECK_RETURN(tEncodeSVCreateTbReq(pCoder, (SVCreateTbReq *)taosArrayGet(pReq->pArray, iReq)));
136,839!
11888
  }
11889

11890
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->source));
168,586!
11891

11892
  tEndEncode(pCoder);
84,293✔
11893
  return 0;
84,285✔
11894
}
11895

11896
int tDecodeSVCreateTbBatchReq(SDecoder *pCoder, SVCreateTbBatchReq *pReq) {
99,912✔
11897
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
99,912!
11898

11899
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
199,843!
11900
  pReq->pReqs = (SVCreateTbReq *)tDecoderMalloc(pCoder, sizeof(SVCreateTbReq) * pReq->nReqs);
99,922✔
11901
  if (pReq->pReqs == NULL) {
99,920!
11902
    TAOS_CHECK_RETURN(terrno);
×
11903
  }
11904
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
257,326✔
11905
    TAOS_CHECK_RETURN(tDecodeSVCreateTbReq(pCoder, pReq->pReqs + iReq));
157,431!
11906
  }
11907

11908
  if (!tDecodeIsEnd(pCoder)) {
99,895!
11909
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->source));
199,815!
11910
  }
11911

11912
  tEndDecode(pCoder);
99,894✔
11913
  return 0;
99,904✔
11914
}
11915

11916
void tDeleteSVCreateTbBatchReq(SVCreateTbBatchReq *pReq) {
99,922✔
11917
  for (int32_t iReq = 0; iReq < pReq->nReqs; iReq++) {
257,400✔
11918
    SVCreateTbReq *pCreateReq = pReq->pReqs + iReq;
157,473✔
11919
    taosMemoryFreeClear(pCreateReq->sql);
157,473!
11920
    taosMemoryFreeClear(pCreateReq->comment);
157,473!
11921
    if (pCreateReq->type == TSDB_CHILD_TABLE || pCreateReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
157,473✔
11922
      taosArrayDestroy(pCreateReq->ctb.tagName);
144,065✔
11923
      pCreateReq->ctb.tagName = NULL;
144,070✔
11924
    }
11925
  }
11926
}
99,927✔
11927

11928
int tEncodeSVCreateTbRsp(SEncoder *pCoder, const SVCreateTbRsp *pRsp) {
438,502✔
11929
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
438,502✔
11930

11931
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->code));
876,996!
11932
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->pMeta ? 1 : 0));
876,996!
11933
  if (pRsp->pMeta) {
438,498✔
11934
    TAOS_CHECK_RETURN(tEncodeSTableMetaRsp(pCoder, pRsp->pMeta));
407,801!
11935
  }
11936

11937
  tEndEncode(pCoder);
438,486✔
11938
  return 0;
438,482✔
11939
}
11940

11941
int tDecodeSVCreateTbRsp(SDecoder *pCoder, SVCreateTbRsp *pRsp) {
83,197✔
11942
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
83,197!
11943

11944
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pRsp->code));
166,572!
11945

11946
  int32_t meta = 0;
83,270✔
11947
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &meta));
83,278!
11948
  if (meta) {
83,278✔
11949
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
80,875!
11950
    if (NULL == pRsp->pMeta) {
80,812!
11951
      TAOS_CHECK_RETURN(terrno);
×
11952
    }
11953
    TAOS_CHECK_RETURN(tDecodeSTableMetaRsp(pCoder, pRsp->pMeta));
80,812!
11954
  } else {
11955
    pRsp->pMeta = NULL;
2,403✔
11956
  }
11957

11958
  tEndDecode(pCoder);
83,174✔
11959
  return 0;
83,155✔
11960
}
11961

11962
void tFreeSVCreateTbRsp(void *param) {
157,008✔
11963
  if (NULL == param) {
157,008!
11964
    return;
×
11965
  }
11966

11967
  SVCreateTbRsp *pRsp = (SVCreateTbRsp *)param;
157,008✔
11968
  if (pRsp->pMeta) {
157,008✔
11969
    taosMemoryFree(pRsp->pMeta->pSchemas);
156,866!
11970
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
156,865!
11971
    taosMemoryFree(pRsp->pMeta->pColRefs);
156,861!
11972
    taosMemoryFree(pRsp->pMeta);
156,858!
11973
  }
11974
}
11975

11976
// TDMT_VND_DROP_TABLE =================
11977
static int32_t tEncodeSVDropTbReq(SEncoder *pCoder, const SVDropTbReq *pReq) {
32,736✔
11978
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
32,736!
11979
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
65,472!
11980
  TAOS_CHECK_RETURN(tEncodeU64(pCoder, pReq->suid));
65,472!
11981
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->uid));
65,472!
11982
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->igNotExists));
65,472!
11983
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->isVirtual));
65,472!
11984

11985
  tEndEncode(pCoder);
32,736✔
11986
  return 0;
32,736✔
11987
}
11988

11989
static int32_t tDecodeSVDropTbReq(SDecoder *pCoder, SVDropTbReq *pReq) {
32,359✔
11990
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
32,359!
11991
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
64,718!
11992
  TAOS_CHECK_RETURN(tDecodeU64(pCoder, &pReq->suid));
64,718!
11993
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->uid));
64,718!
11994
  TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->igNotExists));
64,718!
11995
  if (!tDecodeIsEnd(pCoder)) {
32,359!
11996
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->isVirtual));
64,718!
11997
  }
11998

11999
  tEndDecode(pCoder);
32,359✔
12000
  return 0;
32,359✔
12001
}
12002

12003
static int32_t tEncodeSVDropTbRsp(SEncoder *pCoder, const SVDropTbRsp *pReq) {
32,224✔
12004
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
32,224!
12005
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->code));
64,448!
12006
  tEndEncode(pCoder);
32,224✔
12007
  return 0;
32,224✔
12008
}
12009

12010
static int32_t tDecodeSVDropTbRsp(SDecoder *pCoder, SVDropTbRsp *pReq) {
35✔
12011
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
35!
12012
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pReq->code));
72!
12013
  tEndDecode(pCoder);
36✔
12014
  return 0;
36✔
12015
}
12016

12017
int32_t tEncodeSVDropTbBatchReq(SEncoder *pCoder, const SVDropTbBatchReq *pReq) {
31,662✔
12018
  int32_t      nReqs = taosArrayGetSize(pReq->pArray);
31,662✔
12019
  SVDropTbReq *pDropTbReq;
12020

12021
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
31,662!
12022
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReqs));
31,662!
12023
  for (int iReq = 0; iReq < nReqs; iReq++) {
64,150✔
12024
    pDropTbReq = (SVDropTbReq *)taosArrayGet(pReq->pArray, iReq);
32,488✔
12025
    TAOS_CHECK_RETURN(tEncodeSVDropTbReq(pCoder, pDropTbReq));
32,488!
12026
  }
12027

12028
  tEndEncode(pCoder);
31,662✔
12029
  return 0;
31,662✔
12030
}
12031

12032
int32_t tDecodeSVDropTbBatchReq(SDecoder *pCoder, SVDropTbBatchReq *pReq) {
31,427✔
12033
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
31,427!
12034
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
62,854!
12035
  pReq->pReqs = (SVDropTbReq *)tDecoderMalloc(pCoder, sizeof(SVDropTbReq) * pReq->nReqs);
31,427!
12036
  if (pReq->pReqs == NULL) {
31,427!
12037
    TAOS_CHECK_RETURN(terrno);
×
12038
  }
12039
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
63,662✔
12040
    TAOS_CHECK_RETURN(tDecodeSVDropTbReq(pCoder, pReq->pReqs + iReq));
32,235!
12041
  }
12042

12043
  tEndDecode(pCoder);
31,427✔
12044
  return 0;
31,427✔
12045
}
12046

12047
int32_t tEncodeSVDropTbBatchRsp(SEncoder *pCoder, const SVDropTbBatchRsp *pRsp) {
31,418✔
12048
  int32_t nRsps = taosArrayGetSize(pRsp->pArray);
31,418✔
12049
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
31,418!
12050
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
31,418!
12051
  for (int iRsp = 0; iRsp < nRsps; iRsp++) {
63,642✔
12052
    TAOS_CHECK_RETURN(tEncodeSVDropTbRsp(pCoder, (SVDropTbRsp *)taosArrayGet(pRsp->pArray, iRsp)));
32,224!
12053
  }
12054

12055
  tEndEncode(pCoder);
31,418✔
12056
  return 0;
31,418✔
12057
}
12058

12059
int32_t tDecodeSVDropTbBatchRsp(SDecoder *pCoder, SVDropTbBatchRsp *pRsp) {
33✔
12060
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
33!
12061
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
68!
12062
  pRsp->pRsps = (SVDropTbRsp *)tDecoderMalloc(pCoder, sizeof(SVDropTbRsp) * pRsp->nRsps);
34!
12063
  if (pRsp->pRsps == NULL) {
34!
12064
    TAOS_CHECK_RETURN(terrno);
×
12065
  }
12066
  for (int iRsp = 0; iRsp < pRsp->nRsps; iRsp++) {
70✔
12067
    TAOS_CHECK_RETURN(tDecodeSVDropTbRsp(pCoder, pRsp->pRsps + iRsp));
36!
12068
  }
12069

12070
  tEndDecode(pCoder);
34✔
12071
  return 0;
33✔
12072
}
12073

12074
int32_t tEncodeSVDropStbReq(SEncoder *pCoder, const SVDropStbReq *pReq) {
54,678✔
12075
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
54,678!
12076
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
109,356!
12077
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
109,356!
12078
  tEndEncode(pCoder);
54,678✔
12079
  return 0;
54,678✔
12080
}
12081

12082
int32_t tDecodeSVDropStbReq(SDecoder *pCoder, SVDropStbReq *pReq) {
4,101✔
12083
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
4,101!
12084
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
8,266!
12085
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->suid));
8,261!
12086
  tEndDecode(pCoder);
4,127✔
12087
  return 0;
4,111✔
12088
}
12089

12090
static int32_t tEncodeSSubmitBlkRsp(SEncoder *pEncoder, const SSubmitBlkRsp *pBlock) {
×
12091
  int32_t code = 0;
×
12092
  int32_t lino;
12093
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
×
12094

12095
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->code));
×
12096
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pBlock->uid));
×
12097
  if (pBlock->tblFName) {
×
12098
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pBlock->tblFName));
×
12099
  } else {
12100
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, ""));
×
12101
  }
12102
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->numOfRows));
×
12103
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->affectedRows));
×
12104
  TAOS_CHECK_EXIT(tEncodeI64v(pEncoder, pBlock->sver));
×
12105
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->pMeta ? 1 : 0));
×
12106
  if (pBlock->pMeta) {
×
12107
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pBlock->pMeta));
×
12108
  }
12109

12110
  tEndEncode(pEncoder);
×
12111
_exit:
×
12112
  return code;
×
12113
}
12114

12115
void tFreeSSubmitRsp(SSubmitRsp *pRsp) {
15,629✔
12116
  if (NULL == pRsp) return;
15,629!
12117

12118
  if (pRsp->pBlocks) {
×
12119
    for (int32_t i = 0; i < pRsp->nBlocks; ++i) {
×
12120
      SSubmitBlkRsp *sRsp = pRsp->pBlocks + i;
×
12121
      taosMemoryFree(sRsp->tblFName);
×
12122
      tFreeSTableMetaRsp(sRsp->pMeta);
×
12123
      taosMemoryFree(sRsp->pMeta);
×
12124
    }
12125

12126
    taosMemoryFree(pRsp->pBlocks);
×
12127
  }
12128

12129
  taosMemoryFree(pRsp);
×
12130
}
12131

12132
int32_t tEncodeSVAlterTbReq(SEncoder *pEncoder, const SVAlterTbReq *pReq) {
3,736✔
12133
  int32_t code = 0;
3,736✔
12134
  int32_t lino;
12135

12136
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
3,736!
12137

12138
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tbName));
7,472!
12139
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->action));
7,472!
12140
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->colId));
7,472!
12141
  switch (pReq->action) {
3,736!
12142
    case TSDB_ALTER_TABLE_ADD_COLUMN:
2,096✔
12143
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
4,192!
12144
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
4,192!
12145
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
4,192!
12146
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
4,192!
12147
      break;
2,096✔
12148
    case TSDB_ALTER_TABLE_DROP_COLUMN:
58✔
12149
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
116!
12150
      break;
58✔
12151
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
1,446✔
12152
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
2,892!
12153
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->colModType));
2,892!
12154
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->colModBytes));
2,892!
12155
      break;
1,446✔
12156
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
36✔
12157
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
72!
12158
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colNewName));
72!
12159
      break;
36✔
12160
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
62✔
12161
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tagName));
124!
12162
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->isNull));
124!
12163
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->tagType));
124!
12164
      if (!pReq->isNull) {
62!
12165
        TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pReq->pTagVal, pReq->nTagVal));
124!
12166
      }
12167
      break;
62✔
12168
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
×
12169
      int32_t nTags = taosArrayGetSize(pReq->pMultiTag);
×
12170
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, nTags));
×
12171
      for (int32_t i = 0; i < nTags; i++) {
×
12172
        SMultiTagUpateVal *pTag = taosArrayGet(pReq->pMultiTag, i);
×
12173
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pTag->colId));
×
12174
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTag->tagName));
×
12175
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->isNull));
×
12176
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->tagType));
×
12177
        if (!pTag->isNull) {
×
12178
          TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pTag->pTagVal, pTag->nTagVal));
×
12179
        }
12180
      }
12181
      break;
×
12182
    }
12183
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
36✔
12184
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->updateTTL));
72!
12185
      if (pReq->updateTTL) {
36✔
12186
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newTTL));
16!
12187
      }
12188
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newCommentLen));
72!
12189
      if (pReq->newCommentLen > 0) {
36✔
12190
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->newComment));
56!
12191
      }
12192
      break;
36✔
12193
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
×
12194
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
12195
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
×
12196
      break;
×
12197
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
2✔
12198
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
4!
12199
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
4!
12200
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
4!
12201
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
4!
12202
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
4!
12203
      break;
2✔
12204
    case TSDB_ALTER_TABLE_ALTER_COLUMN_REF:
×
12205
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
12206
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refDbName));
×
12207
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refTbName));
×
12208
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refColName));
×
12209
      break;
×
12210
    case TSDB_ALTER_TABLE_REMOVE_COLUMN_REF:
×
12211
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
12212
      break;
×
12213
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COLUMN_REF:
×
12214
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
12215
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
×
12216
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
×
12217
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
×
12218
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refDbName));
×
12219
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refTbName));
×
12220
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refColName));
×
12221
      break;
×
12222
    default:
×
12223
      break;
×
12224
  }
12225
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
7,472!
12226
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->source));
7,472!
12227
  if (pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION || pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN) {
3,736✔
12228
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->typeMod));
4,196!
12229
  }
12230

12231
  tEndEncode(pEncoder);
3,736✔
12232
_exit:
3,736✔
12233
  return code;
3,736✔
12234
}
12235

12236
static int32_t tDecodeSVAlterTbReqCommon(SDecoder *pDecoder, SVAlterTbReq *pReq) {
39,547✔
12237
  int32_t code = 0;
39,547✔
12238
  int32_t lino;
12239

12240
  TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tbName));
79,094!
12241
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->action));
79,094!
12242
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->colId));
79,094!
12243
  switch (pReq->action) {
39,547!
12244
    case TSDB_ALTER_TABLE_ADD_COLUMN:
10,564✔
12245
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
21,128!
12246
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
21,128!
12247
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
21,128!
12248
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
21,128!
12249
      break;
10,564✔
12250
    case TSDB_ALTER_TABLE_DROP_COLUMN:
316✔
12251
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
632!
12252
      break;
316✔
12253
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
1,594✔
12254
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
3,188!
12255
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->colModType));
3,188!
12256
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->colModBytes));
3,188!
12257
      break;
1,594✔
12258
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
190✔
12259
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
380!
12260
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colNewName));
380!
12261
      break;
190✔
12262
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
26,333✔
12263
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tagName));
52,666!
12264
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->isNull));
52,666!
12265
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->tagType));
52,666!
12266
      if (!pReq->isNull) {
26,333✔
12267
        TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &pReq->pTagVal, &pReq->nTagVal));
51,642!
12268
      }
12269
      break;
26,333✔
12270
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
10✔
12271
      int32_t nTags;
12272
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &nTags));
10!
12273
      pReq->pMultiTag = taosArrayInit(nTags, sizeof(SMultiTagUpateVal));
10✔
12274
      if (pReq->pMultiTag == NULL) {
10!
12275
        TAOS_CHECK_EXIT(terrno);
×
12276
      }
12277
      for (int32_t i = 0; i < nTags; i++) {
70✔
12278
        SMultiTagUpateVal tag;
12279
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &tag.colId));
60!
12280
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &tag.tagName));
60!
12281
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.isNull));
60!
12282
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.tagType));
60!
12283
        if (!tag.isNull) {
60✔
12284
          TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &tag.pTagVal, &tag.nTagVal));
48!
12285
        }
12286
        if (taosArrayPush(pReq->pMultiTag, &tag) == NULL) {
120!
12287
          TAOS_CHECK_EXIT(terrno);
×
12288
        }
12289
      }
12290
      break;
10✔
12291
    }
12292
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
222✔
12293
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->updateTTL));
444!
12294
      if (pReq->updateTTL) {
222✔
12295
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newTTL));
168!
12296
      }
12297
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newCommentLen));
444!
12298
      if (pReq->newCommentLen > 0) {
222✔
12299
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->newComment));
212!
12300
      }
12301
      break;
222✔
12302
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
22✔
12303
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
44!
12304
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
44!
12305
      break;
22✔
12306
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
6✔
12307
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
12!
12308
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
12!
12309
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
12!
12310
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
12!
12311
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
12!
12312
      break;
6✔
12313
    case TSDB_ALTER_TABLE_ALTER_COLUMN_REF:
136✔
12314
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
272!
12315
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refDbName));
272!
12316
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refTbName));
272!
12317
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refColName));
272!
12318
      break;
136✔
12319
    case TSDB_ALTER_TABLE_REMOVE_COLUMN_REF:
88✔
12320
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
176!
12321
      break;
88✔
12322
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COLUMN_REF:
66✔
12323
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
132!
12324
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
132!
12325
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
132!
12326
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
132!
12327
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refDbName));
132!
12328
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refTbName));
132!
12329
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refColName));
132!
12330
      break;
66✔
12331
    default:
×
12332
      break;
×
12333
  }
12334
_exit:
39,547✔
12335
  return code;
39,547✔
12336
}
12337

12338
int32_t tDecodeSVAlterTbReq(SDecoder *pDecoder, SVAlterTbReq *pReq) {
19,830✔
12339
  int32_t code = 0;
19,830✔
12340
  int32_t lino;
12341

12342
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
19,830!
12343
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
19,830!
12344

12345
  pReq->ctimeMs = 0;
19,830✔
12346
  if (!tDecodeIsEnd(pDecoder)) {
19,830!
12347
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
39,660!
12348
  }
12349
  if (!tDecodeIsEnd(pDecoder)) {
19,830!
12350
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->source));
39,660!
12351
  }
12352
  if (pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN || pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
19,830✔
12353
    if (!tDecodeIsEnd(pDecoder)) {
5,294!
12354
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->typeMod));
10,588!
12355
    }
12356
  }
12357

12358
  tEndDecode(pDecoder);
19,830✔
12359
_exit:
19,830✔
12360
  return code;
19,830✔
12361
}
12362

12363
int32_t tDecodeSVAlterTbReqSetCtime(SDecoder *pDecoder, SVAlterTbReq *pReq, int64_t ctimeMs) {
19,717✔
12364
  int32_t code = 0;
19,717✔
12365
  int32_t lino;
12366

12367
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
19,717!
12368
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
19,717!
12369

12370
  pReq->ctimeMs = 0;
19,717✔
12371
  if (!tDecodeIsEnd(pDecoder)) {
19,717!
12372
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
19,717✔
12373
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
39,434!
12374
  }
12375

12376
  tEndDecode(pDecoder);
19,717✔
12377
_exit:
19,717✔
12378
  return code;
19,717✔
12379
}
12380

12381
void tfreeMultiTagUpateVal(void *val) {
×
12382
  SMultiTagUpateVal *pTag = val;
×
12383
  taosMemoryFree(pTag->tagName);
×
12384
  for (int i = 0; i < taosArrayGetSize(pTag->pTagArray); ++i) {
×
12385
    STagVal *p = (STagVal *)taosArrayGet(pTag->pTagArray, i);
×
12386
    if (IS_VAR_DATA_TYPE(p->type)) {
×
12387
      taosMemoryFreeClear(p->pData);
×
12388
    }
12389
  }
12390

12391
  taosArrayDestroy(pTag->pTagArray);
×
12392
}
×
12393
int32_t tEncodeSVAlterTbRsp(SEncoder *pEncoder, const SVAlterTbRsp *pRsp) {
39,448✔
12394
  int32_t code = 0;
39,448✔
12395
  int32_t lino;
12396

12397
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
39,448!
12398
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->code));
78,896!
12399
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta ? 1 : 0));
78,896!
12400
  if (pRsp->pMeta) {
39,448✔
12401
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
11,050!
12402
  }
12403
  tEndEncode(pEncoder);
39,448✔
12404
_exit:
39,448✔
12405
  return code;
39,448✔
12406
}
12407

12408
int32_t tDecodeSVAlterTbRsp(SDecoder *pDecoder, SVAlterTbRsp *pRsp) {
1,840✔
12409
  int32_t meta = 0;
1,840✔
12410
  int32_t code = 0;
1,840✔
12411
  int32_t lino;
12412
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
1,840!
12413
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->code));
3,680!
12414
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
1,840!
12415
  if (meta) {
1,840✔
12416
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
918!
12417
    if (NULL == pRsp->pMeta) {
918!
12418
      TAOS_CHECK_EXIT(terrno);
×
12419
    }
12420
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
918!
12421
  }
12422
  tEndDecode(pDecoder);
1,840✔
12423
_exit:
1,840✔
12424
  return code;
1,840✔
12425
}
12426

12427
int32_t tEncodeSMAlterStbRsp(SEncoder *pEncoder, const SMAlterStbRsp *pRsp) {
18,242✔
12428
  int32_t code = 0;
18,242✔
12429
  int32_t lino;
12430

12431
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
18,242!
12432
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
36,484!
12433
  if (pRsp->pMeta->pSchemas) {
18,242!
12434
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
18,242!
12435
  }
12436
  tEndEncode(pEncoder);
18,242✔
12437
_exit:
18,242✔
12438
  return code;
18,242✔
12439
}
12440

12441
int32_t tDecodeSMAlterStbRsp(SDecoder *pDecoder, SMAlterStbRsp *pRsp) {
1,160✔
12442
  int32_t meta = 0;
1,160✔
12443
  int32_t code = 0;
1,160✔
12444
  int32_t lino;
12445

12446
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
1,160!
12447
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
1,160!
12448
  if (meta) {
1,160!
12449
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
1,160!
12450
    if (NULL == pRsp->pMeta) {
1,160!
12451
      TAOS_CHECK_EXIT(terrno);
×
12452
    }
12453
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
1,160!
12454
  }
12455
  tEndDecode(pDecoder);
1,160✔
12456
_exit:
1,160✔
12457
  return code;
1,160✔
12458
}
12459

12460
void tFreeSMAlterStbRsp(SMAlterStbRsp *pRsp) {
9,121✔
12461
  if (NULL == pRsp) {
9,121!
12462
    return;
×
12463
  }
12464

12465
  if (pRsp->pMeta) {
9,121!
12466
    taosMemoryFree(pRsp->pMeta->pSchemas);
9,121!
12467
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
9,121!
12468
    taosMemoryFree(pRsp->pMeta->pColRefs);
9,121!
12469
    taosMemoryFree(pRsp->pMeta);
9,121!
12470
  }
12471
}
12472

12473
int32_t tEncodeSMCreateStbRsp(SEncoder *pEncoder, const SMCreateStbRsp *pRsp) {
21,714✔
12474
  int32_t code = 0;
21,714✔
12475
  int32_t lino;
12476

12477
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
21,714!
12478
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
43,428!
12479
  if (pRsp->pMeta->pSchemas) {
21,714!
12480
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
21,714!
12481
  }
12482
  tEndEncode(pEncoder);
21,714✔
12483

12484
_exit:
21,714✔
12485
  return code;
21,714✔
12486
}
12487

12488
int32_t tDecodeSMCreateStbRsp(SDecoder *pDecoder, SMCreateStbRsp *pRsp) {
1,200✔
12489
  int32_t meta = 0;
1,200✔
12490
  int32_t code = 0;
1,200✔
12491
  int32_t lino;
12492

12493
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
1,200!
12494
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
1,200!
12495
  if (meta) {
1,200!
12496
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
1,200!
12497
    if (NULL == pRsp->pMeta) {
1,200!
12498
      TAOS_CHECK_EXIT(terrno);
×
12499
    }
12500
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
1,200!
12501
  }
12502
  tEndDecode(pDecoder);
1,200✔
12503

12504
  return code;
1,200✔
12505

12506
_exit:
×
12507
  tFreeSTableMetaRsp(pRsp->pMeta);
×
12508
  taosMemoryFreeClear(pRsp->pMeta);
×
12509
  return code;
×
12510
}
12511

12512
void tFreeSMCreateStbRsp(SMCreateStbRsp *pRsp) {
10,857✔
12513
  if (NULL == pRsp) {
10,857!
12514
    return;
×
12515
  }
12516

12517
  if (pRsp->pMeta) {
10,857!
12518
    taosMemoryFree(pRsp->pMeta->pSchemas);
10,857!
12519
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
10,857!
12520
    taosMemoryFree(pRsp->pMeta->pColRefs);
10,857!
12521
    taosMemoryFree(pRsp->pMeta);
10,857!
12522
  }
12523
}
12524

12525
int32_t tEncodeSTqOffsetVal(SEncoder *pEncoder, const STqOffsetVal *pOffsetVal) {
121,941✔
12526
  int32_t code = 0;
121,941✔
12527
  int32_t lino;
12528

12529
  int8_t type = pOffsetVal->type < 0 ? pOffsetVal->type : (TQ_OFFSET_VERSION << 4) | pOffsetVal->type;
121,941✔
12530
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, type));
243,882!
12531
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
121,941!
12532
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->uid));
8,264!
12533
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->ts));
8,264!
12534
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pOffsetVal->primaryKey.type));
8,264!
12535
    if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
4,132!
12536
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pOffsetVal->primaryKey.pData, pOffsetVal->primaryKey.nData));
×
12537
    } else {
12538
      TAOS_CHECK_EXIT(tEncodeI64(pEncoder, VALUE_GET_TRIVIAL_DATUM(&pOffsetVal->primaryKey)));
8,266!
12539
    }
12540

12541
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
117,809✔
12542
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->version));
232,986!
12543
  } else {
12544
    // do nothing
12545
  }
12546
_exit:
1,316✔
12547
  return code;
121,941✔
12548
}
12549

12550
int32_t tDecodeSTqOffsetVal(SDecoder *pDecoder, STqOffsetVal *pOffsetVal) {
60,515✔
12551
  int32_t code = 0;
60,515✔
12552
  int32_t lino;
12553

12554
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->type));
121,032!
12555
  int8_t offsetVersion = 0;
60,517✔
12556
  if (pOffsetVal->type > 0) {
60,517✔
12557
    offsetVersion = (pOffsetVal->type >> 4);
57,715✔
12558
    pOffsetVal->type = pOffsetVal->type & 0x0F;
57,715✔
12559
  }
12560
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
60,517✔
12561
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->uid));
3,488!
12562
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->ts));
3,491!
12563
    if (offsetVersion >= TQ_OFFSET_VERSION) {
1,745!
12564
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->primaryKey.type));
3,492!
12565
      if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
1,746!
12566
        TAOS_CHECK_EXIT(
×
12567
            tDecodeBinaryAlloc32(pDecoder, (void **)&pOffsetVal->primaryKey.pData, &pOffsetVal->primaryKey.nData));
12568
      } else {
12569
        TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &VALUE_GET_TRIVIAL_DATUM(&pOffsetVal->primaryKey)));
3,490!
12570
      }
12571
    }
12572
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
58,775✔
12573
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->version));
111,392!
12574
  } else {
12575
    // do nothing
12576
  }
12577
_exit:
3,079✔
12578
  return code;
60,518✔
12579
}
12580

12581
void tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) {
137,257✔
12582
  if (pVal->type == TMQ_OFFSET__RESET_NONE) {
137,257✔
12583
    (void)snprintf(buf, maxLen, "none");
653✔
12584
  } else if (pVal->type == TMQ_OFFSET__RESET_EARLIEST) {
136,604✔
12585
    (void)snprintf(buf, maxLen, "earliest");
3,052✔
12586
  } else if (pVal->type == TMQ_OFFSET__RESET_LATEST) {
133,552✔
12587
    (void)snprintf(buf, maxLen, "latest");
86✔
12588
  } else if (pVal->type == TMQ_OFFSET__LOG) {
133,466✔
12589
    (void)snprintf(buf, maxLen, "wal:%" PRId64, pVal->version);
129,004✔
12590
  } else if (pVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pVal->type == TMQ_OFFSET__SNAPSHOT_META) {
4,462!
12591
    if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
4,462!
12592
      char *tmp = taosMemoryCalloc(1, pVal->primaryKey.nData + 1);
×
12593
      if (tmp == NULL) return;
×
12594
      (void)memcpy(tmp, pVal->primaryKey.pData, pVal->primaryKey.nData);
×
12595
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%s", pVal->uid, pVal->ts,
×
12596
                     pVal->primaryKey.type, tmp);
×
12597
      taosMemoryFree(tmp);
×
12598
    } else {
12599
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%" PRId64, pVal->uid, pVal->ts,
4,468✔
12600
                     pVal->primaryKey.type, VALUE_GET_TRIVIAL_DATUM(&pVal->primaryKey));
4,468✔
12601
    }
12602
  }
12603
}
12604

12605
bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
34,919✔
12606
  if (pLeft->type == pRight->type) {
34,919✔
12607
    if (pLeft->type == TMQ_OFFSET__LOG) {
32,929✔
12608
      return pLeft->version == pRight->version;
29,562✔
12609
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_DATA) {
3,367!
12610
      if (pLeft->primaryKey.type != 0) {
3,367!
12611
        if (pLeft->primaryKey.type != pRight->primaryKey.type) return false;
×
12612
        if (tValueCompare(&pLeft->primaryKey, &pRight->primaryKey) != 0) return false;
×
12613
      }
12614
      return pLeft->uid == pRight->uid && pLeft->ts == pRight->ts;
3,367✔
12615
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_META) {
×
12616
      return pLeft->uid == pRight->uid;
×
12617
    } else {
12618
      uError("offset type:%d", pLeft->type);
×
12619
    }
12620
  }
12621
  return false;
1,990✔
12622
}
12623

12624
void tOffsetCopy(STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
186,931✔
12625
  tOffsetDestroy(pLeft);
186,931✔
12626
  *pLeft = *pRight;
186,931✔
12627
  if (IS_VAR_DATA_TYPE(pRight->primaryKey.type)) {
186,931!
12628
    pLeft->primaryKey.pData = taosMemoryMalloc(pRight->primaryKey.nData);
×
12629
    if (pLeft->primaryKey.pData == NULL) {
×
12630
      uError("failed to allocate memory for offset");
×
12631
      return;
×
12632
    }
12633
    (void)memcpy(pLeft->primaryKey.pData, pRight->primaryKey.pData, pRight->primaryKey.nData);
×
12634
  }
12635
}
12636

12637
void tOffsetDestroy(void *param) {
14,324,938✔
12638
  if (param == NULL) return;
14,324,938!
12639
  STqOffsetVal *pVal = (STqOffsetVal *)param;
14,324,938✔
12640
  if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
14,324,938!
12641
    taosMemoryFreeClear(pVal->primaryKey.pData);
×
12642
  }
12643
}
12644

12645
void tDeleteSTqOffset(void *param) {
10,452✔
12646
  if (param == NULL) return;
10,452✔
12647
  STqOffset *pVal = (STqOffset *)param;
10,451✔
12648
  tOffsetDestroy(&pVal->val);
10,451✔
12649
}
12650

12651
int32_t tEncodeSTqOffset(SEncoder *pEncoder, const STqOffset *pOffset) {
1,434✔
12652
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pOffset->val));
1,434!
12653
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pOffset->subKey));
2,868!
12654
  return 0;
1,434✔
12655
}
12656

12657
int32_t tDecodeSTqOffset(SDecoder *pDecoder, STqOffset *pOffset) {
10,482✔
12658
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pOffset->val));
10,482!
12659
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pOffset->subKey));
10,482!
12660
  return 0;
10,482✔
12661
}
12662

12663
int32_t tEncodeMqVgOffset(SEncoder *pEncoder, const SMqVgOffset *pOffset) {
816✔
12664
  TAOS_CHECK_RETURN(tEncodeSTqOffset(pEncoder, &pOffset->offset));
816!
12665
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pOffset->consumerId));
1,632!
12666
  return 0;
816✔
12667
}
12668

12669
int32_t tDecodeMqVgOffset(SDecoder *pDecoder, SMqVgOffset *pOffset) {
10,376✔
12670
  TAOS_CHECK_RETURN(tDecodeSTqOffset(pDecoder, &pOffset->offset));
10,376!
12671
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pOffset->consumerId));
20,752!
12672
  return 0;
10,376✔
12673
}
12674

12675
int32_t tEncodeSTqCheckInfo(SEncoder *pEncoder, const STqCheckInfo *pInfo) {
206✔
12676
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->topic));
412!
12677
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->ntbUid));
412!
12678
  int32_t sz = taosArrayGetSize(pInfo->colIdList);
206✔
12679
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, sz));
206!
12680
  for (int32_t i = 0; i < sz; i++) {
880✔
12681
    int16_t colId = *(int16_t *)taosArrayGet(pInfo->colIdList, i);
674✔
12682
    TAOS_CHECK_RETURN(tEncodeI16(pEncoder, colId));
1,348!
12683
  }
12684
  return pEncoder->pos;
206✔
12685
}
12686

12687
int32_t tDecodeSTqCheckInfo(SDecoder *pDecoder, STqCheckInfo *pInfo) {
208✔
12688
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->topic));
208!
12689
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->ntbUid));
414!
12690
  int32_t sz = 0;
207✔
12691
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &sz));
207!
12692
  pInfo->colIdList = taosArrayInit(sz, sizeof(int16_t));
207✔
12693
  if (pInfo->colIdList == NULL) {
208!
12694
    TAOS_CHECK_RETURN(terrno);
×
12695
  }
12696
  for (int32_t i = 0; i < sz; i++) {
764✔
12697
    int16_t colId = 0;
558✔
12698
    TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &colId));
557!
12699
    if (taosArrayPush(pInfo->colIdList, &colId) == NULL) {
1,113!
12700
      TAOS_CHECK_RETURN(terrno);
×
12701
    }
12702
  }
12703
  return 0;
206✔
12704
}
12705
void tDeleteSTqCheckInfo(STqCheckInfo *pInfo) { taosArrayDestroy(pInfo->colIdList); }
14,147✔
12706

12707
int32_t tEncodeSMqRebVgReq(SEncoder *pCoder, const SMqRebVgReq *pReq) {
4,810✔
12708
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
4,810!
12709
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->leftForVer));
9,620!
12710
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->vgId));
9,620!
12711
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->oldConsumerId));
9,620!
12712
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->newConsumerId));
9,620!
12713
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->subKey));
9,620!
12714
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->subType));
9,620!
12715
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->withMeta));
9,620!
12716

12717
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
4,810✔
12718
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
7,776!
12719
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
922✔
12720
    TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
320!
12721
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
320!
12722
  }
12723
  tEndEncode(pCoder);
4,810✔
12724
  return 0;
4,810✔
12725
}
12726

12727
int32_t tDecodeSMqRebVgReq(SDecoder *pCoder, SMqRebVgReq *pReq) {
2,954✔
12728
  int32_t code = 0;
2,954✔
12729
  int32_t lino;
12730

12731
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
2,954!
12732

12733
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->leftForVer));
5,906!
12734

12735
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->vgId));
5,905!
12736
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->oldConsumerId));
5,903!
12737
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->newConsumerId));
5,902!
12738
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->subKey));
2,951!
12739
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->subType));
5,904!
12740
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->withMeta));
5,904!
12741

12742
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
2,952✔
12743
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
4,687!
12744
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
609✔
12745
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
212!
12746
    if (!tDecodeIsEnd(pCoder)) {
106!
12747
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
212!
12748
    }
12749
  }
12750

12751
  tEndDecode(pCoder);
2,953✔
12752
_exit:
2,953✔
12753
  return code;
2,953✔
12754
}
12755

12756
int32_t tEncodeDeleteRes(SEncoder *pCoder, const SDeleteRes *pRes) {
235,317✔
12757
  int32_t nUid = taosArrayGetSize(pRes->uidList);
235,317✔
12758
  int32_t code = 0;
235,322✔
12759
  int32_t lino;
12760

12761
  TAOS_CHECK_EXIT(tEncodeU64(pCoder, pRes->suid));
470,644!
12762
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, nUid));
235,322!
12763
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
527,867✔
12764
    TAOS_CHECK_EXIT(tEncodeU64(pCoder, *(uint64_t *)taosArrayGet(pRes->uidList, iUid)));
585,090!
12765
  }
12766
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->skey));
470,644!
12767
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ekey));
470,644!
12768
  TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRes->affectedRows));
470,644!
12769

12770
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tableFName));
470,644!
12771
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tsColName));
470,644!
12772
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ctimeMs));
470,644!
12773
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pRes->source));
470,644!
12774

12775
_exit:
235,322✔
12776
  return code;
235,322✔
12777
}
12778

12779
int32_t tDecodeDeleteRes(SDecoder *pCoder, SDeleteRes *pRes) {
119,007✔
12780
  int32_t  nUid;
12781
  uint64_t uid;
12782
  int32_t  code = 0;
119,007✔
12783
  int32_t  lino;
12784

12785
  TAOS_CHECK_EXIT(tDecodeU64(pCoder, &pRes->suid));
238,018!
12786
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &nUid));
119,005!
12787
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
266,686✔
12788
    TAOS_CHECK_EXIT(tDecodeU64(pCoder, &uid));
147,681!
12789
    if (pRes->uidList) {
147,681✔
12790
      if (taosArrayPush(pRes->uidList, &uid) == NULL) {
295,340!
12791
        TAOS_CHECK_EXIT(terrno);
×
12792
      }
12793
    }
12794
  }
12795
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->skey));
238,017!
12796
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ekey));
238,018!
12797
  TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRes->affectedRows));
238,023!
12798

12799
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tableFName));
119,013!
12800
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tsColName));
119,015!
12801

12802
  pRes->ctimeMs = 0;
119,018✔
12803
  if (!tDecodeIsEnd(pCoder)) {
119,018✔
12804
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ctimeMs));
238,025!
12805
  }
12806
  if (!tDecodeIsEnd(pCoder)) {
119,021✔
12807
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pRes->source));
238,027!
12808
  }
12809

12810
_exit:
119,026✔
12811
  return code;
119,026✔
12812
}
12813

12814
int32_t tEncodeMqMetaRsp(SEncoder *pEncoder, const SMqMetaRsp *pRsp) {
638✔
12815
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
638!
12816
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->resMsgType));
1,276!
12817
  TAOS_CHECK_RETURN(tEncodeBinary(pEncoder, pRsp->metaRsp, pRsp->metaRspLen));
1,276!
12818
  return 0;
638✔
12819
}
12820

12821
int32_t tDecodeMqMetaRsp(SDecoder *pDecoder, SMqMetaRsp *pRsp) {
433✔
12822
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
433!
12823
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->resMsgType));
866!
12824
  TAOS_CHECK_RETURN(tDecodeBinaryAlloc(pDecoder, &pRsp->metaRsp, (uint64_t *)&pRsp->metaRspLen));
866!
12825
  return 0;
433✔
12826
}
12827

12828
void tDeleteMqMetaRsp(SMqMetaRsp *pRsp) { taosMemoryFree(pRsp->metaRsp); }
615!
12829

12830
int32_t tEncodeMqDataRspCommon(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
57,871✔
12831
  int32_t code = 0;
57,871✔
12832
  int32_t lino;
12833

12834
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->reqOffset));
57,871!
12835
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
57,870!
12836
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->blockNum));
115,740!
12837
  if (pRsp->blockNum != 0) {
57,870✔
12838
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withTbName));
76,388!
12839
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withSchema));
76,388!
12840

12841
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
761,390✔
12842
      int32_t bLen = *(int32_t *)taosArrayGet(pRsp->blockDataLen, i);
724,910✔
12843
      void   *data = taosArrayGetP(pRsp->blockData, i);
724,779✔
12844
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, (const uint8_t *)data, bLen));
1,448,320!
12845
      if (pRsp->withSchema) {
724,160✔
12846
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosArrayGetP(pRsp->blockSchema, i);
266,042✔
12847
        TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pEncoder, pSW));
265,311!
12848
      }
12849
      if (pRsp->withTbName) {
723,429✔
12850
        char *tbName = (char *)taosArrayGetP(pRsp->blockTbName, i);
266,584✔
12851
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, tbName));
266,351!
12852
      }
12853
    }
12854
  }
12855

12856
_exit:
56,156✔
12857
  return code;
56,156✔
12858
}
12859

12860
int32_t tEncodeMqDataRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
57,833✔
12861
  TAOS_CHECK_RETURN(tEncodeMqDataRspCommon(pEncoder, pRsp));
57,833!
12862
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->sleepTime));
115,664!
12863

12864
  return 0;
57,832✔
12865
}
12866

12867
int32_t tDecodeMqDataRspCommon(SDecoder *pDecoder, SMqDataRsp *pRsp) {
654✔
12868
  int32_t code = 0;
654✔
12869
  int32_t lino;
12870

12871
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
654!
12872
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
654!
12873
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
1,308!
12874

12875
  if (pRsp->blockNum != 0) {
654✔
12876
    if ((pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
278!
12877
      TAOS_CHECK_EXIT(terrno);
×
12878
    }
12879
    if ((pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(int32_t))) == NULL) {
278!
12880
      TAOS_CHECK_EXIT(terrno);
×
12881
    }
12882
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withTbName));
556!
12883
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withSchema));
556!
12884
    if (pRsp->withTbName) {
278✔
12885
      if ((pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
121!
12886
        TAOS_CHECK_EXIT(terrno);
×
12887
      }
12888
    }
12889
    if (pRsp->withSchema) {
278✔
12890
      if ((pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
121!
12891
        TAOS_CHECK_EXIT(terrno);
×
12892
      }
12893
    }
12894

12895
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
4,075✔
12896
      void    *data = NULL;
3,797✔
12897
      uint32_t bLen = 0;
3,797✔
12898
      TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, (uint8_t **)&data, &bLen));
3,797!
12899
      if (taosArrayPush(pRsp->blockData, &data) == NULL) {
7,594!
12900
        TAOS_CHECK_EXIT(terrno);
×
12901
      }
12902
      pRsp->blockDataElementFree = false;
3,797✔
12903

12904
      int32_t len = bLen;
3,797✔
12905
      if (taosArrayPush(pRsp->blockDataLen, &len) == NULL) {
7,594!
12906
        TAOS_CHECK_EXIT(terrno);
×
12907
      }
12908

12909
      if (pRsp->withSchema) {
3,797✔
12910
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosMemoryCalloc(1, sizeof(SSchemaWrapper));
442!
12911
        if (pSW == NULL) {
442!
12912
          TAOS_CHECK_EXIT(terrno);
×
12913
        }
12914

12915
        if ((code = tDecodeSSchemaWrapper(pDecoder, pSW))) {
884!
12916
          taosMemoryFree(pSW);
×
12917
          goto _exit;
×
12918
        }
12919

12920
        if (taosArrayPush(pRsp->blockSchema, &pSW) == NULL) {
884!
12921
          taosMemoryFree(pSW);
×
12922
          TAOS_CHECK_EXIT(terrno);
×
12923
        }
12924
      }
12925

12926
      if (pRsp->withTbName) {
3,797✔
12927
        char *tbName;
12928
        TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &tbName));
442!
12929
        if (taosArrayPush(pRsp->blockTbName, &tbName) == NULL) {
884!
12930
          TAOS_CHECK_EXIT(terrno);
×
12931
        }
12932
      }
12933
    }
12934
  }
12935

12936
_exit:
654✔
12937
  return code;
654✔
12938
}
12939

12940
int32_t tDecodeMqDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
636✔
12941
  TAOS_CHECK_RETURN(tDecodeMqDataRspCommon(pDecoder, pRsp));
636!
12942
  if (!tDecodeIsEnd(pDecoder)) {
636!
12943
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->sleepTime));
1,272!
12944
  }
12945

12946
  return 0;
636✔
12947
}
12948

12949
int32_t tDecodeMqRawDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
×
12950
  int32_t code = 0;
×
12951
  int32_t lino;
12952

12953
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
×
12954
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
×
12955
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
×
12956
_exit:
×
12957
  return code;
×
12958
}
12959

12960
static void tDeleteMqDataRspCommon(SMqDataRsp *pRsp) {
44,002✔
12961
  taosArrayDestroy(pRsp->blockDataLen);
44,002✔
12962
  pRsp->blockDataLen = NULL;
44,006✔
12963
  if (pRsp->blockDataElementFree) {
44,006✔
12964
    taosArrayDestroyP(pRsp->blockData, NULL);
19,057✔
12965
  } else {
12966
    taosArrayDestroy(pRsp->blockData);
24,949✔
12967
  }
12968
  pRsp->blockData = NULL;
44,006✔
12969
  taosArrayDestroyP(pRsp->blockSchema, (FDelete)tDeleteSchemaWrapper);
44,006✔
12970
  pRsp->blockSchema = NULL;
44,005✔
12971
  taosArrayDestroyP(pRsp->blockTbName, NULL);
44,005✔
12972
  pRsp->blockTbName = NULL;
44,005✔
12973
  tOffsetDestroy(&pRsp->reqOffset);
44,005✔
12974
  tOffsetDestroy(&pRsp->rspOffset);
44,005✔
12975
  taosMemoryFreeClear(pRsp->data);
44,004!
12976
}
44,004✔
12977

12978
void tDeleteMqDataRsp(SMqDataRsp *rsp) { tDeleteMqDataRspCommon(rsp); }
33,640✔
12979

12980
int32_t tEncodeSTaosxRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
38✔
12981
  int32_t code = 0;
38✔
12982
  int32_t lino = 0;
38✔
12983

12984
  TAOS_CHECK_EXIT(tEncodeMqDataRspCommon(pEncoder, pRsp));
38!
12985
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->createTableNum));
76!
12986
  if (pRsp->createTableNum) {
38!
12987
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
118✔
12988
      void   *createTableReq = taosArrayGetP(pRsp->createTableReq, i);
80✔
12989
      int32_t createTableLen = *(int32_t *)taosArrayGet(pRsp->createTableLen, i);
80✔
12990
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, createTableReq, createTableLen));
160!
12991
    }
12992
  }
12993

12994
_exit:
38✔
12995
  return code;
38✔
12996
}
12997

12998
int32_t tDecodeSTaosxRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
18✔
12999
  int32_t code = 0;
18✔
13000
  int32_t lino;
13001

13002
  TAOS_CHECK_EXIT(tDecodeMqDataRspCommon(pDecoder, pRsp));
18!
13003
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->createTableNum));
36!
13004
  if (pRsp->createTableNum) {
18!
13005
    if ((pRsp->createTableLen = taosArrayInit(pRsp->createTableNum, sizeof(int32_t))) == NULL) {
18!
13006
      TAOS_CHECK_EXIT(terrno);
×
13007
    }
13008
    if ((pRsp->createTableReq = taosArrayInit(pRsp->createTableNum, sizeof(void *))) == NULL) {
18!
13009
      TAOS_CHECK_EXIT(terrno);
×
13010
    }
13011
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
55✔
13012
      void    *pCreate = NULL;
37✔
13013
      uint64_t len = 0;
37✔
13014
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
37!
13015
      int32_t l = (int32_t)len;
37✔
13016
      if (taosArrayPush(pRsp->createTableLen, &l) == NULL) {
74!
13017
        TAOS_CHECK_EXIT(terrno);
×
13018
      }
13019
      if (taosArrayPush(pRsp->createTableReq, &pCreate) == NULL) {
74!
13020
        TAOS_CHECK_EXIT(terrno);
×
13021
      }
13022
    }
13023
  }
13024
_exit:
18✔
13025
  return code;
18✔
13026
}
13027

13028
void tDeleteSTaosxRsp(SMqDataRsp *pRsp) {
10,362✔
13029
  tDeleteMqDataRspCommon(pRsp);
10,362✔
13030

13031
  taosArrayDestroy(pRsp->createTableLen);
10,363✔
13032
  pRsp->createTableLen = NULL;
10,364✔
13033
  taosArrayDestroyP(pRsp->createTableReq, NULL);
10,364✔
13034
  pRsp->createTableReq = NULL;
10,365✔
13035
}
10,365✔
13036

13037
void tDeleteMqRawDataRsp(SMqDataRsp *pRsp) {
×
13038
  tOffsetDestroy(&pRsp->reqOffset);
×
13039
  tOffsetDestroy(&pRsp->rspOffset);
×
13040
  if (pRsp->rawData != NULL) {
×
13041
    taosMemoryFree(POINTER_SHIFT(pRsp->rawData, -sizeof(SMqRspHead)));
×
13042
  }
13043
}
×
13044

13045
int32_t tEncodeSSingleDeleteReq(SEncoder *pEncoder, const SSingleDeleteReq *pReq) {
×
13046
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->tbname));
×
13047
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->startTs));
×
13048
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->endTs));
×
13049
  return 0;
×
13050
}
13051

13052
int32_t tDecodeSSingleDeleteReq(SDecoder *pDecoder, SSingleDeleteReq *pReq) {
×
13053
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->tbname));
×
13054
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->startTs));
×
13055
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->endTs));
×
13056
  return 0;
×
13057
}
13058

13059
int32_t tEncodeSBatchDeleteReq(SEncoder *pEncoder, const SBatchDeleteReq *pReq) {
×
13060
  int32_t code = 0;
×
13061
  int32_t lino;
13062

13063
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->suid));
×
13064
  int32_t sz = taosArrayGetSize(pReq->deleteReqs);
×
13065
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, sz));
×
13066
  for (int32_t i = 0; i < sz; i++) {
×
13067
    SSingleDeleteReq *pOneReq = taosArrayGet(pReq->deleteReqs, i);
×
13068
    TAOS_CHECK_EXIT(tEncodeSSingleDeleteReq(pEncoder, pOneReq));
×
13069
  }
13070
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
×
13071
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->level));
×
13072
_exit:
×
13073
  return code;
×
13074
}
13075

13076
static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
×
13077
  int32_t code = 0;
×
13078
  int32_t lino;
13079

13080
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->suid));
×
13081
  int32_t sz;
13082
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &sz));
×
13083
  pReq->deleteReqs = taosArrayInit(0, sizeof(SSingleDeleteReq));
×
13084
  if (pReq->deleteReqs == NULL) {
×
13085
    TAOS_CHECK_EXIT(terrno);
×
13086
  }
13087
  for (int32_t i = 0; i < sz; i++) {
×
13088
    SSingleDeleteReq deleteReq;
13089
    TAOS_CHECK_EXIT(tDecodeSSingleDeleteReq(pDecoder, &deleteReq));
×
13090
    if (taosArrayPush(pReq->deleteReqs, &deleteReq) == NULL) {
×
13091
      TAOS_CHECK_EXIT(terrno);
×
13092
    }
13093
  }
13094
_exit:
×
13095
  return code;
×
13096
}
13097

13098
int32_t tDecodeSBatchDeleteReq(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
×
13099
  int32_t code = 0;
×
13100
  int32_t lino;
13101

13102
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
×
13103

13104
  pReq->ctimeMs = 0;
×
13105
  if (!tDecodeIsEnd(pDecoder)) {
×
13106
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
×
13107
  }
13108
  if (!tDecodeIsEnd(pDecoder)) {
×
13109
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->level));
×
13110
  }
13111

13112
_exit:
×
13113
  return code;
×
13114
}
13115

13116
int32_t tDecodeSBatchDeleteReqSetCtime(SDecoder *pDecoder, SBatchDeleteReq *pReq, int64_t ctimeMs) {
×
13117
  int32_t code = 0;
×
13118
  int32_t lino;
13119

13120
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
×
13121

13122
  pReq->ctimeMs = 0;
×
13123
  if (!tDecodeIsEnd(pDecoder)) {
×
13124
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
×
13125
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
×
13126
  }
13127

13128
_exit:
×
13129
  return code;
×
13130
}
13131
int32_t transformRawSSubmitTbData(void *data, int64_t suid, int64_t uid, int32_t sver) {
×
13132
  int32_t  code = 0;
×
13133
  int32_t  lino = 0;
×
13134
  SDecoder decoder = {0};
×
13135
  tDecoderInit(&decoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t *)data);
×
13136

13137
  int32_t flags = 0;
×
13138
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &flags));
×
13139
  flags |= TD_REQ_FROM_TAOX;
×
13140
  flags &= ~SUBMIT_REQ_AUTO_CREATE_TABLE;
×
13141

13142
  SEncoder encoder = {0};
×
13143
  tEncoderInit(&encoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t *)data);
×
13144
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, flags));
×
13145
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, suid));
×
13146
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, uid));
×
13147
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, sver));
×
13148
_exit:
×
13149
  return code;
×
13150
}
13151

13152
static int32_t tPreCheckSubmitTbData(const SSubmitTbData *pSubmitData, int8_t *hasBlog) {
31,834,259✔
13153
  int32_t code = 0;
31,834,259✔
13154
  int32_t line = 0;
31,834,259✔
13155
  if (tBlobSetSize(pSubmitData->pBlobSet) > 0) {
31,834,259✔
13156
    *hasBlog = 1;
2✔
13157
    return code;
2✔
13158
  }
13159
    return 0;
31,904,650✔
13160
}
13161
static int32_t tEncodeSSubmitTbData(SEncoder *pCoder, const SSubmitTbData *pSubmitTbData) {
31,841,045✔
13162
  int32_t code = 0;
31,841,045✔
13163
  int32_t lino;
13164
  int8_t  hasBlog = 0;
31,841,045✔
13165

13166
  int32_t count = 0;
31,841,045✔
13167
  TAOS_CHECK_EXIT(tPreCheckSubmitTbData(pSubmitTbData, &hasBlog));
31,841,045!
13168

13169
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
31,896,599!
13170

13171
  int32_t flags = pSubmitTbData->flags | ((SUBMIT_REQUEST_VERSION) << 8);
31,989,869✔
13172

13173
  if (hasBlog) {
31,989,869✔
13174
    flags |= SUBMIT_REQ_WITH_BLOB;
2✔
13175
  }
13176
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, flags));
31,989,869!
13177

13178
  // auto create table
13179
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
31,989,869✔
13180
    if (!(pSubmitTbData->pCreateTbReq)) {
29,845!
13181
      uError("auto create table but request is NULL");
×
13182
      return TSDB_CODE_INVALID_MSG;
×
13183
    }
13184
    TAOS_CHECK_EXIT(tEncodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
29,845!
13185
  }
13186

13187
  // submit data
13188
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->suid));
63,979,716!
13189
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->uid));
63,979,716!
13190
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pSubmitTbData->sver));
63,979,716!
13191

13192
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
31,989,858✔
13193
    uint64_t  nColData = TARRAY_SIZE(pSubmitTbData->aCol);
22,609✔
13194
    SColData *aColData = (SColData *)TARRAY_DATA(pSubmitTbData->aCol);
22,609✔
13195

13196
    uError("encode %d row data", (int32_t)(nColData));
22,609!
13197
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, nColData));
22,660!
13198

13199
    for (uint64_t i = 0; i < nColData; i++) {
99,015✔
13200
      if (IS_STR_DATA_BLOB(aColData[i].type)) {
76,362!
13201
        count = aColData[i].numOfNull + aColData[i].numOfValue + aColData[i].numOfNone; 
2✔
13202
      }  
13203
      TAOS_CHECK_EXIT(tEncodeColData(SUBMIT_REQUEST_VERSION, pCoder, &aColData[i]));
76,362!
13204
    }
13205

13206
  } else {
13207
    uTrace("encode %d row data", (int32_t)(TARRAY_SIZE(pSubmitTbData->aRowP)));
31,967,249!
13208
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, TARRAY_SIZE(pSubmitTbData->aRowP)));
63,846,430!
13209

13210
    SRow **rows = (SRow **)TARRAY_DATA(pSubmitTbData->aRowP);
31,923,215✔
13211
    for (int32_t iRow = 0; iRow < TARRAY_SIZE(pSubmitTbData->aRowP); ++iRow) {
2,147,483,647✔
13212
      TAOS_CHECK_EXIT(tEncodeRow(pCoder, rows[iRow]));
2,147,483,647!
13213
    }
13214
    count = TARRAY_SIZE(pSubmitTbData->aRowP);
31,775,598✔
13215
  }
13216
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->ctimeMs));
63,596,502!
13217

13218
  if (hasBlog) {
31,798,251✔
13219
    tEncodeBlobSet(pCoder, pSubmitTbData->pBlobSet);
2✔
13220
    if (tBlobSetSize(pSubmitTbData->pBlobSet) != count) {
2!
13221
      uError("blob set size %d not match row size %d", tBlobSetSize(pSubmitTbData->pBlobSet), count);
×
13222
      return TSDB_CODE_INVALID_MSG;
×
13223
    }
13224
  }
13225

13226
  tEndEncode(pCoder);
31,798,251✔
13227
_exit:
31,970,856✔
13228
  return code;
31,970,856✔
13229
}
13230

13231
static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbData, void *rawData) {
24,502,735✔
13232
  int32_t code = 0;
24,502,735✔
13233
  int32_t lino;
13234
  int32_t flags;
13235
  uint8_t version;
13236

13237
  int8_t hasBlob = 0;
24,502,735✔
13238
  uint8_t*      dataAfterCreate = NULL;
24,502,735✔
13239
  uint8_t*      dataStart = pCoder->data + pCoder->pos;
24,502,735✔
13240
  uint32_t      posAfterCreate = 0;
24,502,735✔
13241

13242
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
24,502,735!
13243
  uint32_t pos = pCoder->pos;
24,503,467✔
13244
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &flags));
24,502,979!
13245
  uint32_t flagsLen = pCoder->pos - pos;
24,502,979✔
13246

13247
  if (flags & SUBMIT_REQ_WITH_BLOB) {
24,502,979!
13248
    hasBlob = 1;
×
13249
  }
13250
  pSubmitTbData->flags = flags & 0xff;
24,502,979✔
13251
  version = (flags >> 8) & 0xff;
24,502,979✔
13252

13253
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
24,502,979✔
13254
    pSubmitTbData->pCreateTbReq = taosMemoryCalloc(1, sizeof(SVCreateTbReq));
64,024!
13255
    if (pSubmitTbData->pCreateTbReq == NULL) {
64,194!
13256
      TAOS_CHECK_EXIT(terrno);
×
13257
    }
13258

13259
    TAOS_CHECK_EXIT(tDecodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
64,194!
13260
    dataAfterCreate = pCoder->data + pCoder->pos;
64,090✔
13261
    posAfterCreate = pCoder->pos;
64,090✔
13262
  }
13263

13264
  // submit data
13265
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->suid));
49,005,832!
13266
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->uid));
49,005,530!
13267
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pSubmitTbData->sver));
49,005,454!
13268

13269
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
24,502,711✔
13270
    uint64_t nColData = 0;
1,132✔
13271

13272
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nColData));
1,131!
13273

13274
    pSubmitTbData->aCol = taosArrayInit(nColData, sizeof(SColData));
1,131✔
13275
    if (pSubmitTbData->aCol == NULL) {
1,133!
13276
      TAOS_CHECK_EXIT(terrno);
×
13277
    }
13278

13279
    for (int32_t i = 0; i < nColData; ++i) {
7,469✔
13280
      TAOS_CHECK_EXIT(tDecodeColData(version, pCoder, taosArrayReserve(pSubmitTbData->aCol, 1)));
6,337!
13281
    }
13282
  } else {
13283
    uint64_t nRow = 0;
24,501,579✔
13284
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nRow));
24,501,560!
13285

13286
    uTrace("decode %d row data", (int32_t)nRow);
24,501,560✔
13287
    pSubmitTbData->aRowP = taosArrayInit(nRow, sizeof(SRow *));
24,501,560✔
13288
    if (pSubmitTbData->aRowP == NULL) {
24,502,231✔
13289
      TAOS_CHECK_EXIT(terrno);
70!
13290
    }
13291

13292
    for (int32_t iRow = 0; iRow < nRow; ++iRow) {
1,553,841,050✔
13293
      SRow **ppRow = taosArrayReserve(pSubmitTbData->aRowP, 1);
1,529,374,748✔
13294
      if (ppRow == NULL) {
1,529,323,473!
13295
        TAOS_CHECK_EXIT(terrno);
×
13296
      }
13297

13298
      TAOS_CHECK_EXIT(tDecodeRow(pCoder, ppRow));
1,529,323,473!
13299
    }
13300
    uTrace("decode row data size %d", (int32_t)(TARRAY_SIZE(pSubmitTbData->aRowP)));
24,466,302✔
13301
  }
13302

13303
  pSubmitTbData->ctimeMs = 0;
24,502,985✔
13304
  if (!tDecodeIsEnd(pCoder)) {
24,502,985!
13305
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->ctimeMs));
49,006,052!
13306
  }
13307

13308
  if (!tDecodeIsEnd(pCoder) && hasBlob) {
24,503,063!
13309
    TAOS_CHECK_EXIT(tDecodeBlobSet(pCoder, &pSubmitTbData->pBlobSet));
×
13310
  }
13311

13312
  if (rawData != NULL) {
24,503,063!
13313
    if (dataAfterCreate != NULL) {
×
13314
      TAOS_MEMCPY(dataAfterCreate - INT_BYTES - flagsLen, dataStart, INT_BYTES + flagsLen);
×
13315
      *(int32_t *)(dataAfterCreate - INT_BYTES - flagsLen) = pCoder->pos - posAfterCreate + flagsLen;
×
13316
      *(void **)rawData = dataAfterCreate - INT_BYTES - flagsLen;
×
13317
    } else {
13318
      *(void **)rawData = dataStart;
×
13319
    }
13320
  }
13321
  tEndDecode(pCoder);
24,503,063✔
13322

13323
_exit:
24,502,903✔
13324
  return code;
24,502,903✔
13325
}
13326

13327
int32_t tEncodeSubmitReq(SEncoder *pCoder, const SSubmitReq2 *pReq) {
31,864,271✔
13328
  int32_t code = 0;
31,864,271✔
13329
  int32_t lino;
13330

13331
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
31,864,271!
13332
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pReq->aSubmitTbData)));
63,741,120!
13333
  if (pReq->raw) {
31,873,797!
13334
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
×
13335
      void *data = taosArrayGetP(pReq->aSubmitTbData, i);
×
13336
      if (pCoder->data != NULL) {
×
13337
        TAOS_MEMCPY(pCoder->data + pCoder->pos, data, *(uint32_t *)data + INT_BYTES);
×
13338
      }
13339
      pCoder->pos += *(uint32_t *)data + INT_BYTES;
×
13340
    }
13341
  } else {
13342
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
63,857,090✔
13343
      SSubmitTbData *pSubmitTbData = taosArrayGet(pReq->aSubmitTbData, i);
31,887,031✔
13344
      if ((pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) && pSubmitTbData->pCreateTbReq == NULL) {
31,855,672✔
13345
        pSubmitTbData->flags &= ~SUBMIT_REQ_AUTO_CREATE_TABLE;
53✔
13346
      }
13347
      TAOS_CHECK_EXIT(tEncodeSSubmitTbData(pCoder, pSubmitTbData));
31,855,672!
13348
    }
13349
  }
13350

13351
  tEndEncode(pCoder);
31,751,919✔
13352
_exit:
31,956,264✔
13353
  return code;
31,956,264✔
13354
}
13355

13356
int32_t tDecodeSubmitReq(SDecoder *pCoder, SSubmitReq2 *pReq, SArray *rawList) {
24,413,612✔
13357
  int32_t code = 0;
24,413,612✔
13358

13359
  memset(pReq, 0, sizeof(*pReq));
24,413,612✔
13360

13361
  // decode
13362
  if (tStartDecode(pCoder) < 0) {
24,413,612!
13363
    code = TSDB_CODE_INVALID_MSG;
×
13364
    goto _exit;
×
13365
  }
13366

13367
  uint64_t nSubmitTbData;
13368
  if (tDecodeU64v(pCoder, &nSubmitTbData) < 0) {
24,413,925!
13369
    code = TSDB_CODE_INVALID_MSG;
×
13370
    goto _exit;
×
13371
  }
13372

13373
  pReq->aSubmitTbData = taosArrayInit(nSubmitTbData, sizeof(SSubmitTbData));
24,413,925✔
13374
  if (pReq->aSubmitTbData == NULL) {
24,413,910!
13375
    code = terrno;
×
13376
    goto _exit;
×
13377
  }
13378

13379
  for (uint64_t i = 0; i < nSubmitTbData; i++) {
48,916,837✔
13380
    SSubmitTbData *data = taosArrayReserve(pReq->aSubmitTbData, 1);
24,503,077✔
13381
    if (tDecodeSSubmitTbData(pCoder, data, rawList != NULL ? taosArrayReserve(rawList, 1) : NULL) < 0) {
24,502,928!
13382
      code = TSDB_CODE_INVALID_MSG;
×
13383
      goto _exit;
×
13384
    }
13385
  }
13386

13387
  tEndDecode(pCoder);
24,413,760✔
13388

13389
_exit:
24,413,697✔
13390
  return code;
24,413,697✔
13391
}
13392

13393
void tDestroySubmitTbData(SSubmitTbData *pTbData, int32_t flag) {
40,611,882✔
13394
  if (NULL == pTbData) {
40,611,882✔
13395
    return;
11,251✔
13396
  }
13397

13398
  if (flag == TSDB_MSG_FLG_ENCODE || flag == TSDB_MSG_FLG_CMPT) {
40,600,631✔
13399
    if (pTbData->pCreateTbReq) {
16,097,479✔
13400
      if (flag == TSDB_MSG_FLG_ENCODE) {
38,957!
13401
        tdDestroySVCreateTbReq(pTbData->pCreateTbReq);
38,963!
13402
      } else {
13403
        tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
×
13404
      }
13405
      taosMemoryFreeClear(pTbData->pCreateTbReq);
38,919!
13406
    }
13407

13408
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
16,097,466✔
13409
      if (pTbData->aCol) {
43,999!
13410
        int32_t   nColData = TARRAY_SIZE(pTbData->aCol);
44,008✔
13411
        SColData *aColData = (SColData *)TARRAY_DATA(pTbData->aCol);
44,008✔
13412

13413
        for (int32_t i = 0; i < nColData; ++i) {
151,798✔
13414
          tColDataDestroy(&aColData[i]);
107,786✔
13415
        }
13416
        taosArrayDestroy(pTbData->aCol);
44,012✔
13417
        pTbData->aCol = NULL;
44,012✔
13418
      }
13419
    } else if (pTbData->aRowP) {
16,053,467!
13420
      int32_t nRow = TARRAY_SIZE(pTbData->aRowP);
16,054,107✔
13421
      SRow  **rows = (SRow **)TARRAY_DATA(pTbData->aRowP);
16,054,107✔
13422

13423
      for (int32_t i = 0; i < nRow; ++i) {
1,400,835,828✔
13424
        tRowDestroy(rows[i]);
1,384,914,412✔
13425
        rows[i] = NULL;
1,384,781,721✔
13426
      }
13427
      taosArrayDestroy(pTbData->aRowP);
15,921,416✔
13428
    }
13429
  } else if (flag == TSDB_MSG_FLG_DECODE) {
24,503,152✔
13430
    if (pTbData->pCreateTbReq) {
24,503,011✔
13431
      tDestroySVSubmitCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
64,131✔
13432
      taosMemoryFreeClear(pTbData->pCreateTbReq);
64,133!
13433
    }
13434

13435
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
24,502,987✔
13436
      taosArrayDestroy(pTbData->aCol);
1,132✔
13437
      pTbData->aCol = NULL;
1,132✔
13438
    } else {
13439
      taosArrayDestroy(pTbData->aRowP);
24,501,855✔
13440
      pTbData->aRowP = NULL;
24,502,250✔
13441
    }
13442
  }
13443

13444
  if (pTbData->pBlobSet) {
40,608,800✔
13445
    tBlobSetDestroy(pTbData->pBlobSet);
1✔
13446
    pTbData->pBlobSet = NULL;
1✔
13447
  }
13448
  pTbData->aRowP = NULL;
40,608,800✔
13449
}
13450

13451
void tDestroySubmitReq(SSubmitReq2 *pReq, int32_t flag) {
40,623,333✔
13452
  if (pReq->aSubmitTbData == NULL) return;
40,623,333✔
13453

13454
  if (!pReq->raw) {
40,458,104!
13455
    int32_t        nSubmitTbData = TARRAY_SIZE(pReq->aSubmitTbData);
40,461,805✔
13456
    SSubmitTbData *aSubmitTbData = (SSubmitTbData *)TARRAY_DATA(pReq->aSubmitTbData);
40,461,805✔
13457

13458
    for (int32_t i = 0; i < nSubmitTbData; i++) {
81,032,711✔
13459
      tDestroySubmitTbData(&aSubmitTbData[i], flag);
40,565,704✔
13460
    }
13461
  }
13462

13463
  taosArrayDestroy(pReq->aSubmitTbData);
40,463,306✔
13464
  pReq->aSubmitTbData = NULL;
40,471,177✔
13465

13466
  if (pReq->aSubmitBlobData != NULL) {
40,471,177✔
13467
    int32_t nSubmitBlobData = TARRAY_SIZE(pReq->aSubmitBlobData);
1✔
13468
    for (int32_t i = 0; i < nSubmitBlobData; i++) {
2✔
13469
      SBlobSet *pBlobData = taosArrayGetP(pReq->aSubmitBlobData, i);
1✔
13470
      if (pBlobData) {
1!
13471
        tBlobSetDestroy(pBlobData);
×
13472
      }
13473
    }
13474
    taosArrayDestroy(pReq->aSubmitBlobData);
1✔
13475
    pReq->aSubmitBlobData = NULL;
1✔
13476
  }
13477
}
13478

13479
int32_t tEncodeSSubmitRsp2(SEncoder *pCoder, const SSubmitRsp2 *pRsp) {
47,903,328✔
13480
  int32_t code = 0;
47,903,328✔
13481
  int32_t lino;
13482

13483
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
47,903,328!
13484

13485
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRsp->affectedRows));
95,806,760!
13486

13487
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pRsp->aCreateTbRsp)));
95,806,723!
13488
  for (int32_t i = 0; i < taosArrayGetSize(pRsp->aCreateTbRsp); ++i) {
48,027,835✔
13489
    TAOS_CHECK_EXIT(tEncodeSVCreateTbRsp(pCoder, taosArrayGet(pRsp->aCreateTbRsp, i)));
124,494!
13490
  }
13491

13492
  tEndEncode(pCoder);
47,903,267✔
13493
_exit:
47,903,321✔
13494
  return code;
47,903,321✔
13495
}
13496

13497
int32_t tDecodeSSubmitRsp2(SDecoder *pCoder, SSubmitRsp2 *pRsp) {
15,984,248✔
13498
  int32_t code = 0;
15,984,248✔
13499

13500
  memset(pRsp, 0, sizeof(SSubmitRsp2));
15,984,248✔
13501

13502
  // decode
13503
  if (tStartDecode(pCoder) < 0) {
15,984,248✔
13504
    code = TSDB_CODE_INVALID_MSG;
10✔
13505
    goto _exit;
10✔
13506
  }
13507

13508
  if (tDecodeI32v(pCoder, &pRsp->affectedRows) < 0) {
32,086,265!
13509
    code = TSDB_CODE_INVALID_MSG;
×
13510
    goto _exit;
×
13511
  }
13512

13513
  uint64_t nCreateTbRsp;
13514
  if (tDecodeU64v(pCoder, &nCreateTbRsp) < 0) {
16,028,256!
13515
    code = TSDB_CODE_INVALID_MSG;
×
13516
    goto _exit;
×
13517
  }
13518

13519
  if (nCreateTbRsp) {
16,028,256✔
13520
    pRsp->aCreateTbRsp = taosArrayInit(nCreateTbRsp, sizeof(SVCreateTbRsp));
12,933✔
13521
    if (pRsp->aCreateTbRsp == NULL) {
12,938✔
13522
      code = terrno;
1✔
13523
      goto _exit;
×
13524
    }
13525

13526
    for (int32_t i = 0; i < nCreateTbRsp; ++i) {
27,863✔
13527
      SVCreateTbRsp *pCreateTbRsp = taosArrayReserve(pRsp->aCreateTbRsp, 1);
14,929✔
13528
      if (tDecodeSVCreateTbRsp(pCoder, pCreateTbRsp) < 0) {
14,936!
13529
        code = TSDB_CODE_INVALID_MSG;
×
13530
        goto _exit;
×
13531
      }
13532
    }
13533
  }
13534

13535
  tEndDecode(pCoder);
16,028,257✔
13536

13537
_exit:
15,997,229✔
13538
  if (code) {
15,997,229✔
13539
    if (pRsp->aCreateTbRsp) {
10!
13540
      taosArrayDestroyEx(pRsp->aCreateTbRsp, NULL /* todo */);
×
13541
    }
13542
  }
13543
  return code;
16,006,320✔
13544
}
13545

13546
void tDestroySSubmitRsp2(SSubmitRsp2 *pRsp, int32_t flag) {
55,775,139✔
13547
  if (NULL == pRsp) {
55,775,139✔
13548
    return;
15,938,426✔
13549
  }
13550

13551
  if (flag & TSDB_MSG_FLG_ENCODE) {
39,836,713✔
13552
    if (pRsp->aCreateTbRsp) {
23,951,627✔
13553
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
37,763✔
13554
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
37,763✔
13555
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
100,030✔
13556
        if (aCreateTbRsp[i].pMeta) {
62,268✔
13557
          taosMemoryFree(aCreateTbRsp[i].pMeta->pSchemas);
47,041!
13558
          taosMemoryFree(aCreateTbRsp[i].pMeta->pSchemaExt);
47,041!
13559
          taosMemoryFree(aCreateTbRsp[i].pMeta->pColRefs);
47,041!
13560
          taosMemoryFree(aCreateTbRsp[i].pMeta);
47,040!
13561
        }
13562
      }
13563
      taosArrayDestroy(pRsp->aCreateTbRsp);
37,762✔
13564
    }
13565
  } else if (flag & TSDB_MSG_FLG_DECODE) {
15,885,086!
13566
    if (pRsp->aCreateTbRsp) {
15,985,528✔
13567
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
12,115✔
13568
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
12,115✔
13569
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
27,030✔
13570
        if (aCreateTbRsp[i].pMeta) {
14,922✔
13571
          taosMemoryFreeClear(aCreateTbRsp[i].pMeta->pSchemas);
12,652!
13572
          taosMemoryFreeClear(aCreateTbRsp[i].pMeta->pSchemaExt);
12,652!
13573
          taosMemoryFreeClear(aCreateTbRsp[i].pMeta->pColRefs);
12,652!
13574
          taosMemoryFreeClear(aCreateTbRsp[i].pMeta);
12,652!
13575
        }
13576
      }
13577
      taosArrayDestroy(pRsp->aCreateTbRsp);
12,108✔
13578
    }
13579
  }
13580
}
13581

13582
int32_t tEncodeMqSubTopicEp(void **buf, const SMqSubTopicEp *pTopicEp) {
6,674✔
13583
  int32_t tlen = 0;
6,674✔
13584
  tlen += taosEncodeString(buf, pTopicEp->topic);
6,674✔
13585
  tlen += taosEncodeString(buf, pTopicEp->db);
6,674✔
13586
  int32_t sz = taosArrayGetSize(pTopicEp->vgs);
6,674✔
13587
  tlen += taosEncodeFixedI32(buf, sz);
6,674✔
13588
  for (int32_t i = 0; i < sz; i++) {
14,912✔
13589
    SMqSubVgEp *pVgEp = (SMqSubVgEp *)taosArrayGet(pTopicEp->vgs, i);
8,238✔
13590
    tlen += tEncodeSMqSubVgEp(buf, pVgEp);
8,238✔
13591
  }
13592
  tlen += taosEncodeSSchemaWrapper(buf, &pTopicEp->schema);
6,674✔
13593
  return tlen;
6,674✔
13594
}
13595

13596
void *tDecodeMqSubTopicEp(void *buf, SMqSubTopicEp *pTopicEp) {
278✔
13597
  buf = taosDecodeStringTo(buf, pTopicEp->topic);
278✔
13598
  buf = taosDecodeStringTo(buf, pTopicEp->db);
556!
13599
  int32_t sz;
13600
  buf = taosDecodeFixedI32(buf, &sz);
278✔
13601
  pTopicEp->vgs = taosArrayInit(sz, sizeof(SMqSubVgEp));
278✔
13602
  if (pTopicEp->vgs == NULL) {
278!
13603
    return NULL;
×
13604
  }
13605
  for (int32_t i = 0; i < sz; i++) {
798✔
13606
    SMqSubVgEp vgEp;
13607
    buf = tDecodeSMqSubVgEp(buf, &vgEp);
520✔
13608
    if (taosArrayPush(pTopicEp->vgs, &vgEp) == NULL) {
1,040!
13609
      taosArrayDestroy(pTopicEp->vgs);
×
13610
      pTopicEp->vgs = NULL;
×
13611
      return NULL;
×
13612
    }
13613
  }
13614
  buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema);
278✔
13615
  return buf;
278✔
13616
}
13617

13618
void tDeleteMqSubTopicEp(SMqSubTopicEp *pSubTopicEp) {
3,615✔
13619
  taosMemoryFreeClear(pSubTopicEp->schema.pSchema);
3,615!
13620
  pSubTopicEp->schema.nCols = 0;
3,615✔
13621
  taosArrayDestroy(pSubTopicEp->vgs);
3,615✔
13622
}
3,615✔
13623

13624
int32_t tSerializeSCMCreateViewReq(void *buf, int32_t bufLen, const SCMCreateViewReq *pReq) {
426✔
13625
  SEncoder encoder = {0};
426✔
13626
  int32_t  code = 0;
426✔
13627
  int32_t  lino;
13628
  int32_t  tlen;
13629
  tEncoderInit(&encoder, buf, bufLen);
426✔
13630

13631
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
426!
13632
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
852!
13633
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
852!
13634
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
852!
13635
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->querySql));
852!
13636
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
852!
13637
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
852!
13638
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
852!
13639
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfCols));
852!
13640
  for (int32_t i = 0; i < pReq->numOfCols; ++i) {
1,868✔
13641
    SSchema *pSchema = &pReq->pSchema[i];
1,442✔
13642
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
1,442!
13643
  }
13644

13645
  tEndEncode(&encoder);
426✔
13646

13647
_exit:
426✔
13648
  if (code) {
426!
13649
    tlen = code;
×
13650
  } else {
13651
    tlen = encoder.pos;
426✔
13652
  }
13653
  tEncoderClear(&encoder);
426✔
13654
  return tlen;
426✔
13655
}
13656

13657
int32_t tDeserializeSCMCreateViewReq(void *buf, int32_t bufLen, SCMCreateViewReq *pReq) {
703✔
13658
  SDecoder decoder = {0};
703✔
13659
  int32_t  code = 0;
703✔
13660
  int32_t  lino;
13661

13662
  tDecoderInit(&decoder, buf, bufLen);
703✔
13663

13664
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
703!
13665
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
703!
13666
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
703!
13667
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
703!
13668
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->querySql));
1,406!
13669
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
1,406!
13670
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
1,406!
13671
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
1,406!
13672
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfCols));
1,406!
13673

13674
  if (pReq->numOfCols > 0) {
703!
13675
    pReq->pSchema = taosMemoryCalloc(pReq->numOfCols, sizeof(SSchema));
703!
13676
    if (pReq->pSchema == NULL) {
703!
13677
      TAOS_CHECK_EXIT(terrno);
×
13678
    }
13679

13680
    for (int32_t i = 0; i < pReq->numOfCols; ++i) {
3,186✔
13681
      SSchema *pSchema = pReq->pSchema + i;
2,483✔
13682
      TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
2,483!
13683
    }
13684
  }
13685

13686
  tEndDecode(&decoder);
703✔
13687

13688
_exit:
703✔
13689
  tDecoderClear(&decoder);
703✔
13690
  return code;
703✔
13691
}
13692

13693
void tFreeSCMCreateViewReq(SCMCreateViewReq *pReq) {
1,219✔
13694
  if (NULL == pReq) {
1,219!
13695
    return;
×
13696
  }
13697

13698
  taosMemoryFreeClear(pReq->querySql);
1,219!
13699
  taosMemoryFreeClear(pReq->sql);
1,219!
13700
  taosMemoryFreeClear(pReq->pSchema);
1,219!
13701
}
13702

13703
int32_t tSerializeSCMDropViewReq(void *buf, int32_t bufLen, const SCMDropViewReq *pReq) {
366✔
13704
  SEncoder encoder = {0};
366✔
13705
  int32_t  code = 0;
366✔
13706
  int32_t  lino;
13707
  int32_t  tlen;
13708
  tEncoderInit(&encoder, buf, bufLen);
366✔
13709

13710
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
366!
13711
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
732!
13712
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
732!
13713
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
732!
13714
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
732!
13715
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
732!
13716

13717
  tEndEncode(&encoder);
366✔
13718

13719
_exit:
366✔
13720
  if (code) {
366!
13721
    tlen = code;
×
13722
  } else {
13723
    tlen = encoder.pos;
366✔
13724
  }
13725
  tEncoderClear(&encoder);
366✔
13726
  return tlen;
366✔
13727
}
13728

13729
int32_t tDeserializeSCMDropViewReq(void *buf, int32_t bufLen, SCMDropViewReq *pReq) {
590✔
13730
  SDecoder decoder = {0};
590✔
13731
  int32_t  code = 0;
590✔
13732
  int32_t  lino;
13733

13734
  tDecoderInit(&decoder, buf, bufLen);
590✔
13735

13736
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
590!
13737
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
590!
13738
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
590!
13739
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
590!
13740
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
1,180!
13741
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
1,180!
13742

13743
  tEndDecode(&decoder);
590✔
13744

13745
_exit:
590✔
13746
  tDecoderClear(&decoder);
590✔
13747
  return code;
590✔
13748
}
13749
void tFreeSCMDropViewReq(SCMDropViewReq *pReq) {
590✔
13750
  if (NULL == pReq) {
590!
13751
    return;
×
13752
  }
13753

13754
  taosMemoryFree(pReq->sql);
590!
13755
}
13756

13757
int32_t tSerializeSViewMetaReq(void *buf, int32_t bufLen, const SViewMetaReq *pReq) {
11,123✔
13758
  SEncoder encoder = {0};
11,123✔
13759
  int32_t  code = 0;
11,123✔
13760
  int32_t  lino;
13761
  int32_t  tlen;
13762
  tEncoderInit(&encoder, buf, bufLen);
11,123✔
13763

13764
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,139!
13765
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
22,282!
13766

13767
  tEndEncode(&encoder);
11,141✔
13768

13769
_exit:
11,140✔
13770
  if (code) {
11,140!
13771
    tlen = code;
×
13772
  } else {
13773
    tlen = encoder.pos;
11,140✔
13774
  }
13775
  tEncoderClear(&encoder);
11,140✔
13776
  return tlen;
11,139✔
13777
}
13778

13779
int32_t tDeserializeSViewMetaReq(void *buf, int32_t bufLen, SViewMetaReq *pReq) {
2,867,813✔
13780
  SDecoder decoder = {0};
2,867,813✔
13781
  int32_t  code = 0;
2,867,813✔
13782
  int32_t  lino;
13783

13784
  tDecoderInit(&decoder, buf, bufLen);
2,867,813✔
13785

13786
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,867,819!
13787
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
2,867,835!
13788

13789
  tEndDecode(&decoder);
2,867,834✔
13790

13791
_exit:
2,867,824✔
13792
  tDecoderClear(&decoder);
2,867,824✔
13793
  return code;
2,867,839✔
13794
}
13795

13796
static int32_t tEncodeSViewMetaRsp(SEncoder *pEncoder, const SViewMetaRsp *pRsp) {
1,282✔
13797
  int32_t code = 0;
1,282✔
13798
  int32_t lino;
13799

13800
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->name));
2,564!
13801
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->dbFName));
2,564!
13802
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->user));
2,564!
13803
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->dbId));
2,564!
13804
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->viewId));
2,564!
13805
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->querySql));
2,564!
13806
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->precision));
2,564!
13807
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->type));
2,564!
13808
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->version));
2,564!
13809
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->numOfCols));
2,564!
13810
  for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
5,508✔
13811
    SSchema *pSchema = &pRsp->pSchema[i];
4,226✔
13812
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
4,226!
13813
  }
13814

13815
_exit:
1,282✔
13816
  return code;
1,282✔
13817
}
13818

13819
int32_t tSerializeSViewMetaRsp(void *buf, int32_t bufLen, const SViewMetaRsp *pRsp) {
1,282✔
13820
  SEncoder encoder = {0};
1,282✔
13821
  int32_t  code = 0;
1,282✔
13822
  int32_t  lino;
13823
  int32_t  tlen;
13824
  tEncoderInit(&encoder, buf, bufLen);
1,282✔
13825

13826
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,282!
13827
  TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pRsp));
1,282!
13828

13829
  tEndEncode(&encoder);
1,282✔
13830

13831
_exit:
1,282✔
13832
  if (code) {
1,282!
13833
    tlen = code;
×
13834
  } else {
13835
    tlen = encoder.pos;
1,282✔
13836
  }
13837
  tEncoderClear(&encoder);
1,282✔
13838
  return tlen;
1,282✔
13839
}
13840

13841
static int32_t tDecodeSViewMetaRsp(SDecoder *pDecoder, SViewMetaRsp *pRsp) {
308✔
13842
  int32_t code = 0;
308✔
13843
  int32_t lino;
13844

13845
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->name));
308!
13846
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->dbFName));
308!
13847
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->user));
616!
13848
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->dbId));
616!
13849
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->viewId));
616!
13850
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->querySql));
616!
13851
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->precision));
616!
13852
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->type));
616!
13853
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->version));
616!
13854
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->numOfCols));
616!
13855
  if (pRsp->numOfCols > 0) {
308!
13856
    pRsp->pSchema = taosMemoryCalloc(pRsp->numOfCols, sizeof(SSchema));
308!
13857
    if (pRsp->pSchema == NULL) {
308!
13858
      TAOS_CHECK_EXIT(terrno);
×
13859
    }
13860

13861
    for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
1,308✔
13862
      SSchema *pSchema = pRsp->pSchema + i;
1,000✔
13863
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, pSchema));
1,000!
13864
    }
13865
  }
13866

13867
_exit:
308✔
13868
  return code;
308✔
13869
}
13870

13871
int32_t tDeserializeSViewMetaRsp(void *buf, int32_t bufLen, SViewMetaRsp *pRsp) {
308✔
13872
  SDecoder decoder = {0};
308✔
13873
  int32_t  code = 0;
308✔
13874
  int32_t  lino;
13875

13876
  tDecoderInit(&decoder, buf, bufLen);
308✔
13877

13878
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
308!
13879
  TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, pRsp));
308!
13880

13881
  tEndDecode(&decoder);
308✔
13882

13883
_exit:
308✔
13884
  tDecoderClear(&decoder);
308✔
13885
  return code;
308✔
13886
}
13887

13888
void tFreeSViewMetaRsp(SViewMetaRsp *pRsp) {
949✔
13889
  if (NULL == pRsp) {
949!
13890
    return;
×
13891
  }
13892

13893
  taosMemoryFree(pRsp->user);
949!
13894
  taosMemoryFree(pRsp->querySql);
949!
13895
  taosMemoryFree(pRsp->pSchema);
949!
13896
}
13897

13898
int32_t tSerializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
16✔
13899
  SEncoder encoder = {0};
16✔
13900
  int32_t  code = 0;
16✔
13901
  int32_t  lino;
13902
  int32_t  tlen;
13903
  tEncoderInit(&encoder, buf, bufLen);
16✔
13904

13905
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
13906

13907
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
16✔
13908
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
16!
13909
  for (int32_t i = 0; i < numOfMeta; ++i) {
16!
13910
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
×
13911
    TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pMetaRsp));
×
13912
  }
13913

13914
  tEndEncode(&encoder);
16✔
13915

13916
_exit:
16✔
13917
  if (code) {
16!
13918
    tlen = code;
×
13919
  } else {
13920
    tlen = encoder.pos;
16✔
13921
  }
13922
  tEncoderClear(&encoder);
16✔
13923
  return tlen;
16✔
13924
}
13925

13926
int32_t tDeserializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
4✔
13927
  SDecoder decoder = {0};
4✔
13928
  int32_t  code = 0;
4✔
13929
  int32_t  lino;
13930

13931
  tDecoderInit(&decoder, buf, bufLen);
4✔
13932

13933
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
13934

13935
  int32_t numOfMeta = 0;
4✔
13936
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
4!
13937
  pRsp->pViewRsp = taosArrayInit(numOfMeta, POINTER_BYTES);
4✔
13938
  if (pRsp->pViewRsp == NULL) {
4!
13939
    TAOS_CHECK_EXIT(terrno);
×
13940
  }
13941

13942
  for (int32_t i = 0; i < numOfMeta; ++i) {
4!
13943
    SViewMetaRsp *metaRsp = taosMemoryCalloc(1, sizeof(SViewMetaRsp));
×
13944
    if (NULL == metaRsp) {
×
13945
      TAOS_CHECK_EXIT(terrno);
×
13946
    }
13947
    TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, metaRsp));
×
13948
    if (taosArrayPush(pRsp->pViewRsp, &metaRsp) == NULL) {
×
13949
      TAOS_CHECK_EXIT(terrno);
×
13950
    }
13951
  }
13952

13953
  tEndDecode(&decoder);
4✔
13954

13955
_exit:
4✔
13956
  tDecoderClear(&decoder);
4✔
13957
  return code;
4✔
13958
}
13959

13960
void tFreeSViewHbRsp(SViewHbRsp *pRsp) {
8✔
13961
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
8✔
13962
  for (int32_t i = 0; i < numOfMeta; ++i) {
8!
13963
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
×
13964
    tFreeSViewMetaRsp(pMetaRsp);
×
13965
    taosMemoryFree(pMetaRsp);
×
13966
  }
13967

13968
  taosArrayDestroy(pRsp->pViewRsp);
8✔
13969
}
8✔
13970

13971
void setDefaultOptionsForField(SFieldWithOptions *field) {
2,783✔
13972
  setColEncode(&field->compress, getDefaultEncode(field->type));
2,783✔
13973
  setColCompress(&field->compress, getDefaultCompress(field->type));
2,742✔
13974
  setColLevel(&field->compress, getDefaultLevel(field->type));
2,712✔
13975
}
2,705✔
13976

13977
void setFieldWithOptions(SFieldWithOptions *fieldWithOptions, SField *field) {
2,775✔
13978
  fieldWithOptions->bytes = field->bytes;
2,775✔
13979
  fieldWithOptions->flags = field->flags;
2,775✔
13980
  fieldWithOptions->type = field->type;
2,775✔
13981
  tstrncpy(fieldWithOptions->name, field->name, TSDB_COL_NAME_LEN);
2,775✔
13982
}
2,775✔
13983
int32_t tSerializeTableTSMAInfoReq(void *buf, int32_t bufLen, const STableTSMAInfoReq *pReq) {
×
13984
  SEncoder encoder = {0};
×
13985
  int32_t  code = 0;
×
13986
  int32_t  lino;
13987
  int32_t  tlen;
13988
  tEncoderInit(&encoder, buf, bufLen);
×
13989

13990
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13991
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
13992
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fetchingWithTsmaName));
×
13993

13994
  tEndEncode(&encoder);
×
13995

13996
_exit:
×
13997
  if (code) {
×
13998
    tlen = code;
×
13999
  } else {
14000
    tlen = encoder.pos;
×
14001
  }
14002
  tEncoderClear(&encoder);
×
14003
  return tlen;
×
14004
}
14005

14006
int32_t tDeserializeTableTSMAInfoReq(void *buf, int32_t bufLen, STableTSMAInfoReq *pReq) {
7✔
14007
  SDecoder decoder = {0};
7✔
14008
  int32_t  code = 0;
7✔
14009
  int32_t  lino;
14010

14011
  tDecoderInit(&decoder, buf, bufLen);
7✔
14012

14013
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7!
14014
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
7!
14015
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (uint8_t *)&pReq->fetchingWithTsmaName));
14!
14016

14017
  tEndDecode(&decoder);
7✔
14018

14019
_exit:
7✔
14020
  tDecoderClear(&decoder);
7✔
14021
  return code;
7✔
14022
}
14023

14024
static int32_t tEncodeTableTSMAInfo(SEncoder *pEncoder, const STableTSMAInfo *pTsmaInfo) {
×
14025
  int32_t code = 0;
×
14026
  int32_t lino;
14027

14028
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->name));
×
14029
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->tsmaId));
×
14030
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->tb));
×
14031
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->dbFName));
×
14032
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->suid));
×
14033
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->destTbUid));
×
14034
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->dbId));
×
14035
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTsmaInfo->version));
×
14036
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetTb));
×
14037
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetDbFName));
×
14038
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->interval));
×
14039
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->unit));
×
14040

14041
  int32_t size = pTsmaInfo->pFuncs ? pTsmaInfo->pFuncs->size : 0;
×
14042
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
14043
  for (int32_t i = 0; i < size; ++i) {
×
14044
    STableTSMAFuncInfo *pFuncInfo = taosArrayGet(pTsmaInfo->pFuncs, i);
×
14045
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pFuncInfo->funcId));
×
14046
    TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pFuncInfo->colId));
×
14047
  }
14048

14049
  size = pTsmaInfo->pTags ? pTsmaInfo->pTags->size : 0;
×
14050
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
14051
  for (int32_t i = 0; i < size; ++i) {
×
14052
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pTags, i);
×
14053
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
×
14054
  }
14055
  size = pTsmaInfo->pUsedCols ? pTsmaInfo->pUsedCols->size : 0;
×
14056
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
14057
  for (int32_t i = 0; i < size; ++i) {
×
14058
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pUsedCols, i);
×
14059
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
×
14060
  }
14061

14062
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->ast));
×
14063
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->streamUid));
×
14064
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->reqTs));
×
14065
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->rspTs));
×
14066
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->delayDuration));
×
14067
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->fillHistoryFinished));
×
14068
  size = pTsmaInfo->streamAddr ? 1 : 0;
×
14069
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
14070
  if (pTsmaInfo->streamAddr) {
×
14071
    TAOS_CHECK_EXIT(tEncodeSStreamTaskAddr(pEncoder, pTsmaInfo->streamAddr));
×
14072
  }
14073

14074
_exit:
×
14075
  return code;
×
14076
}
14077

14078
static int32_t tDecodeTableTSMAInfo(SDecoder *pDecoder, STableTSMAInfo *pTsmaInfo) {
×
14079
  int32_t code = 0;
×
14080
  int32_t lino;
14081

14082
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->name));
×
14083
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->tsmaId));
×
14084
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->tb));
×
14085
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->dbFName));
×
14086
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->suid));
×
14087
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->destTbUid));
×
14088
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->dbId));
×
14089
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pTsmaInfo->version));
×
14090
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetTb));
×
14091
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetDbFName));
×
14092
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->interval));
×
14093
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pTsmaInfo->unit));
×
14094
  int32_t size = 0;
×
14095
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
14096
  if (size > 0) {
×
14097
    pTsmaInfo->pFuncs = taosArrayInit(size, sizeof(STableTSMAFuncInfo));
×
14098
    if (!pTsmaInfo->pFuncs) {
×
14099
      TAOS_CHECK_EXIT(terrno);
×
14100
    }
14101
    for (int32_t i = 0; i < size; ++i) {
×
14102
      STableTSMAFuncInfo funcInfo = {0};
×
14103
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &funcInfo.funcId));
×
14104
      TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &funcInfo.colId));
×
14105
      if (!taosArrayPush(pTsmaInfo->pFuncs, &funcInfo)) {
×
14106
        TAOS_CHECK_EXIT(terrno);
×
14107
      }
14108
    }
14109
  }
14110

14111
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
14112
  if (size > 0) {
×
14113
    pTsmaInfo->pTags = taosArrayInit(size, sizeof(SSchema));
×
14114
    if (!pTsmaInfo->pTags) {
×
14115
      TAOS_CHECK_EXIT(terrno);
×
14116
    }
14117
    for (int32_t i = 0; i < size; ++i) {
×
14118
      SSchema schema = {0};
×
14119
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
×
14120
      if (taosArrayPush(pTsmaInfo->pTags, &schema) == NULL) {
×
14121
        TAOS_CHECK_EXIT(terrno);
×
14122
      }
14123
    }
14124
  }
14125

14126
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
14127
  if (size > 0) {
×
14128
    pTsmaInfo->pUsedCols = taosArrayInit(size, sizeof(SSchema));
×
14129
    if (!pTsmaInfo->pUsedCols) {
×
14130
      TAOS_CHECK_EXIT(terrno);
×
14131
    }
14132
    for (int32_t i = 0; i < size; ++i) {
×
14133
      SSchema schema = {0};
×
14134
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
×
14135
      if (taosArrayPush(pTsmaInfo->pUsedCols, &schema) == NULL) {
×
14136
        TAOS_CHECK_EXIT(terrno);
×
14137
      }
14138
    }
14139
  }
14140
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pTsmaInfo->ast));
×
14141
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->streamUid));
×
14142
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->reqTs));
×
14143
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->rspTs));
×
14144
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->delayDuration));
×
14145
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pTsmaInfo->fillHistoryFinished));
×
14146
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
14147
  if (size > 0) {
×
14148
    pTsmaInfo->streamAddr = taosMemoryCalloc(1, sizeof(SStreamTaskAddr));
×
14149
    if (!pTsmaInfo->streamAddr) {
×
14150
      TAOS_CHECK_EXIT(terrno);
×
14151
    }
14152

14153
    TAOS_CHECK_EXIT(tDecodeSStreamTaskAddr(pDecoder, pTsmaInfo->streamAddr));
×
14154
  } else {
14155
    pTsmaInfo->streamAddr = NULL;
×
14156
  }
14157

14158

14159
_exit:
×
14160
  return code;
×
14161
}
14162

14163
static int32_t tEncodeTableTSMAInfoRsp(SEncoder *pEncoder, const STableTSMAInfoRsp *pRsp) {
40,134✔
14164
  int32_t code = 0;
40,134✔
14165
  int32_t lino;
14166

14167
  int32_t size = pRsp->pTsmas ? pRsp->pTsmas->size : 0;
40,134!
14168
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
40,134!
14169
  for (int32_t i = 0; i < size; ++i) {
40,134!
14170
    STableTSMAInfo *pInfo = taosArrayGetP(pRsp->pTsmas, i);
×
14171
    TAOS_CHECK_EXIT(tEncodeTableTSMAInfo(pEncoder, pInfo));
×
14172
  }
14173
_exit:
40,134✔
14174
  return code;
40,134✔
14175
}
14176

14177
static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pRsp) {
465✔
14178
  int32_t size = 0;
465✔
14179
  int32_t code = 0;
465✔
14180
  int32_t lino;
14181

14182
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
465!
14183
  if (size <= 0) return 0;
465!
14184
  pRsp->pTsmas = taosArrayInit(size, POINTER_BYTES);
×
14185
  if (!pRsp->pTsmas) {
×
14186
    TAOS_CHECK_EXIT(terrno);
×
14187
  }
14188
  for (int32_t i = 0; i < size; ++i) {
×
14189
    STableTSMAInfo *pTsma = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
×
14190
    if (!pTsma) {
×
14191
      TAOS_CHECK_EXIT(terrno);
×
14192
    }
14193
    if (taosArrayPush(pRsp->pTsmas, &pTsma) == NULL) {
×
14194
      TAOS_CHECK_EXIT(terrno);
×
14195
    }
14196
    TAOS_CHECK_EXIT(tDecodeTableTSMAInfo(pDecoder, pTsma));
×
14197
  }
14198
_exit:
×
14199
  return code;
×
14200
}
14201

14202
int32_t tSerializeTableTSMAInfoRsp(void *buf, int32_t bufLen, const STableTSMAInfoRsp *pRsp) {
×
14203
  SEncoder encoder = {0};
×
14204
  int32_t  code = 0;
×
14205
  int32_t  lino;
14206
  int32_t  tlen;
14207
  tEncoderInit(&encoder, buf, bufLen);
×
14208

14209
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
14210
  TAOS_CHECK_EXIT(tEncodeTableTSMAInfoRsp(&encoder, pRsp));
×
14211

14212
  tEndEncode(&encoder);
×
14213

14214
_exit:
×
14215
  if (code) {
×
14216
    tlen = code;
×
14217
  } else {
14218
    tlen = encoder.pos;
×
14219
  }
14220
  tEncoderClear(&encoder);
×
14221
  return tlen;
×
14222
}
14223

14224
int32_t tDeserializeTableTSMAInfoRsp(void *buf, int32_t bufLen, STableTSMAInfoRsp *pRsp) {
×
14225
  SDecoder decoder = {0};
×
14226
  int32_t  code = 0;
×
14227
  int32_t  lino;
14228

14229
  tDecoderInit(&decoder, buf, bufLen);
×
14230

14231
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
14232
  TAOS_CHECK_EXIT(tDecodeTableTSMAInfoRsp(&decoder, pRsp));
×
14233

14234
  tEndDecode(&decoder);
×
14235

14236
_exit:
×
14237
  tDecoderClear(&decoder);
×
14238
  return code;
×
14239
}
14240

14241
void tFreeTableTSMAInfo(void *p) {
×
14242
  STableTSMAInfo *pTsmaInfo = p;
×
14243
  if (pTsmaInfo) {
×
14244
    taosArrayDestroy(pTsmaInfo->pFuncs);
×
14245
    taosArrayDestroy(pTsmaInfo->pTags);
×
14246
    taosArrayDestroy(pTsmaInfo->pUsedCols);
×
14247
    taosMemoryFree(pTsmaInfo->ast);
×
14248
  }
14249
}
×
14250

14251
void tFreeAndClearTableTSMAInfo(void *p) {
×
14252
  STableTSMAInfo *pTsmaInfo = (STableTSMAInfo *)p;
×
14253
  if (pTsmaInfo) {
×
14254
    tFreeTableTSMAInfo(pTsmaInfo);
×
14255
    taosMemoryFree(pTsmaInfo);
×
14256
  }
14257
}
×
14258

14259
void tFreeAndClearRefDbName(void *p) {
×
14260
  char *dbName = (char *)p;
×
14261
  if (dbName) {
×
14262
    taosMemoryFree(dbName);
×
14263
  }
14264
}
×
14265

14266
int32_t tCloneTbTSMAInfo(STableTSMAInfo *pInfo, STableTSMAInfo **pRes) {
×
14267
  int32_t code = TSDB_CODE_SUCCESS;
×
14268
  if (NULL == pInfo) {
×
14269
    return TSDB_CODE_SUCCESS;
×
14270
  }
14271
  STableTSMAInfo *pRet = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
×
14272
  if (!pRet) return terrno;
×
14273

14274
  *pRet = *pInfo;
×
14275
  if (pInfo->pFuncs) {
×
14276
    pRet->pFuncs = taosArrayDup(pInfo->pFuncs, NULL);
×
14277
    if (!pRet->pFuncs) code = terrno;
×
14278
  }
14279
  if (pInfo->pTags && code == TSDB_CODE_SUCCESS) {
×
14280
    pRet->pTags = taosArrayDup(pInfo->pTags, NULL);
×
14281
    if (!pRet->pTags) code = terrno;
×
14282
  }
14283
  if (pInfo->pUsedCols && code == TSDB_CODE_SUCCESS) {
×
14284
    pRet->pUsedCols = taosArrayDup(pInfo->pUsedCols, NULL);
×
14285
    if (!pRet->pUsedCols) code = terrno;
×
14286
  }
14287
  if (pInfo->ast && code == TSDB_CODE_SUCCESS) {
×
14288
    pRet->ast = taosStrdup(pInfo->ast);
×
14289
    if (!pRet->ast) code = terrno;
×
14290
  }
14291
  if (code) {
×
14292
    tFreeAndClearTableTSMAInfo(pRet);
×
14293
    pRet = NULL;
×
14294
  }
14295
  *pRes = pRet;
×
14296
  return code;
×
14297
}
14298

14299
void tFreeTableTSMAInfoRsp(STableTSMAInfoRsp *pRsp) {
20,539✔
14300
  if (pRsp && pRsp->pTsmas) {
20,539!
14301
    taosArrayDestroyP(pRsp->pTsmas, tFreeAndClearTableTSMAInfo);
20,074✔
14302
  }
14303
}
20,539✔
14304

14305
int32_t tEncodeSMDropTbReqOnSingleVg(SEncoder *pEncoder, const SMDropTbReqsOnSingleVg *pReq) {
×
14306
  const SVgroupInfo *pVgInfo = &pReq->vgInfo;
×
14307
  int32_t            code = 0;
×
14308
  int32_t            lino;
14309

14310
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->vgId));
×
14311
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashBegin));
×
14312
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashEnd));
×
14313
  TAOS_CHECK_EXIT(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
×
14314
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->numOfTable));
×
14315
  int32_t size = pReq->pTbs ? pReq->pTbs->size : 0;
×
14316
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
14317
  for (int32_t i = 0; i < size; ++i) {
×
14318
    const SVDropTbReq *pInfo = taosArrayGet(pReq->pTbs, i);
×
14319
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pEncoder, pInfo));
×
14320
  }
14321
_exit:
×
14322
  return code;
×
14323
}
14324

14325
int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder *pDecoder, SMDropTbReqsOnSingleVg *pReq) {
×
14326
  int32_t code = 0;
×
14327
  int32_t lino;
14328

14329
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.vgId));
×
14330
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashBegin));
×
14331
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashEnd));
×
14332
  TAOS_CHECK_EXIT(tDecodeSEpSet(pDecoder, &pReq->vgInfo.epSet));
×
14333
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.numOfTable));
×
14334
  int32_t size = 0;
×
14335
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
14336
  pReq->pTbs = taosArrayInit(size, sizeof(SVDropTbReq));
×
14337
  if (!pReq->pTbs) {
×
14338
    TAOS_CHECK_EXIT(terrno);
×
14339
  }
14340
  SVDropTbReq pTbReq = {0};
×
14341
  for (int32_t i = 0; i < size; ++i) {
×
14342
    TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pDecoder, &pTbReq));
×
14343
    if (taosArrayPush(pReq->pTbs, &pTbReq) == NULL) {
×
14344
      TAOS_CHECK_EXIT(terrno);
×
14345
    }
14346
  }
14347

14348
_exit:
×
14349
  return code;
×
14350
}
14351

14352
void tFreeSMDropTbReqOnSingleVg(void *p) {
×
14353
  SMDropTbReqsOnSingleVg *pReq = p;
×
14354
  taosArrayDestroy(pReq->pTbs);
×
14355
}
×
14356

14357
int32_t tSerializeSMDropTbsReq(void *buf, int32_t bufLen, const SMDropTbsReq *pReq) {
×
14358
  SEncoder encoder = {0};
×
14359
  int32_t  code = 0;
×
14360
  int32_t  lino;
14361
  int32_t  tlen;
14362

14363
  tEncoderInit(&encoder, buf, bufLen);
×
14364
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
14365
  int32_t size = pReq->pVgReqs ? pReq->pVgReqs->size : 0;
×
14366
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
×
14367
  for (int32_t i = 0; i < size; ++i) {
×
14368
    SMDropTbReqsOnSingleVg *pVgReq = taosArrayGet(pReq->pVgReqs, i);
×
14369
    TAOS_CHECK_EXIT(tEncodeSMDropTbReqOnSingleVg(&encoder, pVgReq));
×
14370
  }
14371
  tEndEncode(&encoder);
×
14372

14373
_exit:
×
14374
  if (code) {
×
14375
    tlen = code;
×
14376
  } else {
14377
    tlen = encoder.pos;
×
14378
  }
14379
  tEncoderClear(&encoder);
×
14380
  return tlen;
×
14381
}
14382

14383
int32_t tDeserializeSMDropTbsReq(void *buf, int32_t bufLen, SMDropTbsReq *pReq) {
×
14384
  SDecoder decoder = {0};
×
14385
  int32_t  code = 0;
×
14386
  int32_t  lino;
14387

14388
  tDecoderInit(&decoder, buf, bufLen);
×
14389
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
14390
  int32_t size = 0;
×
14391
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
×
14392
  pReq->pVgReqs = taosArrayInit(size, sizeof(SMDropTbReqsOnSingleVg));
×
14393
  if (!pReq->pVgReqs) {
×
14394
    TAOS_CHECK_EXIT(terrno);
×
14395
  }
14396
  for (int32_t i = 0; i < size; ++i) {
×
14397
    SMDropTbReqsOnSingleVg vgReq = {0};
×
14398
    TAOS_CHECK_EXIT(tDecodeSMDropTbReqOnSingleVg(&decoder, &vgReq));
×
14399
    if (taosArrayPush(pReq->pVgReqs, &vgReq) == NULL) {
×
14400
      TAOS_CHECK_EXIT(terrno);
×
14401
    }
14402
  }
14403
  tEndDecode(&decoder);
×
14404
_exit:
×
14405
  tDecoderClear(&decoder);
×
14406
  return code;
×
14407
}
14408

14409
void tFreeSMDropTbsReq(void *p) {
×
14410
  SMDropTbsReq *pReq = p;
×
14411
  taosArrayDestroyEx(pReq->pVgReqs, tFreeSMDropTbReqOnSingleVg);
×
14412
}
×
14413

14414
int32_t tEncodeVFetchTtlExpiredTbsRsp(SEncoder *pCoder, const SVFetchTtlExpiredTbsRsp *pRsp) {
62✔
14415
  int32_t code = 0;
62✔
14416
  int32_t lino;
14417

14418
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pRsp->vgId));
124!
14419
  int32_t size = pRsp->pExpiredTbs ? pRsp->pExpiredTbs->size : 0;
62!
14420
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, size));
62!
14421
  for (int32_t i = 0; i < size; ++i) {
310✔
14422
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pCoder, taosArrayGet(pRsp->pExpiredTbs, i)));
247!
14423
  }
14424

14425
_exit:
63✔
14426
  return code;
63✔
14427
}
14428

14429
int32_t tDecodeVFetchTtlExpiredTbsRsp(SDecoder *pCoder, SVFetchTtlExpiredTbsRsp *pRsp) {
31✔
14430
  int32_t code = 0;
31✔
14431
  int32_t lino;
14432

14433
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pRsp->vgId));
62!
14434
  int32_t size = 0;
31✔
14435
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &size));
31!
14436
  if (size > 0) {
31!
14437
    pRsp->pExpiredTbs = taosArrayInit(size, sizeof(SVDropTbReq));
31✔
14438
    if (!pRsp->pExpiredTbs) {
31!
14439
      TAOS_CHECK_EXIT(terrno);
×
14440
    }
14441
    SVDropTbReq tb = {0};
31✔
14442
    for (int32_t i = 0; i < size; ++i) {
155✔
14443
      TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pCoder, &tb));
124!
14444
      if (taosArrayPush(pRsp->pExpiredTbs, &tb) == NULL) {
248!
14445
        TAOS_CHECK_EXIT(terrno);
×
14446
      }
14447
    }
14448
  }
14449
_exit:
×
14450
  return code;
31✔
14451
}
14452

14453
void tFreeFetchTtlExpiredTbsRsp(void *p) {
202,713✔
14454
  SVFetchTtlExpiredTbsRsp *pRsp = p;
202,713✔
14455
  taosArrayDestroy(pRsp->pExpiredTbs);
202,713✔
14456
}
202,713✔
14457

14458
int32_t tEncodeMqBatchMetaRsp(SEncoder *pEncoder, const SMqBatchMetaRsp *pRsp) {
34✔
14459
  int32_t code = 0;
34✔
14460
  int32_t lino;
14461

14462
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
34!
14463

14464
  int32_t size = taosArrayGetSize(pRsp->batchMetaReq);
34✔
14465
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
34!
14466
  if (size > 0) {
34!
14467
    for (int32_t i = 0; i < size; i++) {
306✔
14468
      void   *pMetaReq = taosArrayGetP(pRsp->batchMetaReq, i);
272✔
14469
      int32_t metaLen = *(int32_t *)taosArrayGet(pRsp->batchMetaLen, i);
272✔
14470
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pMetaReq, metaLen));
544!
14471
    }
14472
  }
14473
_exit:
34✔
14474
  return code;
34✔
14475
}
14476

14477
int32_t tDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
26✔
14478
  int32_t size = 0;
26✔
14479
  int32_t code = 0;
26✔
14480
  int32_t lino;
14481

14482
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
26!
14483
  if (size > 0) {
26!
14484
    pRsp->batchMetaReq = taosArrayInit(size, POINTER_BYTES);
26✔
14485
    if (!pRsp->batchMetaReq) {
26!
14486
      TAOS_CHECK_EXIT(terrno);
×
14487
    }
14488
    pRsp->batchMetaLen = taosArrayInit(size, sizeof(int32_t));
26✔
14489
    if (!pRsp->batchMetaLen) {
26!
14490
      TAOS_CHECK_EXIT(terrno);
×
14491
    }
14492
    for (int32_t i = 0; i < size; i++) {
278✔
14493
      void    *pCreate = NULL;
252✔
14494
      uint64_t len = 0;
252✔
14495
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
252!
14496
      int32_t l = (int32_t)len;
252✔
14497
      if (taosArrayPush(pRsp->batchMetaReq, &pCreate) == NULL) {
504!
14498
        TAOS_CHECK_EXIT(terrno);
×
14499
      }
14500
      if (taosArrayPush(pRsp->batchMetaLen, &l) == NULL) {
504!
14501
        TAOS_CHECK_EXIT(terrno);
×
14502
      }
14503
    }
14504
  }
14505
_exit:
26✔
14506
  return code;
26✔
14507
}
14508

14509
int32_t tSemiDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
13✔
14510
  int32_t code = 0;
13✔
14511
  int32_t lino;
14512

14513
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
13!
14514
  if (pDecoder->size < pDecoder->pos) {
13!
14515
    return TSDB_CODE_INVALID_PARA;
×
14516
  }
14517
  pRsp->metaBuffLen = TD_CODER_REMAIN_CAPACITY(pDecoder);
13✔
14518
  pRsp->pMetaBuff = taosMemoryCalloc(1, pRsp->metaBuffLen);
13!
14519
  if (pRsp->pMetaBuff == NULL) {
13!
14520
    TAOS_CHECK_EXIT(terrno);
×
14521
  }
14522
  memcpy(pRsp->pMetaBuff, TD_CODER_CURRENT(pDecoder), pRsp->metaBuffLen);
13✔
14523

14524
_exit:
13✔
14525
  return code;
13✔
14526
}
14527

14528
void tDeleteMqBatchMetaRsp(SMqBatchMetaRsp *pRsp) {
10,393✔
14529
  taosMemoryFreeClear(pRsp->pMetaBuff);
10,393!
14530
  taosArrayDestroyP(pRsp->batchMetaReq, NULL);
10,393✔
14531
  taosArrayDestroy(pRsp->batchMetaLen);
10,393✔
14532
  pRsp->batchMetaReq = NULL;
10,393✔
14533
  pRsp->batchMetaLen = NULL;
10,393✔
14534
}
10,393✔
14535

14536
bool hasExtSchema(const SExtSchema *pExtSchema) { return pExtSchema->typeMod != 0; }
×
14537

14538
#ifdef USE_MOUNT
14539
int32_t tSerializeSMountStbInfo(void *buf, int32_t bufLen, int32_t *pFLen, SMountStbInfo *pInfo) {
24✔
14540
  SEncoder        encoder = {0};
24✔
14541
  int32_t         code = 0, lino = 0;
24✔
14542
  int32_t         flen = 0, qlen = 0;
24✔
14543
  SMCreateStbReq *pReq = &pInfo->req;
24✔
14544
  void           *qBuf = NULL;
24✔
14545

14546
  flen = tSerializeSMCreateStbReq(buf, bufLen, pReq);
24✔
14547
  if (flen <= 0) {
24!
14548
    TAOS_RETURN(flen < 0 ? flen : TSDB_CODE_INTERNAL_ERROR);
×
14549
  }
14550
  if (pFLen) *pFLen = flen;
24✔
14551

14552
  if (buf) qBuf = POINTER_SHIFT(buf, flen);
24✔
14553
  tEncoderInit(&encoder, qBuf, qBuf ? bufLen - flen : 0);
24✔
14554
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
24!
14555
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
144✔
14556
    void *pColExt = taosArrayGet(pInfo->pColExts, i);
120✔
14557
    TAOS_CHECK_EXIT(tEncodeI16v(&encoder, *(col_id_t *)pColExt));
240!
14558
  }
14559
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
56✔
14560
    void *pTagExt = taosArrayGet(pInfo->pTagExts, i);
32✔
14561
    TAOS_CHECK_EXIT(tEncodeI16v(&encoder, *(col_id_t *)pTagExt));
64!
14562
  }
14563
  tEndEncode(&encoder);
24✔
14564
_exit:
24✔
14565
  qlen = code ? code : encoder.pos;
24!
14566
  tEncoderClear(&encoder);
24✔
14567
  return code ? code : (flen + qlen);
24!
14568
}
14569

14570
int32_t tDeserializeSMountStbInfo(void *buf, int32_t bufLen, int32_t flen, SMountStbInfo *pInfo) {
12✔
14571
  SDecoder decoder = {0};
12✔
14572
  int32_t  code = 0, lino = 0;
12✔
14573
  void    *qBuf = POINTER_SHIFT(buf, flen);
12✔
14574

14575
  TAOS_CHECK_EXIT(tDeserializeSMCreateStbReq(buf, flen, &pInfo->req));
12!
14576

14577
  tDecoderInit(&decoder, qBuf, bufLen - flen);
12✔
14578
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12!
14579
  if ((pInfo->pColExts = taosArrayInit(pInfo->req.numOfColumns, sizeof(col_id_t))) == NULL) {
12!
14580
    TAOS_CHECK_EXIT(terrno);
×
14581
  }
14582
  if ((pInfo->pTagExts = taosArrayInit(pInfo->req.numOfTags, sizeof(col_id_t))) == NULL) {
12!
14583
    TAOS_CHECK_EXIT(terrno);
×
14584
  }
14585
  for (int32_t i = 0; i < pInfo->req.numOfColumns; ++i) {
72✔
14586
    col_id_t colId = 0;
60✔
14587
    TAOS_CHECK_EXIT(tDecodeI16v(&decoder, &colId));
60!
14588
    if (taosArrayPush(pInfo->pColExts, &colId) == NULL) {
120!
14589
      TAOS_CHECK_EXIT(terrno);
×
14590
    }
14591
  }
14592
  for (int32_t i = 0; i < pInfo->req.numOfTags; ++i) {
28✔
14593
    col_id_t colId = 0;
16✔
14594
    TAOS_CHECK_EXIT(tDecodeI16v(&decoder, &colId));
16!
14595
    if (taosArrayPush(pInfo->pTagExts, &colId) == NULL) {
32!
14596
      TAOS_CHECK_EXIT(terrno);
×
14597
    }
14598
  }
14599
  tEndDecode(&decoder);
12✔
14600
_exit:
12✔
14601
  tDecoderClear(&decoder);
12✔
14602
  return code;
12✔
14603
}
14604

14605
int32_t tSerializeSCreateMountReq(void *buf, int32_t bufLen, SCreateMountReq *pReq) {
×
14606
  SEncoder encoder = {0};
×
14607
  int32_t  code = 0, lino = 0;
×
14608
  int32_t  tlen;
14609

14610
  tEncoderInit(&encoder, buf, bufLen);
×
14611

14612
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
14613
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->mountName));
×
14614
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreExist));
×
14615
  TAOS_CHECK_EXIT(tEncodeI16v(&encoder, pReq->nMounts));
×
14616
  for (int32_t i = 0; i < pReq->nMounts; ++i) {
×
14617
    TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->dnodeIds[i]));
×
14618
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->mountPaths[i]));
×
14619
  }
14620
  ENCODESQL();
×
14621

14622
  tEndEncode(&encoder);
×
14623
_exit:
×
14624
  if (code) {
×
14625
    tlen = code;
×
14626
  } else {
14627
    tlen = encoder.pos;
×
14628
  }
14629
  tEncoderClear(&encoder);
×
14630
  return tlen;
×
14631
}
14632

14633
int32_t tDeserializeSCreateMountReq(void *buf, int32_t bufLen, SCreateMountReq *pReq) {
9✔
14634
  SDecoder decoder = {0};
9✔
14635
  int32_t  code = 0, lino = 0;
9✔
14636
  tDecoderInit(&decoder, buf, bufLen);
9✔
14637

14638
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9!
14639
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->mountName));
9!
14640
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreExist));
18!
14641
  TAOS_CHECK_EXIT(tDecodeI16v(&decoder, &pReq->nMounts));
18!
14642
  if(pReq->nMounts > 0) {
9!
14643
    TSDB_CHECK_NULL((pReq->dnodeIds = taosMemoryMalloc(pReq->nMounts * sizeof(int32_t))), code, lino, _exit, terrno);
9!
14644
    TSDB_CHECK_NULL((pReq->mountPaths = taosMemoryMalloc(pReq->nMounts * sizeof(char*))), code, lino, _exit, terrno);
9!
14645
    for (int32_t i = 0; i < pReq->nMounts; ++i) {
18✔
14646
      TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->dnodeIds[i]));
18!
14647
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->mountPaths[i]));
18!
14648
    }
14649
  }
14650
  DECODESQL();
27!
14651

14652
  tEndDecode(&decoder);
9✔
14653
_exit:
9✔
14654
  tDecoderClear(&decoder);
9✔
14655
  return code;
9✔
14656
}
14657

14658
void tFreeSCreateMountReq(SCreateMountReq *pReq) {
9✔
14659
  if (pReq) {
9!
14660
    taosMemoryFreeClear(pReq->dnodeIds);
9!
14661
    if (pReq->mountPaths) {
9!
14662
      for (int32_t i = 0; i < pReq->nMounts; ++i) {
18✔
14663
        taosMemoryFreeClear(pReq->mountPaths[i]);
9!
14664
      }
14665
      taosMemoryFreeClear(pReq->mountPaths);
9!
14666
    }
14667
    FREESQL();
9!
14668
  }
14669
}
9✔
14670

14671
int32_t tSerializeSDropMountReq(void *buf, int32_t bufLen, SDropMountReq *pReq) {
×
14672
  SEncoder encoder = {0};
×
14673
  int32_t  code = 0, lino = 0;
×
14674
  int32_t  tlen;
14675
  tEncoderInit(&encoder, buf, bufLen);
×
14676

14677
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
14678
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->mountName));
×
14679
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreNotExists));
×
14680
  ENCODESQL();
×
14681
  tEndEncode(&encoder);
×
14682

14683
_exit:
×
14684
  if (code) {
×
14685
    tlen = code;
×
14686
  } else {
14687
    tlen = encoder.pos;
×
14688
  }
14689
  tEncoderClear(&encoder);
×
14690
  return tlen;
×
14691
}
14692

14693
int32_t tDeserializeSDropMountReq(void *buf, int32_t bufLen, SDropMountReq *pReq) {
4✔
14694
  SDecoder decoder = {0};
4✔
14695
  int32_t  code = 0, lino = 0;
4✔
14696
  tDecoderInit(&decoder, buf, bufLen);
4✔
14697

14698
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
14699
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->mountName));
4!
14700
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreNotExists));
8!
14701
  DECODESQL();
12!
14702
  tEndDecode(&decoder);
4✔
14703

14704
_exit:
4✔
14705
  tDecoderClear(&decoder);
4✔
14706
  return code;
4✔
14707
}
14708

14709
void tFreeSDropMountReq(SDropMountReq *pReq) { FREESQL(); }
4!
14710

14711
int32_t tSerializeSDropMountRsp(void *buf, int32_t bufLen, SDropMountRsp *pRsp) {
4✔
14712
  SEncoder encoder = {0};
4✔
14713
  int32_t  code = 0, lino = 0;
4✔
14714
  int32_t  tlen;
14715
  tEncoderInit(&encoder, buf, bufLen);
4✔
14716

14717
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
14718
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->name));
8!
14719
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->uid));
8!
14720
  tEndEncode(&encoder);
4✔
14721

14722
_exit:
4✔
14723
  if (code) {
4!
14724
    tlen = code;
×
14725
  } else {
14726
    tlen = encoder.pos;
4✔
14727
  }
14728
  tEncoderClear(&encoder);
4✔
14729
  return tlen;
4✔
14730
}
14731

14732
int32_t tDeserializeSDropMountRsp(void *buf, int32_t bufLen, SDropMountRsp *pRsp) {
×
14733
  SDecoder decoder = {0};
×
14734
  int32_t  code = 0, lino = 0;
×
14735
  tDecoderInit(&decoder, buf, bufLen);
×
14736

14737
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
14738
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->name));
×
14739
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->uid));
×
14740
  tEndDecode(&decoder);
×
14741

14742
_exit:
×
14743
  tDecoderClear(&decoder);
×
14744
  return code;
×
14745
}
14746

14747
int32_t tSerializeSRetrieveMountPathReq(void *buf, int32_t bufLen, SRetrieveMountPathReq *pReq) {
12✔
14748
  SEncoder encoder = {0};
12✔
14749
  int32_t  code = 0, lino = 0;
12✔
14750
  int32_t  tlen;
14751
  tEncoderInit(&encoder, buf, bufLen);
12✔
14752

14753
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
14754
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->mountName));
24!
14755
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->mountPath));
24!
14756
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->mountUid));
24!
14757
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->dnodeId));
24!
14758
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreExist));
24!
14759
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t*)pReq->pVal, pReq->valLen));
24!
14760
  tEndEncode(&encoder);
12✔
14761

14762
_exit:
12✔
14763
  if (code) {
12!
14764
    tlen = code;
×
14765
  } else {
14766
    tlen = encoder.pos;
12✔
14767
  }
14768
  tEncoderClear(&encoder);
12✔
14769
  return tlen;
12✔
14770
}
14771

14772
int32_t tDeserializeSRetrieveMountPathReq(void *buf, int32_t bufLen, SRetrieveMountPathReq *pReq) {
6✔
14773
  SDecoder decoder = {0};
6✔
14774
  int32_t  code = 0, lino = 0;
6✔
14775
  tDecoderInit(&decoder, buf, bufLen);
6✔
14776

14777
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
14778
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->mountName));
6!
14779
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->mountPath));
6!
14780
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->mountUid));
12!
14781
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->dnodeId));
12!
14782
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreExist));
12!
14783
  TAOS_CHECK_EXIT(tDecodeBinary(&decoder, (uint8_t**)&pReq->pVal, &pReq->valLen));
12!
14784
  tEndDecode(&decoder);
6✔
14785

14786
_exit:
6✔
14787
  tDecoderClear(&decoder);
6✔
14788
  return code;
6✔
14789
}
14790

14791
int32_t tSerializeSMountInfo(void *buf, int32_t bufLen, SMountInfo *pInfo) {
16✔
14792
  SEncoder encoder = {0};
16✔
14793
  int32_t  code = 0, lino = 0;
16✔
14794
  int32_t  tlen, nDb = 0, nVg = 0, nStb = 0;
16✔
14795
  tEncoderInit(&encoder, buf, bufLen);
16✔
14796

14797
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
14798
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->mountName));
32!
14799
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->mountPath));
32!
14800
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->ignoreExist));
32!
14801
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pInfo->mountUid));
32!
14802
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pInfo->clusterId));
32!
14803
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pInfo->dnodeId));
32!
14804
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pInfo->pVal, pInfo->valLen));
32!
14805
  nDb = taosArrayGetSize(pInfo->pDbs);
16✔
14806
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, nDb));
16!
14807
  for (int32_t i = 0; i < nDb; ++i) {
32✔
14808
    SMountDbInfo *pDbInfo = TARRAY_GET_ELEM(pInfo->pDbs, i);
16✔
14809
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pDbInfo->dbName));
32!
14810
    TAOS_CHECK_EXIT(tEncodeU64v(&encoder, pDbInfo->dbId));
32!
14811
    nVg = taosArrayGetSize(pDbInfo->pVgs);
16✔
14812
    TAOS_CHECK_EXIT(tEncodeI32v(&encoder, nVg));
16!
14813
    for (int32_t j = 0; j < nVg; ++j) {
48✔
14814
      SMountVgInfo *pVgInfo = TARRAY_GET_ELEM(pDbInfo->pVgs, j);
32✔
14815
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->diskPrimary));
64!
14816
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->vgId));
64!
14817
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->cacheLastSize));
64!
14818
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->szPage));
64!
14819
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->szCache));
64!
14820
      TAOS_CHECK_EXIT(tEncodeU64v(&encoder, pVgInfo->szBuf));
64!
14821
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pVgInfo->cacheLast));
64!
14822
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pVgInfo->standby));
64!
14823
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pVgInfo->hashMethod));
64!
14824
      TAOS_CHECK_EXIT(tEncodeU32v(&encoder, pVgInfo->hashBegin));
64!
14825
      TAOS_CHECK_EXIT(tEncodeU32v(&encoder, pVgInfo->hashEnd));
64!
14826
      TAOS_CHECK_EXIT(tEncodeI16v(&encoder, pVgInfo->hashPrefix));
64!
14827
      TAOS_CHECK_EXIT(tEncodeI16v(&encoder, pVgInfo->hashSuffix));
64!
14828
      TAOS_CHECK_EXIT(tEncodeI16v(&encoder, pVgInfo->sttTrigger));
64!
14829
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->replications));
64!
14830
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pVgInfo->precision));
64!
14831
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pVgInfo->compression));
64!
14832
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pVgInfo->slLevel));
64!
14833
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->daysPerFile));
64!
14834
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->keep0));
64!
14835
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->keep1));
64!
14836
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->keep2));
64!
14837
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->keepTimeOffset));
64!
14838
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->minRows));
64!
14839
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->maxRows));
64!
14840
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->tsdbPageSize));
64!
14841
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->ssChunkSize));
64!
14842
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->ssKeepLocal));
64!
14843
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pVgInfo->ssCompact));
64!
14844
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->walFsyncPeriod));
64!
14845
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->walRetentionPeriod));
64!
14846
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->walRollPeriod));
64!
14847
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->walRetentionSize));
64!
14848
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->walSegSize));
64!
14849
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->walLevel));
64!
14850
      TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pVgInfo->encryptAlgorithm));
64!
14851
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->committed));
64!
14852
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->commitID));
64!
14853
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->commitTerm));
64!
14854
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->numOfSTables));
64!
14855
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->numOfCTables));
64!
14856
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pVgInfo->numOfNTables));
64!
14857
      TAOS_CHECK_EXIT(tEncodeU64v(&encoder, pVgInfo->dbId));
64!
14858
    }
14859
    nStb = taosArrayGetSize(pDbInfo->pStbs);
16✔
14860
    TAOS_CHECK_EXIT(tEncodeI32v(&encoder, nStb));
16!
14861
    for (int32_t k = 0; k < nStb; ++k) {
64✔
14862
      void **pVal = TARRAY_GET_ELEM(pDbInfo->pStbs, k);
48✔
14863
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, *(const uint8_t **)(pVal), **(int32_t **)pVal));
96!
14864
    }
14865
  }
14866

14867
  tEndEncode(&encoder);
16✔
14868

14869
_exit:
16✔
14870
  if (code) {
16!
14871
    tlen = code;
×
14872
  } else {
14873
    tlen = encoder.pos;
16✔
14874
  }
14875
  tEncoderClear(&encoder);
16✔
14876
  return tlen;
16✔
14877
}
14878

14879
int32_t tDeserializeSMountInfo(SDecoder *decoder, SMountInfo *pInfo, bool extractStb) {
8✔
14880
  int32_t code = 0, lino = 0;
8✔
14881
  int32_t nDb = 0, nVg = 0, nStb = 0;
8✔
14882

14883
  TAOS_CHECK_EXIT(tStartDecode(decoder));
8!
14884
  TAOS_CHECK_EXIT(tDecodeCStrTo(decoder, pInfo->mountName));
8!
14885
  TAOS_CHECK_EXIT(tDecodeCStrTo(decoder, pInfo->mountPath));
8!
14886
  TAOS_CHECK_EXIT(tDecodeI8(decoder, &pInfo->ignoreExist));
16!
14887
  TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pInfo->mountUid));
16!
14888
  TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pInfo->clusterId));
16!
14889
  TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pInfo->dnodeId));
16!
14890
  TAOS_CHECK_EXIT(tDecodeBinary(decoder, (uint8_t **)&pInfo->pVal, &pInfo->valLen));
16!
14891
  TAOS_CHECK_EXIT(tDecodeI32v(decoder, &nDb));
8!
14892
  if (nDb > 0) {
8✔
14893
    TSDB_CHECK_NULL((pInfo->pDbs = taosArrayInit_s(sizeof(SMountDbInfo), nDb)), code, lino, _exit, terrno);
4!
14894
    for (int32_t i = 0; i < nDb; ++i) {
12✔
14895
      SMountDbInfo *pDbInfo = TARRAY_GET_ELEM(pInfo->pDbs, i);
8✔
14896
      TAOS_CHECK_EXIT(tDecodeCStrTo(decoder, pDbInfo->dbName));
8!
14897
      TAOS_CHECK_EXIT(tDecodeU64v(decoder, &pDbInfo->dbId));
16!
14898
      TAOS_CHECK_EXIT(tDecodeI32v(decoder, &nVg));
8!
14899
      if (nVg > 0) {
8!
14900
        TSDB_CHECK_NULL((pDbInfo->pVgs = taosArrayInit_s(sizeof(SMountVgInfo), nVg)), code, lino, _exit, terrno);
8!
14901
        for (int32_t j = 0; j < nVg; ++j) {
24✔
14902
          SMountVgInfo *pVgInfo = TARRAY_GET_ELEM(pDbInfo->pVgs, j);
16✔
14903
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->diskPrimary));
32!
14904
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->vgId));
32!
14905
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->cacheLastSize));
32!
14906
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->szPage));
32!
14907
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->szCache));
32!
14908
          TAOS_CHECK_EXIT(tDecodeU64v(decoder, &pVgInfo->szBuf));
32!
14909
          TAOS_CHECK_EXIT(tDecodeI8(decoder, &pVgInfo->cacheLast));
32!
14910
          TAOS_CHECK_EXIT(tDecodeI8(decoder, &pVgInfo->standby));
32!
14911
          TAOS_CHECK_EXIT(tDecodeI8(decoder, &pVgInfo->hashMethod));
32!
14912
          TAOS_CHECK_EXIT(tDecodeU32v(decoder, &pVgInfo->hashBegin));
32!
14913
          TAOS_CHECK_EXIT(tDecodeU32v(decoder, &pVgInfo->hashEnd));
32!
14914
          TAOS_CHECK_EXIT(tDecodeI16v(decoder, &pVgInfo->hashPrefix));
32!
14915
          TAOS_CHECK_EXIT(tDecodeI16v(decoder, &pVgInfo->hashSuffix));
32!
14916
          TAOS_CHECK_EXIT(tDecodeI16v(decoder, &pVgInfo->sttTrigger));
32!
14917
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->replications));
32!
14918
          TAOS_CHECK_EXIT(tDecodeI8(decoder, &pVgInfo->precision));
32!
14919
          TAOS_CHECK_EXIT(tDecodeI8(decoder, &pVgInfo->compression));
32!
14920
          TAOS_CHECK_EXIT(tDecodeI8(decoder, &pVgInfo->slLevel));
32!
14921
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->daysPerFile));
32!
14922
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->keep0));
32!
14923
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->keep1));
32!
14924
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->keep2));
32!
14925
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->keepTimeOffset));
32!
14926
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->minRows));
32!
14927
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->maxRows));
32!
14928
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->tsdbPageSize));
32!
14929
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->ssChunkSize));
32!
14930
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->ssKeepLocal));
32!
14931
          TAOS_CHECK_EXIT(tDecodeI8(decoder, &pVgInfo->ssCompact));
32!
14932
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->walFsyncPeriod));
32!
14933
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->walRetentionPeriod));
32!
14934
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->walRollPeriod));
32!
14935
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->walRetentionSize));
32!
14936
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->walSegSize));
32!
14937
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->walLevel));
32!
14938
          TAOS_CHECK_EXIT(tDecodeI32v(decoder, &pVgInfo->encryptAlgorithm));
32!
14939
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->committed));
32!
14940
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->commitID));
32!
14941
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->commitTerm));
32!
14942
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->numOfSTables));
32!
14943
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->numOfCTables));
32!
14944
          TAOS_CHECK_EXIT(tDecodeI64v(decoder, &pVgInfo->numOfNTables));
32!
14945
          TAOS_CHECK_EXIT(tDecodeU64v(decoder, &pVgInfo->dbId));
32!
14946
        }
14947
      }
14948
      TAOS_CHECK_EXIT(tDecodeI32v(decoder, &nStb));
8!
14949
      if (nStb > 0) {
8!
14950
        if (extractStb) {
8✔
14951
          TSDB_CHECK_NULL((pDbInfo->pStbs = taosArrayInit_s(sizeof(SMountStbInfo), nStb)), code, lino, _exit, terrno);
4!
14952
          for (int32_t k = 0; k < nStb; ++k) {
16✔
14953
            int32_t vlen = 0;
12✔
14954
            void   *pVal = NULL;
12✔
14955
            TAOS_CHECK_EXIT(tDecodeBinary(decoder, (uint8_t **)&pVal, &vlen));
12!
14956
            if (vlen < 8) {
12!
14957
              TAOS_CHECK_EXIT(TSDB_CODE_INVALID_MSG);  // totalLen(4) + 1stPartLen(4) + 1stPart(SMCreateStbReq) + 2ndPart(colIds and tagIds)
×
14958
            }
14959
            int32_t flen = *(int32_t *)POINTER_SHIFT(pVal,4);
12✔
14960
            SMountStbInfo *pStbInfo = TARRAY_GET_ELEM(pDbInfo->pStbs, k);
12✔
14961
            TAOS_CHECK_EXIT(tDeserializeSMountStbInfo(POINTER_SHIFT(pVal, 8), vlen - 8, flen, pStbInfo));
12!
14962
          }
14963
        } else {
14964
          TSDB_CHECK_NULL((pDbInfo->pStbs = taosArrayInit_s(sizeof(void *), nStb)), code, lino, _exit, terrno);
4!
14965
          for (int32_t k = 0; k < nStb; ++k) {
16✔
14966
            int32_t vlen = 0;
12✔
14967
            void   *pVal = NULL;
12✔
14968
            TAOS_CHECK_EXIT(tDecodeBinary(decoder, (uint8_t **)&pVal, &vlen));
12!
14969
            if (vlen < 8) {
12!
14970
              TAOS_CHECK_EXIT(TSDB_CODE_INVALID_MSG);  // totalLen(4) + 1stPartLen(4) + 1stPart + 2ndPart
×
14971
            }
14972
            void *pStb = TARRAY_GET_ELEM(pDbInfo->pStbs, k);
12✔
14973
            void *pNewVal = taosMemoryMalloc(vlen);
12!
14974
            if (pNewVal == NULL) {
12!
14975
              TAOS_CHECK_EXIT(terrno);
×
14976
            }
14977
            memcpy(pNewVal, pVal, vlen);
12✔
14978
            *(void **)pStb = pNewVal;
12✔
14979
          }
14980
        }
14981
      }
14982
    }
14983
  }
14984

14985
  tEndDecode(decoder);
8✔
14986
_exit:
8✔
14987
  return code;
8✔
14988
}
14989

14990
void tFreeMountInfo(SMountInfo *pInfo, bool stbExtracted) {
14✔
14991
  if (pInfo) {
14!
14992
    if (pInfo->pDbs) {
14✔
14993
      for (int32_t i = 0; i < TARRAY_SIZE(pInfo->pDbs); ++i) {
18✔
14994
        SMountDbInfo *pDbInfo = TARRAY_GET_ELEM(pInfo->pDbs, i);
12✔
14995
        taosArrayDestroy(pDbInfo->pVgs);
12✔
14996
        if (stbExtracted) {
12✔
14997
          for (int32_t j = 0; j < taosArrayGetSize(pDbInfo->pStbs); ++j) {
16✔
14998
            SMountStbInfo *pStbInfo = TARRAY_GET_ELEM(pDbInfo->pStbs, j);
12✔
14999
            tFreeSMCreateStbReq(&pStbInfo->req);
12✔
15000
            taosArrayDestroy(pStbInfo->pColExts);
12✔
15001
            taosArrayDestroy(pStbInfo->pTagExts);
12✔
15002
          }
15003
          taosArrayDestroy(pDbInfo->pStbs);
4✔
15004
        } else {
15005
          taosArrayDestroyP(pDbInfo->pStbs, NULL);
8✔
15006
        }
15007
      }
15008
      taosArrayDestroy(pInfo->pDbs);
6✔
15009
    }
15010
    for (int32_t i = 0; i < TFS_MAX_TIERS; ++i) {
56✔
15011
      taosArrayDestroyP(pInfo->pDisks[i], NULL);
42✔
15012
    }
15013
    if (pInfo->pFile) {
14✔
15014
      (void)taosUnLockFile(pInfo->pFile);
4✔
15015
      (void)taosCloseFile(&pInfo->pFile);
4✔
15016
    }
15017
  }
15018
}
14✔
15019

15020
int32_t tSerializeSMountVnodeReq(void *buf, int32_t *cBufLen, int32_t *tBufLen, SMountVnodeReq *pReq) {
16✔
15021
  SEncoder encoder = {0};
16✔
15022
  int32_t  code = 0, lino = 0;
16✔
15023
  int32_t  clen = 0, tlen = 0;
16✔
15024

15025
  tEncoderInit(&encoder, buf, *tBufLen);
16✔
15026
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
15027
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, *cBufLen));  // createReq
32!
15028
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->mountName));
32!
15029
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->mountPath));
32!
15030
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->mountId));
32!
15031
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->diskPrimary));
32!
15032
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->mountVgId));
32!
15033
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->committed));
32!
15034
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->commitID));
32!
15035
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->commitTerm));
32!
15036
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->numOfSTables));
32!
15037
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->numOfCTables));
32!
15038
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->numOfNTables));
32!
15039
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, 10));  // nReserved
16!
15040
  for (int32_t i = 0; i < 10; ++i) {           // reserved fields
176✔
15041
    TAOS_CHECK_EXIT(tEncodeI64v(&encoder, 0));
160!
15042
  }
15043
  tEndEncode(&encoder);
16✔
15044

15045
  if (buf == NULL) {
16✔
15046
    clen = tSerializeSCreateVnodeReq(NULL, 0, &pReq->createReq);
8✔
15047
  } else {
15048
    clen = tSerializeSCreateVnodeReq(POINTER_SHIFT(buf, encoder.pos), *cBufLen, &pReq->createReq);
8✔
15049
  }
15050

15051
_exit:
16✔
15052
  if (code || clen < 0) {
16!
15053
    if (clen < 0) code = clen;
×
15054
  } else {
15055
    *cBufLen = clen;
16✔
15056
    *tBufLen = encoder.pos + clen;
16✔
15057
  }
15058
  tEncoderClear(&encoder);
16✔
15059
  return code;
16✔
15060
}
15061

15062
int32_t tDeserializeSMountVnodeReq(void *buf, int32_t bufLen, SMountVnodeReq *pReq) {
8✔
15063
  SDecoder         decoder = {0};
8✔
15064
  int32_t          code = 0, lino = 0;
8✔
15065
  int32_t          cBufLen = 0, tBufLen = 0, nReserved = 0;
8✔
15066
  int64_t          padding;
15067
  SCreateVnodeReq *pCreateReq = &pReq->createReq;
8✔
15068

15069
  tDecoderInit(&decoder, buf, bufLen);
8✔
15070

15071
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
15072
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &cBufLen));  // createReq
8!
15073
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->mountName));
8!
15074
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->mountPath));
8!
15075
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->mountId));
16!
15076
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->diskPrimary));
16!
15077
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->mountVgId));
16!
15078
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->committed));
16!
15079
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->commitID));
16!
15080
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->commitTerm));
16!
15081
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->numOfSTables));
16!
15082
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->numOfCTables));
16!
15083
  TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->numOfNTables));
16!
15084
  // reserved fields
15085
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &nReserved));
8!
15086
  for(int32_t i = 0; i < nReserved; ++i) {
88✔
15087
    TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &padding));
80!
15088
  }
15089
  tEndDecode(&decoder);
8✔
15090
  TAOS_CHECK_EXIT(tDeserializeSCreateVnodeReq(POINTER_SHIFT(buf, decoder.pos), cBufLen, pCreateReq));
8!
15091
_exit:
8✔
15092
  tDecoderClear(&decoder);
8✔
15093
  return code;
8✔
15094
}
15095

15096
int32_t tFreeSMountVnodeReq(SMountVnodeReq *pReq) {
8✔
15097
  (void)tFreeSCreateVnodeReq(&pReq->createReq);
8✔
15098
  return 0;
8✔
15099
}
15100
#endif // USE_MOUNT
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