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

taosdata / TDengine / #3652

13 Mar 2025 05:26AM UTC coverage: 63.596% (+0.5%) from 63.126%
#3652

push

travis-ci

web-flow
Merge pull request #30158 from taosdata/docs/anchor-caps-30

docs: lowercase anchors for 3.0

149664 of 301793 branches covered (49.59%)

Branch coverage included in aggregate %.

234467 of 302220 relevant lines covered (77.58%)

18914611.55 hits per line

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

70.43
/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 "tglobal.h"
18
#include "tmsg.h"
19

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

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

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

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

48
#define DECODESQL()                                                               \
49
  do {                                                                            \
50
    if (!tDecodeIsEnd(&decoder)) {                                                \
51
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));                       \
52
      if (pReq->sqlLen > 0) {                                                     \
53
        TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->sql, NULL)); \
54
      }                                                                           \
55
    }                                                                             \
56
  } while (0)
57

58
#define ENCODESQL()                                                                       \
59
  do {                                                                                    \
60
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));                                  \
61
    if (pReq->sqlLen > 0) {                                                               \
62
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->sql, pReq->sqlLen)); \
63
    }                                                                                     \
64
  } while (0)
65

66
#define FREESQL()                \
67
  do {                           \
68
    if (pReq->sql != NULL) {     \
69
      taosMemoryFree(pReq->sql); \
70
    }                            \
71
    pReq->sql = NULL;            \
72
  } while (0)
73

74
static int32_t tSerializeSMonitorParas(SEncoder *encoder, const SMonitorParas *pMonitorParas) {
1,159,855✔
75
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pMonitorParas->tsEnableMonitor));
2,319,710!
76
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsMonitorInterval));
2,319,710!
77
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogScope));
2,319,710!
78
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogMaxLen));
2,319,710!
79
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThreshold));
2,319,710!
80
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
2,319,710!
81
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pMonitorParas->tsSlowLogExceptDb));
2,319,710!
82
  return 0;
1,159,855✔
83
}
84

85
static int32_t tDeserializeSMonitorParas(SDecoder *decoder, SMonitorParas *pMonitorParas) {
157,412✔
86
  TAOS_CHECK_RETURN(tDecodeI8(decoder, (int8_t *)&pMonitorParas->tsEnableMonitor));
314,826!
87
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsMonitorInterval));
314,830!
88
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogScope));
314,833!
89
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogMaxLen));
314,834!
90
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThreshold));
314,833!
91
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
314,830!
92
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pMonitorParas->tsSlowLogExceptDb));
157,414✔
93
  return 0;
157,414✔
94
}
95

96
static int32_t tDecodeSVAlterTbReqCommon(SDecoder *pDecoder, SVAlterTbReq *pReq);
97
static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq *pReq);
98
static int32_t tEncodeTableTSMAInfoRsp(SEncoder *pEncoder, const STableTSMAInfoRsp *pRsp);
99
static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pRsp);
100

101
int32_t tInitSubmitMsgIter(const SSubmitReq *pMsg, SSubmitMsgIter *pIter) {
×
102
  if (pMsg == NULL) {
×
103
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
104
  }
105

106
  pIter->totalLen = htonl(pMsg->length);
×
107
  pIter->numOfBlocks = htonl(pMsg->numOfBlocks);
×
108
  if (!(pIter->totalLen > 0)) {
×
109
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
110
  }
111
  pIter->len = 0;
×
112
  pIter->pMsg = pMsg;
×
113
  if (pIter->totalLen <= sizeof(SSubmitReq)) {
×
114
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
115
  }
116

117
  return 0;
×
118
}
119

120
int32_t tGetSubmitMsgNext(SSubmitMsgIter *pIter, SSubmitBlk **pPBlock) {
×
121
  if (!(pIter->len >= 0)) {
×
122
    return terrno = TSDB_CODE_INVALID_MSG_LEN;
×
123
  }
124

125
  if (pIter->len == 0) {
×
126
    pIter->len += sizeof(SSubmitReq);
×
127
  } else {
128
    if (pIter->len >= pIter->totalLen) {
×
129
      return terrno = TSDB_CODE_INVALID_MSG_LEN;
×
130
    }
131

132
    pIter->len += (sizeof(SSubmitBlk) + pIter->dataLen + pIter->schemaLen);
×
133
    if (!(pIter->len > 0)) {
×
134
      return terrno = TSDB_CODE_INVALID_MSG_LEN;
×
135
    }
136
  }
137

138
  if (pIter->len > pIter->totalLen) {
×
139
    *pPBlock = NULL;
×
140
    return terrno = TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP;
×
141
  }
142

143
  if (pIter->len == pIter->totalLen) {
×
144
    *pPBlock = NULL;
×
145
  } else {
146
    *pPBlock = (SSubmitBlk *)POINTER_SHIFT(pIter->pMsg, pIter->len);
×
147
    pIter->uid = htobe64((*pPBlock)->uid);
×
148
    pIter->suid = htobe64((*pPBlock)->suid);
×
149
    pIter->sversion = htonl((*pPBlock)->sversion);
×
150
    pIter->dataLen = htonl((*pPBlock)->dataLen);
×
151
    pIter->schemaLen = htonl((*pPBlock)->schemaLen);
×
152
    pIter->numOfRows = htonl((*pPBlock)->numOfRows);
×
153
  }
154
  return 0;
×
155
}
156

157
int32_t tInitSubmitBlkIter(SSubmitMsgIter *pMsgIter, SSubmitBlk *pBlock, SSubmitBlkIter *pIter) {
×
158
  if (pMsgIter->dataLen <= 0) {
×
159
    return TSDB_CODE_INVALID_PARA;
×
160
  }
161
  pIter->totalLen = pMsgIter->dataLen;
×
162
  pIter->len = 0;
×
163
  pIter->row = (STSRow *)(pBlock->data + pMsgIter->schemaLen);
×
164
  return 0;
×
165
}
166

167
STSRow *tGetSubmitBlkNext(SSubmitBlkIter *pIter) {
×
168
  STSRow *row = pIter->row;
×
169

170
  if (pIter->len >= pIter->totalLen) {
×
171
    return NULL;
×
172
  } else {
173
    pIter->len += TD_ROW_LEN(row);
×
174
    if (pIter->len < pIter->totalLen) {
×
175
      pIter->row = POINTER_SHIFT(row, TD_ROW_LEN(row));
×
176
    }
177
    return row;
×
178
  }
179
}
180

181
int32_t tEncodeSEpSet(SEncoder *pEncoder, const SEpSet *pEp) {
40,414,814✔
182
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->inUse));
80,829,628!
183
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->numOfEps));
80,829,628!
184
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
242,443,272✔
185
    TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pEp->eps[i].port));
404,056,916!
186
    TAOS_CHECK_RETURN(tEncodeCStrWithLen(pEncoder, pEp->eps[i].fqdn, TSDB_FQDN_LEN));
404,056,916!
187
  }
188
  return 0;
40,414,814✔
189
}
190

191
int32_t tDecodeSEpSet(SDecoder *pDecoder, SEpSet *pEp) {
1,019,907✔
192
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->inUse));
2,039,815!
193
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->numOfEps));
2,039,803!
194
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
6,118,345✔
195
    TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pEp->eps[i].port));
10,196,676!
196
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pEp->eps[i].fqdn));
5,098,324!
197
  }
198
  return 0;
1,019,993✔
199
}
200

201
int32_t tEncodeSQueryNodeAddr(SEncoder *pEncoder, SQueryNodeAddr *pAddr) {
1,316,243✔
202
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pAddr->nodeId));
2,632,486!
203
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pAddr->epSet));
1,316,243✔
204
  return 0;
1,317,206✔
205
}
206

207
int32_t tEncodeSQueryNodeLoad(SEncoder *pEncoder, SQueryNodeLoad *pLoad) {
1,316,412✔
208
  TAOS_CHECK_RETURN(tEncodeSQueryNodeAddr(pEncoder, &pLoad->addr));
1,316,412✔
209
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pLoad->load));
2,634,006!
210
  return 0;
1,317,003✔
211
}
212

213
int32_t tDecodeSQueryNodeAddr(SDecoder *pDecoder, SQueryNodeAddr *pAddr) {
272,331✔
214
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pAddr->nodeId));
544,662!
215
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pAddr->epSet));
272,331!
216
  return 0;
272,330✔
217
}
218

219
int32_t tDecodeSQueryNodeLoad(SDecoder *pDecoder, SQueryNodeLoad *pLoad) {
272,330✔
220
  TAOS_CHECK_RETURN(tDecodeSQueryNodeAddr(pDecoder, &pLoad->addr));
272,330!
221
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pLoad->load));
544,660!
222
  return 0;
272,330✔
223
}
224

225
int32_t taosEncodeSEpSet(void **buf, const SEpSet *pEp) {
1,241,296✔
226
  int32_t tlen = 0;
1,241,296✔
227
  tlen += taosEncodeFixedI8(buf, pEp->inUse);
1,241,296✔
228
  tlen += taosEncodeFixedI8(buf, pEp->numOfEps);
1,241,296✔
229
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
7,447,776✔
230
    tlen += taosEncodeFixedU16(buf, pEp->eps[i].port);
6,206,480✔
231
    tlen += taosEncodeString(buf, pEp->eps[i].fqdn);
12,412,960✔
232
  }
233
  return tlen;
1,241,296✔
234
}
235

236
void *taosDecodeSEpSet(const void *buf, SEpSet *pEp) {
619,607✔
237
  buf = taosDecodeFixedI8(buf, &pEp->inUse);
619,607✔
238
  buf = taosDecodeFixedI8(buf, &pEp->numOfEps);
619,607✔
239
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
3,717,642✔
240
    buf = taosDecodeFixedU16(buf, &pEp->eps[i].port);
3,098,035!
241
    buf = taosDecodeStringTo(buf, pEp->eps[i].fqdn);
6,196,070✔
242
  }
243
  return (void *)buf;
619,607✔
244
}
245

246
static int32_t tSerializeSClientHbReq(SEncoder *pEncoder, const SClientHbReq *pReq) {
259,266✔
247
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pReq->connKey));
518,532!
248

249
  if (pReq->connKey.connType == CONN_TYPE__QUERY) {
259,266✔
250
    TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->app.appId));
518,516!
251
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReq->app.pid));
518,516!
252
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->app.name));
518,516!
253
    TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->app.startTime));
518,516!
254
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.numOfInsertsReq));
518,516!
255
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.numOfInsertRows));
518,516!
256
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.insertElapsedTime));
518,516!
257
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.insertBytes));
518,516!
258
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.fetchBytes));
518,516!
259
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.queryElapsedTime));
518,516!
260
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.numOfSlowQueries));
518,516!
261
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.totalRequests));
518,516!
262
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pReq->app.summary.currentRequests));
518,516!
263

264
    int32_t queryNum = 0;
259,258✔
265
    if (pReq->query) {
259,258✔
266
      queryNum = 1;
250,248✔
267
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
250,248!
268
      TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->query->connId));
500,496!
269

270
      int32_t num = taosArrayGetSize(pReq->query->queryDesc);
250,248✔
271
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
250,248!
272

273
      for (int32_t i = 0; i < num; ++i) {
300,490✔
274
        SQueryDesc *desc = taosArrayGet(pReq->query->queryDesc, i);
50,242✔
275
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, desc->sql));
100,484!
276
        TAOS_CHECK_RETURN(tEncodeU64(pEncoder, desc->queryId));
100,484!
277
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->useconds));
100,484!
278
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->stime));
100,484!
279
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, desc->reqRid));
100,484!
280
        TAOS_CHECK_RETURN(tEncodeI8(pEncoder, desc->stableQuery));
100,484!
281
        TAOS_CHECK_RETURN(tEncodeI8(pEncoder, desc->isSubQuery));
100,484!
282
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, desc->fqdn));
100,484!
283
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, desc->subPlanNum));
100,484!
284

285
        int32_t snum = desc->subDesc ? taosArrayGetSize(desc->subDesc) : 0;
50,242✔
286
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, snum));
50,242!
287
        for (int32_t m = 0; m < snum; ++m) {
189,188✔
288
          SQuerySubDesc *sDesc = taosArrayGet(desc->subDesc, m);
138,946✔
289
          TAOS_CHECK_RETURN(tEncodeI64(pEncoder, sDesc->tid));
277,892!
290
          TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, sDesc->status));
277,892!
291
        }
292
      }
293
    } else {
294
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
9,010!
295
    }
296
  }
297

298
  int32_t kvNum = taosHashGetSize(pReq->info);
259,266✔
299
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
259,266!
300
  void *pIter = taosHashIterate(pReq->info, NULL);
259,266✔
301
  while (pIter != NULL) {
362,454✔
302
    SKv *kv = pIter;
103,188✔
303
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
103,188!
304
    pIter = taosHashIterate(pReq->info, pIter);
103,188✔
305
  }
306
  TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->userIp));
518,532!
307
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->userApp));
518,532!
308

309
  return 0;
259,266✔
310
}
311

312
static int32_t tDeserializeSClientHbReq(SDecoder *pDecoder, SClientHbReq *pReq) {
499,794✔
313
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pReq->connKey));
999,661!
314

315
  if (pReq->connKey.connType == CONN_TYPE__QUERY) {
499,867✔
316
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.appId));
999,622!
317
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReq->app.pid));
999,644!
318
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->app.name));
499,837!
319
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.startTime));
999,603!
320
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertsReq));
999,519!
321
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertRows));
999,448!
322
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertElapsedTime));
999,507!
323
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertBytes));
999,475!
324
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.fetchBytes));
999,397!
325
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.queryElapsedTime));
999,407!
326
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfSlowQueries));
999,393!
327
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.totalRequests));
999,291!
328
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.currentRequests));
999,240!
329

330
    int32_t queryNum = 0;
499,609✔
331
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
499,691!
332
    if (queryNum) {
499,691✔
333
      pReq->query = taosMemoryCalloc(1, sizeof(*pReq->query));
495,262!
334
      if (NULL == pReq->query) {
495,490!
335
        return terrno;
×
336
      }
337
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pReq->query->connId));
990,976!
338

339
      int32_t num = 0;
495,486✔
340
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &num));
495,480!
341
      if (num > 0) {
495,480✔
342
        pReq->query->queryDesc = taosArrayInit(num, sizeof(SQueryDesc));
285,107✔
343
        if (NULL == pReq->query->queryDesc) {
285,099!
344
          return terrno;
×
345
        }
346

347
        for (int32_t i = 0; i < num; ++i) {
597,193✔
348
          SQueryDesc desc = {0};
312,080✔
349
          TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, desc.sql));
312,080!
350
          TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &desc.queryId));
312,099!
351
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &desc.useconds));
312,091!
352
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &desc.stime));
312,090!
353
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &desc.reqRid));
312,086!
354
          TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&desc.stableQuery));
312,078!
355
          TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&desc.isSubQuery));
312,075!
356
          TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, desc.fqdn));
312,075!
357
          TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &desc.subPlanNum));
312,091!
358

359
          int32_t snum = 0;
312,091✔
360
          TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &snum));
312,074!
361
          if (snum > 0) {
312,074✔
362
            desc.subDesc = taosArrayInit(snum, sizeof(SQuerySubDesc));
311,992✔
363
            if (NULL == desc.subDesc) {
312,003!
364
              return terrno;
×
365
            }
366

367
            for (int32_t m = 0; m < snum; ++m) {
1,131,839✔
368
              SQuerySubDesc sDesc = {0};
819,817✔
369
              TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &sDesc.tid));
819,823!
370
              TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, sDesc.status));
819,823!
371
              if (!taosArrayPush(desc.subDesc, &sDesc)) {
1,639,675!
372
                return terrno;
×
373
              }
374
            }
375
          }
376

377
          if (!(desc.subPlanNum == taosArrayGetSize(desc.subDesc))) {
312,104!
378
            return TSDB_CODE_INVALID_MSG;
×
379
          }
380

381
          if (!taosArrayPush(pReq->query->queryDesc, &desc)) {
624,179!
382
            return terrno;
×
383
          }
384
        }
385
      }
386
    }
387
  }
388

389
  int32_t kvNum = 0;
499,967✔
390
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &kvNum));
499,895!
391
  if (pReq->info == NULL) {
499,895✔
392
    pReq->info = taosHashInit(kvNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
499,889✔
393
  }
394
  if (pReq->info == NULL) {
499,850!
395
    return terrno;
×
396
  }
397
  for (int32_t i = 0; i < kvNum; i++) {
839,173✔
398
    SKv kv = {0};
339,308✔
399
    TAOS_CHECK_RETURN(tDecodeSKv(pDecoder, &kv));
339,303!
400
    int32_t code = taosHashPut(pReq->info, &kv.key, sizeof(kv.key), &kv, sizeof(kv));
339,303✔
401
    if (code) {
339,324✔
402
      return terrno = code;
1✔
403
    }
404
  }
405
  if (!tDecodeIsEnd(pDecoder)) {
499,865!
406
    TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pReq->userIp));
999,937!
407
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->userApp));
499,969!
408
  }
409

410
  return 0;
499,955✔
411
}
412

413
static int32_t tSerializeSClientHbRsp(SEncoder *pEncoder, const SClientHbRsp *pRsp) {
999,032✔
414
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pRsp->connKey));
1,998,064!
415
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->status));
1,998,064!
416

417
  int32_t queryNum = 0;
999,032✔
418
  if (pRsp->query) {
999,032✔
419
    queryNum = 1;
990,545✔
420
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
990,545!
421
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pRsp->query->connId));
1,981,090!
422
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->query->killRid));
1,981,090!
423
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->totalDnodes));
1,981,090!
424
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->onlineDnodes));
1,981,090!
425
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->query->killConnection));
1,981,090!
426
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pRsp->query->epSet));
990,545!
427
    int32_t num = taosArrayGetSize(pRsp->query->pQnodeList);
990,134✔
428
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
989,854!
429
    for (int32_t i = 0; i < num; ++i) {
2,288,922✔
430
      SQueryNodeLoad *pLoad = taosArrayGet(pRsp->query->pQnodeList, i);
1,298,651✔
431
      TAOS_CHECK_RETURN(tEncodeSQueryNodeLoad(pEncoder, pLoad));
1,298,042!
432
    }
433
  } else {
434
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
8,487!
435
  }
436

437
  int32_t kvNum = taosArrayGetSize(pRsp->info);
998,758✔
438
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
998,858!
439
  for (int32_t i = 0; i < kvNum; i++) {
1,260,435✔
440
    SKv *kv = taosArrayGet(pRsp->info, i);
261,581✔
441
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
261,577!
442
  }
443

444
  return 0;
998,854✔
445
}
446

447
static int32_t tDeserializeSClientHbRsp(SDecoder *pDecoder, SClientHbRsp *pRsp) {
126,769✔
448
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pRsp->connKey));
253,540!
449
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->status));
253,542!
450

451
  int32_t queryNum = 0;
126,771✔
452
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
126,770!
453
  if (queryNum) {
126,770✔
454
    pRsp->query = taosMemoryCalloc(1, sizeof(*pRsp->query));
122,299!
455
    if (NULL == pRsp->query) {
122,298!
456
      return terrno;
×
457
    }
458
    TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pRsp->query->connId));
244,597!
459
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->query->killRid));
244,598!
460
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->totalDnodes));
244,597!
461
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->onlineDnodes));
244,595!
462
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->query->killConnection));
244,594!
463
    TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pRsp->query->epSet));
122,297!
464
    int32_t pQnodeNum = 0;
122,299✔
465
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pQnodeNum));
122,298!
466
    if (pQnodeNum > 0) {
122,298✔
467
      pRsp->query->pQnodeList = taosArrayInit(pQnodeNum, sizeof(SQueryNodeLoad));
85,976✔
468
      if (NULL == pRsp->query->pQnodeList) return terrno;
85,976!
469
      for (int32_t i = 0; i < pQnodeNum; ++i) {
349,370✔
470
        SQueryNodeLoad load = {0};
263,394✔
471
        TAOS_CHECK_RETURN(tDecodeSQueryNodeLoad(pDecoder, &load));
263,394!
472
        if (!taosArrayPush(pRsp->query->pQnodeList, &load)) return terrno;
526,788!
473
      }
474
    }
475
  }
476

477
  int32_t kvNum = 0;
126,769✔
478
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &kvNum));
126,766!
479
  pRsp->info = taosArrayInit(kvNum, sizeof(SKv));
126,766✔
480
  if (pRsp->info == NULL) {
126,771!
481
    return terrno;
×
482
  }
483
  for (int32_t i = 0; i < kvNum; i++) {
145,790✔
484
    SKv kv = {0};
19,019✔
485
    TAOS_CHECK_RETURN(tDecodeSKv(pDecoder, &kv));
19,019!
486
    if (!taosArrayPush(pRsp->info, &kv)) return terrno;
38,038!
487
  }
488

489
  return 0;
126,771✔
490
}
491

492
int32_t tSerializeSClientHbBatchReq(void *buf, int32_t bufLen, const SClientHbBatchReq *pBatchReq) {
83,150✔
493
  SEncoder encoder = {0};
83,150✔
494
  int32_t  code = 0;
83,150✔
495
  int32_t  lino;
496
  int32_t  tlen = 0;
83,150✔
497
  tEncoderInit(&encoder, buf, bufLen);
83,150✔
498

499
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
83,150!
500
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->reqId));
166,300!
501

502
  int32_t reqNum = taosArrayGetSize(pBatchReq->reqs);
83,150✔
503
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, reqNum));
83,150!
504
  for (int32_t i = 0; i < reqNum; i++) {
342,416✔
505
    SClientHbReq *pReq = taosArrayGet(pBatchReq->reqs, i);
259,266✔
506
    TAOS_CHECK_EXIT(tSerializeSClientHbReq(&encoder, pReq));
259,266!
507
  }
508

509
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->ipWhiteList));
166,300!
510
  tEndEncode(&encoder);
83,150✔
511

512
_exit:
83,150✔
513
  if (code) {
83,150!
514
    tlen = code;
×
515
  } else {
516
    tlen = encoder.pos;
83,150✔
517
  }
518
  tEncoderClear(&encoder);
83,150✔
519
  return tlen;
83,150✔
520
}
521

522
int32_t tDeserializeSClientHbBatchReq(void *buf, int32_t bufLen, SClientHbBatchReq *pBatchReq) {
388,015✔
523
  SDecoder decoder = {0};
388,015✔
524
  int32_t  code = 0;
388,015✔
525
  int32_t  lino;
526
  tDecoderInit(&decoder, buf, bufLen);
388,015✔
527

528
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
387,904!
529
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->reqId));
776,051!
530

531
  int32_t reqNum = 0;
388,015✔
532
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &reqNum));
388,003!
533
  if (reqNum > 0) {
388,003✔
534
    pBatchReq->reqs = taosArrayInit(reqNum, sizeof(SClientHbReq));
387,761✔
535
    if (NULL == pBatchReq->reqs) {
387,809✔
536
      return terrno;
65✔
537
    }
538
  }
539
  for (int32_t i = 0; i < reqNum; i++) {
887,926✔
540
    SClientHbReq req = {0};
499,867✔
541
    TAOS_CHECK_EXIT(tDeserializeSClientHbReq(&decoder, &req));
499,867!
542
    if (!taosArrayPush(pBatchReq->reqs, &req)) {
999,890!
543
      TAOS_CHECK_EXIT(terrno);
×
544
    }
545
  }
546

547
  if (!tDecodeIsEnd(&decoder)) {
388,059✔
548
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->ipWhiteList));
776,099!
549
  }
550

551
  tEndDecode(&decoder);
388,060✔
552

553
_exit:
388,039✔
554
  tDecoderClear(&decoder);
388,039✔
555
  return code;
388,041✔
556
}
557

558
int32_t tSerializeSClientHbBatchRsp(void *buf, int32_t bufLen, const SClientHbBatchRsp *pBatchRsp) {
775,454✔
559
  SEncoder encoder = {0};
775,454✔
560
  int32_t  code = 0;
775,454✔
561
  int32_t  lino;
562
  int32_t  tlen;
563
  tEncoderInit(&encoder, buf, bufLen);
775,454✔
564

565
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
775,629!
566
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->reqId));
1,551,744!
567
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->rspId));
1,551,744!
568
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pBatchRsp->svrTimestamp));
1,551,744!
569

570
  int32_t rspNum = taosArrayGetSize(pBatchRsp->rsps);
775,872✔
571
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, rspNum));
775,740!
572
  for (int32_t i = 0; i < rspNum; i++) {
1,774,962✔
573
    SClientHbRsp *pRsp = taosArrayGet(pBatchRsp->rsps, i);
999,589✔
574
    TAOS_CHECK_EXIT(tSerializeSClientHbRsp(&encoder, pRsp));
999,052!
575
  }
576
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pBatchRsp->monitorParas));
775,373!
577
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableAuditDelete));
1,549,246!
578
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableStrongPass));
1,549,246!
579
  tEndEncode(&encoder);
774,623✔
580

581
_exit:
774,570✔
582
  if (code) {
774,570!
583
    tlen = code;
×
584
  } else {
585
    tlen = encoder.pos;
774,570✔
586
  }
587
  tEncoderClear(&encoder);
774,570✔
588
  return tlen;
774,594✔
589
}
590

591
int32_t tDeserializeSClientHbBatchRsp(void *buf, int32_t bufLen, SClientHbBatchRsp *pBatchRsp) {
38,782✔
592
  SDecoder decoder = {0};
38,782✔
593
  int32_t  code = 0;
38,782✔
594
  int32_t  lino;
595
  tDecoderInit(&decoder, buf, bufLen);
38,782✔
596

597
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
38,781!
598
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->reqId));
77,564✔
599
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->rspId));
77,544!
600
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pBatchRsp->svrTimestamp));
77,544!
601

602
  int32_t rspNum = 0;
38,772✔
603
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &rspNum));
38,772!
604
  if (pBatchRsp->rsps == NULL) {
38,772!
605
    if ((pBatchRsp->rsps = taosArrayInit(rspNum, sizeof(SClientHbRsp))) == NULL) {
38,772!
606
      TAOS_CHECK_EXIT(terrno);
×
607
    }
608
  }
609
  for (int32_t i = 0; i < rspNum; i++) {
165,542✔
610
    SClientHbRsp rsp = {0};
126,770✔
611
    TAOS_CHECK_EXIT(tDeserializeSClientHbRsp(&decoder, &rsp));
126,770!
612
    if (taosArrayPush(pBatchRsp->rsps, &rsp) == NULL) {
253,542!
613
      TAOS_CHECK_EXIT(terrno);
×
614
    }
615
  }
616

617
  if (!tDecodeIsEnd(&decoder)) {
38,772✔
618
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pBatchRsp->monitorParas));
38,771!
619
  }
620

621
  if (!tDecodeIsEnd(&decoder)) {
38,773✔
622
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableAuditDelete));
77,542!
623
  } else {
624
    pBatchRsp->enableAuditDelete = 0;
1✔
625
  }
626

627
  if (!tDecodeIsEnd(&decoder)) {
38,771!
628
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableStrongPass));
77,543!
629
  } else {
630
    pBatchRsp->enableStrongPass = 0;
×
631
  }
632

633
  tEndDecode(&decoder);
38,770✔
634

635
_exit:
38,779✔
636
  tDecoderClear(&decoder);
38,779✔
637
  return code;
38,780✔
638
}
639

640
int32_t tSerializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq) {
12,088✔
641
  SEncoder encoder = {0};
12,088✔
642
  int32_t  code = 0;
12,088✔
643
  int32_t  lino;
644
  int32_t  tlen;
645
  tEncoderInit(&encoder, buf, bufLen);
12,088✔
646

647
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12,092!
648
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
24,188!
649
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
24,188!
650
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
24,188!
651
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
84,638✔
652
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
145,088!
653
  }
654
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
24,188!
655
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->delay1));
24,188!
656
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->delay2));
24,188!
657
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark1));
24,188!
658
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark2));
24,188!
659
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
24,188!
660
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->colVer));
24,188!
661
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tagVer));
24,188!
662
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfColumns));
24,188!
663
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTags));
24,188!
664
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
24,188!
665
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
24,188!
666
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ast1Len));
24,188!
667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ast2Len));
24,188!
668

669
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
205,700✔
670
    SFieldWithOptions *pField = taosArrayGet(pReq->pColumns, i);
193,612✔
671
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
387,212!
672
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
387,212!
673
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
387,212!
674
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
387,212!
675
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
387,212!
676
  }
677

678
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
73,201✔
679
    SField *pField = taosArrayGet(pReq->pTags, i);
61,133✔
680
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
122,226!
681
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
122,226!
682
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
122,226!
683
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
122,226!
684
  }
685

686
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
12,138✔
687
    const char *pFunc = taosArrayGet(pReq->pFuncs, i);
70✔
688
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
70!
689
  }
690

691
  if (pReq->commentLen > 0) {
12,068✔
692
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
192!
693
  }
694
  if (pReq->ast1Len > 0) {
12,068✔
695
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst1, pReq->ast1Len));
12!
696
  }
697
  if (pReq->ast2Len > 0) {
12,068✔
698
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst2, pReq->ast2Len));
12!
699
  }
700
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark1));
24,136!
701
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark2));
24,136!
702

703
  ENCODESQL();
35,048!
704

705
  tEndEncode(&encoder);
12,068✔
706

707
_exit:
12,092✔
708
  if (code) {
12,092!
709
    tlen = code;
×
710
  } else {
711
    tlen = encoder.pos;
12,092✔
712
  }
713
  tEncoderClear(&encoder);
12,092✔
714
  return tlen;
12,091✔
715
}
716

717
int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq) {
7,260✔
718
  SDecoder decoder = {0};
7,260✔
719
  int32_t  code = 0;
7,260✔
720
  int32_t  lino;
721
  tDecoderInit(&decoder, buf, bufLen);
7,260✔
722

723
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,260!
724
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
7,260!
725
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
14,520!
726
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
14,520!
727
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
50,820✔
728
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
87,120!
729
  }
730
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
14,520!
731
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay1));
14,520!
732
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay2));
14,520!
733
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark1));
14,520!
734
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark2));
14,520!
735
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
14,520!
736
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->colVer));
14,520!
737
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagVer));
14,520!
738
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfColumns));
14,520!
739
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
14,520!
740
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
14,520!
741
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
14,520!
742
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast1Len));
14,520!
743
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast2Len));
14,520!
744

745
  if ((pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SFieldWithOptions))) == NULL) {
7,260!
746
    TAOS_CHECK_EXIT(terrno);
×
747
  }
748
  if ((pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField))) == NULL) {
7,260!
749
    TAOS_CHECK_EXIT(terrno);
×
750
  }
751
  if ((pReq->pFuncs = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN)) == NULL) {
7,260!
752
    TAOS_CHECK_EXIT(terrno);
×
753
  }
754

755
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
130,950✔
756
    SFieldWithOptions field = {0};
123,690✔
757
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
123,690!
758
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
123,690!
759
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
123,690!
760
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
123,690!
761
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
123,690!
762
    if (taosArrayPush(pReq->pColumns, &field) == NULL) {
247,380!
763
      TAOS_CHECK_EXIT(terrno);
×
764
    }
765
  }
766

767
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
56,986✔
768
    SField field = {0};
49,726✔
769
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
49,726!
770
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
49,726!
771
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
49,726!
772
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
49,726!
773
    if (taosArrayPush(pReq->pTags, &field) == NULL) {
99,452!
774
      TAOS_CHECK_EXIT(terrno);
×
775
    }
776
  }
777

778
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
7,271✔
779
    char pFunc[TSDB_FUNC_NAME_LEN] = {0};
11✔
780
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
11!
781
    if (taosArrayPush(pReq->pFuncs, pFunc) == NULL) {
22!
782
      TAOS_CHECK_EXIT(terrno);
×
783
    }
784
  }
785

786
  if (pReq->commentLen > 0) {
7,260✔
787
    pReq->pComment = taosMemoryMalloc(pReq->commentLen + 1);
24!
788
    if (pReq->pComment == NULL) {
24!
789
      TAOS_CHECK_EXIT(terrno);
×
790
    }
791
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
24!
792
  }
793

794
  if (pReq->ast1Len > 0) {
7,260✔
795
    pReq->pAst1 = taosMemoryMalloc(pReq->ast1Len);
3!
796
    if (pReq->pAst1 == NULL) {
3!
797
      TAOS_CHECK_EXIT(terrno);
×
798
    }
799
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst1));
3!
800
  }
801

802
  if (pReq->ast2Len > 0) {
7,260✔
803
    pReq->pAst2 = taosMemoryMalloc(pReq->ast2Len);
3!
804
    if (pReq->pAst2 == NULL) {
3!
805
      TAOS_CHECK_EXIT(terrno);
×
806
    }
807
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst2));
3!
808
  }
809

810
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark1));
14,520!
811
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark2));
14,520!
812

813
  DECODESQL();
20,728!
814

815
  tEndDecode(&decoder);
7,260✔
816

817
_exit:
7,260✔
818
  tDecoderClear(&decoder);
7,260✔
819
  return code;
7,260✔
820
}
821

822
void tFreeSMCreateStbReq(SMCreateStbReq *pReq) {
14,982✔
823
  taosArrayDestroy(pReq->pColumns);
14,982✔
824
  taosArrayDestroy(pReq->pTags);
14,983✔
825
  taosArrayDestroy(pReq->pFuncs);
14,983✔
826
  taosMemoryFreeClear(pReq->pComment);
14,983!
827
  taosMemoryFreeClear(pReq->pAst1);
14,983!
828
  taosMemoryFreeClear(pReq->pAst2);
14,983!
829
  FREESQL();
14,983!
830
}
14,983✔
831

832
int32_t tSerializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
2,466✔
833
  SEncoder encoder = {0};
2,466✔
834
  int32_t  code = 0;
2,466✔
835
  int32_t  lino;
836
  int32_t  tlen;
837
  tEncoderInit(&encoder, buf, bufLen);
2,466✔
838

839
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,466!
840
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,932!
841
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
4,932!
842
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
4,932!
843
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
17,262✔
844
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
29,592!
845
  }
846
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
4,932!
847
  ENCODESQL();
6,852!
848
  tEndEncode(&encoder);
2,466✔
849

850
_exit:
2,466✔
851
  if (code) {
2,466!
852
    tlen = code;
×
853
  } else {
854
    tlen = encoder.pos;
2,466✔
855
  }
856
  tEncoderClear(&encoder);
2,466✔
857
  return tlen;
2,466✔
858
}
859

860
int32_t tDeserializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
1,340✔
861
  SDecoder decoder = {0};
1,340✔
862
  int32_t  code = 0;
1,340✔
863
  int32_t  lino;
864
  tDecoderInit(&decoder, buf, bufLen);
1,340✔
865

866
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,340!
867
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,340!
868
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,680!
869
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
2,680!
870
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
9,380✔
871
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
16,080!
872
  }
873
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
2,680!
874

875
  DECODESQL();
4,002!
876

877
  tEndDecode(&decoder);
1,340✔
878

879
_exit:
1,340✔
880
  tDecoderClear(&decoder);
1,340✔
881
  return code;
1,340✔
882
}
883

884
void tFreeSMDropStbReq(SMDropStbReq *pReq) { FREESQL(); }
2,090!
885

886
int32_t tSerializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
7,066✔
887
  SEncoder encoder = {0};
7,066✔
888
  int32_t  code = 0;
7,066✔
889
  int32_t  lino;
890
  int32_t  tlen;
891
  tEncoderInit(&encoder, buf, bufLen);
7,066✔
892

893
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,066!
894
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
14,132!
895
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
14,132!
896
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFields));
14,132!
897

898
  // if (pReq->alterType == )
899
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
15,420✔
900
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
8,354✔
901
      SFieldWithOptions *pField = taosArrayGet(pReq->pFields, i);
424✔
902
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
848!
903
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
848!
904
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
848!
905
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
848!
906

907
    } else {
908
      SField *pField = taosArrayGet(pReq->pFields, i);
7,930✔
909
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
15,860!
910
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
15,860!
911
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
15,860!
912
    }
913
  }
914
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
14,132!
915
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
14,132!
916
  if (pReq->commentLen > 0) {
7,066✔
917
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->comment));
108!
918
  }
919
  ENCODESQL();
20,934!
920
  tEndEncode(&encoder);
7,066✔
921

922
_exit:
7,066✔
923
  if (code) {
7,066!
924
    tlen = code;
×
925
  } else {
926
    tlen = encoder.pos;
7,066✔
927
  }
928
  tEncoderClear(&encoder);
7,066✔
929
  return tlen;
7,066✔
930
}
931

932
int32_t tDeserializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
3,241✔
933
  SDecoder decoder = {0};
3,241✔
934
  int32_t  code = 0;
3,241✔
935
  int32_t  lino;
936
  tDecoderInit(&decoder, buf, bufLen);
3,241✔
937

938
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,241!
939
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
3,241!
940
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
6,482!
941
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFields));
6,482!
942
  pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SField));
3,241✔
943
  if (pReq->pFields == NULL) {
3,241!
944
    TAOS_CHECK_EXIT(terrno);
×
945
  }
946

947
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
7,119✔
948
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
3,878✔
949
      taosArrayDestroy(pReq->pFields);
2✔
950
      if ((pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SFieldWithOptions))) == NULL) {
2!
951
        TAOS_CHECK_EXIT(terrno);
×
952
      }
953
      SFieldWithOptions field = {0};
2✔
954
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
2!
955
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
2!
956
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
2!
957
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
2!
958
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
4!
959
        TAOS_CHECK_EXIT(terrno);
×
960
      }
961
    } else {
962
      SField field = {0};
3,876✔
963
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
3,876!
964
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
3,876!
965
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
3,876!
966
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
7,752!
967
        TAOS_CHECK_EXIT(terrno);
×
968
      }
969
    }
970
  }
971

972
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
6,482!
973
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
6,482!
974
  if (pReq->commentLen > 0) {
3,241✔
975
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
19!
976
    if (pReq->comment == NULL) {
19!
977
      TAOS_CHECK_EXIT(terrno);
×
978
    }
979
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->comment));
19!
980
  }
981

982
  DECODESQL();
9,591!
983

984
  tEndDecode(&decoder);
3,241✔
985

986
_exit:
3,241✔
987
  tDecoderClear(&decoder);
3,241✔
988
  return code;
3,241✔
989
}
990

991
void tFreeSMAltertbReq(SMAlterStbReq *pReq) {
6,940✔
992
  taosArrayDestroy(pReq->pFields);
6,940✔
993
  pReq->pFields = NULL;
6,940✔
994
  taosMemoryFreeClear(pReq->comment);
6,940!
995
  FREESQL();
6,940!
996
}
6,940✔
997

998
int32_t tSerializeSEpSet(void *buf, int32_t bufLen, const SEpSet *pEpset) {
134,178✔
999
  SEncoder encoder = {0};
134,178✔
1000
  int32_t  code = 0;
134,178✔
1001
  int32_t  lino;
1002
  int32_t  tlen;
1003
  tEncoderInit(&encoder, buf, bufLen);
134,178✔
1004

1005
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
134,279!
1006
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpset));
134,287!
1007

1008
  tEndEncode(&encoder);
134,251✔
1009

1010
_exit:
134,268✔
1011
  if (code) {
134,268!
1012
    tlen = code;
×
1013
  } else {
1014
    tlen = encoder.pos;
134,268✔
1015
  }
1016
  tEncoderClear(&encoder);
134,268✔
1017
  return tlen;
134,267✔
1018
}
1019

1020
int32_t tDeserializeSEpSet(void *buf, int32_t bufLen, SEpSet *pEpset) {
102,680✔
1021
  SDecoder decoder = {0};
102,680✔
1022
  int32_t  code = 0;
102,680✔
1023
  int32_t  lino;
1024

1025
  tDecoderInit(&decoder, buf, bufLen);
102,680✔
1026

1027
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
102,682✔
1028
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, pEpset));
64,540!
1029

1030
  tEndDecode(&decoder);
64,540✔
1031
_exit:
102,681✔
1032
  tDecoderClear(&decoder);
102,681✔
1033
  return code;
102,681✔
1034
}
1035

1036
int32_t tSerializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
522✔
1037
  SEncoder encoder = {0};
522✔
1038
  int32_t  code = 0;
522✔
1039
  int32_t  lino;
1040
  int32_t  tlen;
1041
  tEncoderInit(&encoder, buf, bufLen);
522✔
1042

1043
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
522!
1044
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
1,044!
1045
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
1,044!
1046
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
1,044!
1047
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->intervalUnit));
1,044!
1048
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->slidingUnit));
1,044!
1049
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->timezone));
1,044!
1050
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
1,044!
1051
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->interval));
1,044!
1052
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->offset));
1,044!
1053
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->sliding));
1,044!
1054
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark));
1,044!
1055
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->maxDelay));
1,044!
1056
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->exprLen));
1,044!
1057
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tagsFilterLen));
1,044!
1058
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
1,044!
1059
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->astLen));
1,044!
1060
  if (pReq->exprLen > 0) {
522!
1061
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->expr, pReq->exprLen));
1,044!
1062
  }
1063
  if (pReq->tagsFilterLen > 0) {
522!
1064
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->tagsFilter, pReq->tagsFilterLen));
×
1065
  }
1066
  if (pReq->sqlLen > 0) {
522!
1067
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->sql, pReq->sqlLen));
1,044!
1068
  }
1069
  if (pReq->astLen > 0) {
522!
1070
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->ast, pReq->astLen));
1,044!
1071
  }
1072
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark));
1,044!
1073
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastTs));
1,044!
1074
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->normSourceTbUid));
1,044!
1075
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->pVgroupVerList)));
1,044!
1076

1077
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
1,986✔
1078
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
1,464✔
1079
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
2,928!
1080
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
2,928!
1081
  }
1082
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->recursiveTsma));
1,044!
1083
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->baseTsmaName));
1,044!
1084
  tEndEncode(&encoder);
522✔
1085

1086
_exit:
522✔
1087
  if (code) {
522!
1088
    tlen = code;
×
1089
  } else {
1090
    tlen = encoder.pos;
522✔
1091
  }
1092
  tEncoderClear(&encoder);
522✔
1093
  return tlen;
522✔
1094
}
1095

1096
int32_t tDeserializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
317✔
1097
  SDecoder decoder = {0};
317✔
1098
  int32_t  code = 0;
317✔
1099
  int32_t  lino;
1100
  tDecoderInit(&decoder, buf, bufLen);
317✔
1101

1102
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
317!
1103
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
317!
1104
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
317!
1105
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
634!
1106
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->intervalUnit));
634!
1107
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->slidingUnit));
634!
1108
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->timezone));
634!
1109
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
634!
1110
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->interval));
634!
1111
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->offset));
634!
1112
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->sliding));
634!
1113
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
634!
1114
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
634!
1115
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->exprLen));
634!
1116
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagsFilterLen));
634!
1117
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
634!
1118
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->astLen));
634!
1119
  if (pReq->exprLen > 0) {
317!
1120
    pReq->expr = taosMemoryMalloc(pReq->exprLen);
317!
1121
    if (pReq->expr == NULL) {
317!
1122
      TAOS_CHECK_EXIT(terrno);
×
1123
    }
1124
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->expr));
317!
1125
  }
1126
  if (pReq->tagsFilterLen > 0) {
317!
1127
    pReq->tagsFilter = taosMemoryMalloc(pReq->tagsFilterLen);
×
1128
    if (pReq->tagsFilter == NULL) {
×
1129
      TAOS_CHECK_EXIT(terrno);
×
1130
    }
1131
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tagsFilter));
×
1132
  }
1133
  if (pReq->sqlLen > 0) {
317!
1134
    pReq->sql = taosMemoryMalloc(pReq->sqlLen);
317!
1135
    if (pReq->sql == NULL) {
317!
1136
      TAOS_CHECK_EXIT(terrno);
×
1137
    }
1138
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
317!
1139
  }
1140
  if (pReq->astLen > 0) {
317!
1141
    pReq->ast = taosMemoryMalloc(pReq->astLen);
317!
1142
    if (pReq->ast == NULL) {
317!
1143
      TAOS_CHECK_EXIT(terrno);
×
1144
    }
1145
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
317!
1146
  }
1147
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
634!
1148
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
634!
1149
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->normSourceTbUid));
634!
1150

1151
  int32_t numOfVgVer;
1152
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
317!
1153
  if (numOfVgVer > 0) {
317✔
1154
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
245✔
1155
    if (pReq->pVgroupVerList == NULL) {
245!
1156
      TAOS_CHECK_EXIT(terrno);
×
1157
    }
1158

1159
    for (int32_t i = 0; i < numOfVgVer; ++i) {
1,160✔
1160
      SVgroupVer v = {0};
915✔
1161
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
915!
1162
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
915!
1163
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
1,830!
1164
        TAOS_CHECK_EXIT(terrno);
×
1165
      }
1166
    }
1167
  }
1168
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->recursiveTsma));
634!
1169
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->baseTsmaName));
317!
1170
  tEndDecode(&decoder);
317✔
1171

1172
_exit:
317✔
1173
  tDecoderClear(&decoder);
317✔
1174
  return code;
317✔
1175
}
1176

1177
void tFreeSMCreateSmaReq(SMCreateSmaReq *pReq) {
744✔
1178
  taosMemoryFreeClear(pReq->expr);
744!
1179
  taosMemoryFreeClear(pReq->tagsFilter);
744!
1180
  taosMemoryFreeClear(pReq->sql);
744!
1181
  taosMemoryFreeClear(pReq->ast);
744!
1182
  taosArrayDestroy(pReq->pVgroupVerList);
744✔
1183
}
744✔
1184

1185
int32_t tSerializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
452✔
1186
  SEncoder encoder = {0};
452✔
1187
  int32_t  code = 0;
452✔
1188
  int32_t  lino;
1189
  int32_t  tlen;
1190
  tEncoderInit(&encoder, buf, bufLen);
452✔
1191

1192
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
452!
1193
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
904!
1194
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
904!
1195

1196
  tEndEncode(&encoder);
452✔
1197

1198
_exit:
452✔
1199
  if (code) {
452!
1200
    tlen = code;
×
1201
  } else {
1202
    tlen = encoder.pos;
452✔
1203
  }
1204
  tEncoderClear(&encoder);
452✔
1205
  return tlen;
452✔
1206
}
1207

1208
int32_t tDeserializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
1,321✔
1209
  SDecoder decoder = {0};
1,321✔
1210
  int32_t  code = 0;
1,321✔
1211
  int32_t  lino;
1212
  tDecoderInit(&decoder, buf, bufLen);
1,321✔
1213

1214
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,321!
1215
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,321!
1216
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,642!
1217
  tEndDecode(&decoder);
1,321✔
1218

1219
_exit:
1,321✔
1220
  tDecoderClear(&decoder);
1,321✔
1221
  return code;
1,321✔
1222
}
1223

1224
int32_t tSerializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
30✔
1225
  SEncoder encoder = {0};
30✔
1226
  int32_t  code = 0;
30✔
1227
  int32_t  lino;
1228
  int32_t  tlen;
1229
  tEncoderInit(&encoder, buf, bufLen);
30✔
1230

1231
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30!
1232
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
60!
1233
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stbName));
60!
1234
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
60!
1235
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->idxName));
60!
1236
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->idxType));
60!
1237

1238
  tEndEncode(&encoder);
30✔
1239

1240
_exit:
30✔
1241
  if (code) {
30!
1242
    tlen = code;
×
1243
  } else {
1244
    tlen = encoder.pos;
30✔
1245
  }
1246
  tEncoderClear(&encoder);
30✔
1247
  return tlen;
30✔
1248
}
1249

1250
int32_t tDeserializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
491✔
1251
  SDecoder decoder = {0};
491✔
1252
  int32_t  code = 0;
491✔
1253
  int32_t  lino;
1254
  tDecoderInit(&decoder, buf, bufLen);
491✔
1255

1256
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
491!
1257
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
491!
1258
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stbName));
491!
1259
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
491!
1260
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->idxName));
491!
1261
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->idxType));
982!
1262

1263
  tEndDecode(&decoder);
491✔
1264
_exit:
491✔
1265
  tDecoderClear(&decoder);
491✔
1266
  return code;
491✔
1267
}
1268

1269
int32_t tDeserializeSDropTagIdxReq(void *buf, int32_t bufLen, SDropTagIndexReq *pReq) {
1,075✔
1270
  SDecoder decoder = {0};
1,075✔
1271
  int32_t  code = 0;
1,075✔
1272
  int32_t  lino;
1273
  tDecoderInit(&decoder, buf, bufLen);
1,075✔
1274

1275
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,075!
1276
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,075!
1277
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,150!
1278

1279
  tEndDecode(&decoder);
1,075✔
1280
_exit:
1,075✔
1281
  tDecoderClear(&decoder);
1,075✔
1282
  return code;
1,075✔
1283
}
1284

1285
int32_t tSerializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1286
  SEncoder encoder = {0};
×
1287
  int32_t  code = 0;
×
1288
  int32_t  lino;
1289
  int32_t  tlen;
1290
  tEncoderInit(&encoder, buf, bufLen);
×
1291

1292
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1293

1294
  tEndEncode(&encoder);
×
1295
_exit:
×
1296
  if (code) {
×
1297
    tlen = code;
×
1298
  } else {
1299
    tlen = encoder.pos;
×
1300
  }
1301
  tEncoderClear(&encoder);
×
1302
  return tlen;
×
1303
}
1304

1305
int32_t tDeserializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1306
  SDecoder decoder = {0};
×
1307
  int32_t  code = 0;
×
1308
  int32_t  lino;
1309
  tDecoderInit(&decoder, buf, bufLen);
×
1310
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1311
  tEndDecode(&decoder);
×
1312
_exit:
×
1313
  tDecoderClear(&decoder);
×
1314
  return code;
×
1315
}
1316
void tFreeSMCreateFullTextReq(SMCreateFullTextReq *pReq) {
×
1317
  // impl later
1318
  return;
×
1319
}
1320

1321
int32_t tSerializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1322
  SEncoder encoder = {0};
×
1323
  int32_t  code = 0;
×
1324
  int32_t  lino;
1325
  int32_t  tlen;
1326
  tEncoderInit(&encoder, buf, bufLen);
×
1327

1328
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1329
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
1330
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
×
1331

1332
  int32_t nVgroup = taosArrayGetSize(pReq->pVloads);
×
1333
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, nVgroup));
×
1334
  for (int32_t i = 0; i < nVgroup; ++i) {
×
1335
    SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1336
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, vload->vgId));
×
1337
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, vload->nTimeSeries));
×
1338
  }
1339

1340
  tEndEncode(&encoder);
×
1341

1342
_exit:
×
1343
  if (code) {
×
1344
    tlen = code;
×
1345
  } else {
1346
    tlen = encoder.pos;
×
1347
  }
1348
  tEncoderClear(&encoder);
×
1349
  return tlen;
×
1350
}
1351

1352
int32_t tDeserializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1353
  int32_t  code = 0;
×
1354
  int32_t  lino;
1355
  SDecoder decoder = {0};
×
1356
  tDecoderInit(&decoder, buf, bufLen);
×
1357

1358
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1359
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
1360
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
×
1361
  int32_t nVgroup = 0;
×
1362
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nVgroup));
×
1363
  if (nVgroup > 0) {
×
1364
    pReq->pVloads = taosArrayInit_s(sizeof(SVnodeLoadLite), nVgroup);
×
1365
    if (!pReq->pVloads) {
×
1366
      TAOS_CHECK_EXIT(terrno);
×
1367
    }
1368
    for (int32_t i = 0; i < nVgroup; ++i) {
×
1369
      SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1370
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &(vload->vgId)));
×
1371
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &(vload->nTimeSeries)));
×
1372
    }
1373
  }
1374

1375
  tEndDecode(&decoder);
×
1376

1377
_exit:
×
1378
  tDecoderClear(&decoder);
×
1379
  return code;
×
1380
}
1381

1382
void tFreeSNotifyReq(SNotifyReq *pReq) {
×
1383
  if (pReq) {
×
1384
    taosArrayDestroy(pReq->pVloads);
×
1385
  }
1386
}
×
1387

1388
int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
208,208✔
1389
  SEncoder encoder = {0};
208,208✔
1390
  int32_t  code = 0;
208,208✔
1391
  int32_t  lino;
1392
  int32_t  tlen;
1393
  tEncoderInit(&encoder, buf, bufLen);
208,208✔
1394

1395
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
208,208!
1396

1397
  // status
1398
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sver));
416,416!
1399
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dnodeVer));
416,416!
1400
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
416,416!
1401
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
416,416!
1402
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->rebootTime));
416,416!
1403
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->updateTime));
416,416!
1404
  TAOS_CHECK_EXIT(tEncodeFloat(&encoder, pReq->numOfCores));
416,416!
1405
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfSupportVnodes));
416,416!
1406
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->numOfDiskCfg));
416,416!
1407
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memTotal));
416,416!
1408
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memAvail));
416,416!
1409
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeEp));
416,416!
1410
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
416,416!
1411

1412
  // cluster cfg
1413
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->clusterCfg.statusInterval));
416,416!
1414
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterCfg.checkTime));
416,416!
1415
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.timezone));
416,416!
1416
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.locale));
416,416!
1417
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.charset));
416,416!
1418
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.enableWhiteList));
416,416!
1419
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.encryptionKeyStat));
416,416!
1420
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->clusterCfg.encryptionKeyChksum));
416,416!
1421

1422
  // vnode loads
1423
  int32_t vlen = (int32_t)taosArrayGetSize(pReq->pVloads);
208,208✔
1424
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, vlen));
208,208!
1425
  for (int32_t i = 0; i < vlen; ++i) {
2,268,944✔
1426
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
2,060,736✔
1427
    int64_t     reserved = 0;
2,060,736✔
1428
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->vgId));
4,121,472!
1429
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncState));
4,121,472!
1430
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncRestore));
4,121,472!
1431
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncCanRead));
4,121,472!
1432
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->cacheUsage));
4,121,472!
1433
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTables));
4,121,472!
1434
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTimeSeries));
4,121,472!
1435
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->totalStorage));
4,121,472!
1436
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->compStorage));
4,121,472!
1437
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->pointsWritten));
4,121,472!
1438
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->numOfCachedTables));
4,121,472!
1439
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->learnerProgress));
4,121,472!
1440
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->roleTimeMs));
4,121,472!
1441
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->startTimeMs));
4,121,472!
1442
  }
1443

1444
  // mnode loads
1445
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncState));
416,416!
1446
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncRestore));
416,416!
1447

1448
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->qload.dnodeId));
416,416!
1449
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedQuery));
416,416!
1450
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedCQuery));
416,416!
1451
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedFetch));
416,416!
1452
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDrop));
416,416!
1453
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedNotify));
416,416!
1454
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedHb));
416,416!
1455
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDelete));
416,416!
1456
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.cacheDataSize));
416,416!
1457
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfQueryInQueue));
416,416!
1458
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfFetchInQueue));
416,416!
1459
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInQueryQueue));
416,416!
1460
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInFetchQueue));
416,416!
1461

1462
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->statusSeq));
416,416!
1463
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.syncTerm));
416,416!
1464
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.roleTimeMs));
416,416!
1465
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.ttlChangeOnWrite));
416,416!
1466

1467
  // vnode extra
1468
  for (int32_t i = 0; i < vlen; ++i) {
2,268,944✔
1469
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
2,060,736✔
1470
    int64_t     reserved = 0;
2,060,736✔
1471
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncTerm));
4,121,472!
1472
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
2,060,736!
1473
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
2,060,736!
1474
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
2,060,736!
1475
  }
1476

1477
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
416,416!
1478
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
416,416!
1479
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pReq->clusterCfg.monitorParas));
208,208!
1480

1481
  for (int32_t i = 0; i < vlen; ++i) {
2,268,944✔
1482
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
2,060,736✔
1483
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncAppliedIndex));
4,121,472!
1484
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncCommitIndex));
4,121,472!
1485
  }
1486
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
416,416!
1487

1488
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
416,416!
1489

1490
  tEndEncode(&encoder);
208,208✔
1491

1492
_exit:
208,208✔
1493
  if (code) {
208,208!
1494
    tlen = code;
×
1495
  } else {
1496
    tlen = encoder.pos;
208,208✔
1497
  }
1498
  tEncoderClear(&encoder);
208,208✔
1499
  return tlen;
208,208✔
1500
}
1501

1502
int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
103,426✔
1503
  SDecoder decoder = {0};
103,426✔
1504
  int32_t  code = 0;
103,426✔
1505
  int32_t  lino;
1506
  tDecoderInit(&decoder, buf, bufLen);
103,426✔
1507

1508
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
103,426!
1509

1510
  // status
1511
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sver));
206,852!
1512
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dnodeVer));
206,852!
1513
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
206,852!
1514
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
206,852!
1515
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->rebootTime));
206,852!
1516
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->updateTime));
206,852!
1517
  TAOS_CHECK_EXIT(tDecodeFloat(&decoder, &pReq->numOfCores));
206,852!
1518
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfSupportVnodes));
206,852!
1519
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->numOfDiskCfg));
206,852!
1520
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memTotal));
206,852!
1521
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memAvail));
206,852!
1522
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeEp));
103,426!
1523
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
103,426!
1524

1525
  // cluster cfg
1526
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->clusterCfg.statusInterval));
206,852!
1527
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterCfg.checkTime));
206,852!
1528
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.timezone));
103,426!
1529
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.locale));
103,426!
1530
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.charset));
103,426!
1531
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.enableWhiteList));
206,852!
1532
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.encryptionKeyStat));
206,852!
1533
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->clusterCfg.encryptionKeyChksum));
206,852!
1534

1535
  // vnode loads
1536
  int32_t vlen = 0;
103,426✔
1537
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vlen));
103,426!
1538
  pReq->pVloads = taosArrayInit(vlen, sizeof(SVnodeLoad));
103,426✔
1539
  if (pReq->pVloads == NULL) {
103,426!
1540
    TAOS_CHECK_EXIT(terrno);
×
1541
  }
1542

1543
  for (int32_t i = 0; i < vlen; ++i) {
1,132,095✔
1544
    SVnodeLoad vload = {0};
1,028,669✔
1545
    vload.syncTerm = -1;
1,028,669✔
1546

1547
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.vgId));
1,028,669!
1548
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncState));
1,028,669!
1549
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncRestore));
1,028,669!
1550
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncCanRead));
1,028,669!
1551
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.cacheUsage));
1,028,669!
1552
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTables));
1,028,669!
1553
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTimeSeries));
1,028,669!
1554
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.totalStorage));
1,028,669!
1555
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.compStorage));
1,028,669!
1556
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.pointsWritten));
1,028,669!
1557
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.numOfCachedTables));
1,028,669!
1558
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.learnerProgress));
1,028,669!
1559
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.roleTimeMs));
1,028,669!
1560
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.startTimeMs));
1,028,669!
1561
    if (taosArrayPush(pReq->pVloads, &vload) == NULL) {
2,057,338!
1562
      TAOS_CHECK_EXIT(terrno);
×
1563
    }
1564
  }
1565

1566
  // mnode loads
1567
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncState));
206,852!
1568
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncRestore));
206,852!
1569
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->qload.dnodeId));
206,852!
1570
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedQuery));
206,852!
1571
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedCQuery));
206,852!
1572
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedFetch));
206,852!
1573
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDrop));
206,852!
1574
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedNotify));
206,852!
1575
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedHb));
206,852!
1576
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDelete));
206,852!
1577
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.cacheDataSize));
206,852!
1578
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfQueryInQueue));
206,852!
1579
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfFetchInQueue));
206,852!
1580
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInQueryQueue));
206,852!
1581
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInFetchQueue));
206,852!
1582
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->statusSeq));
206,852!
1583

1584
  pReq->mload.syncTerm = -1;
103,426✔
1585
  pReq->mload.roleTimeMs = 0;
103,426✔
1586
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1587
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.syncTerm));
206,852!
1588
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.roleTimeMs));
206,852!
1589
  }
1590

1591
  pReq->clusterCfg.ttlChangeOnWrite = false;
103,426✔
1592
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1593
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.ttlChangeOnWrite));
206,852!
1594
  }
1595

1596
  // vnode extra
1597
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1598
    for (int32_t i = 0; i < vlen; ++i) {
1,132,095✔
1599
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
1,028,669✔
1600
      int64_t     reserved = 0;
1,028,669✔
1601
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncTerm));
2,057,338!
1602
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
1,028,669!
1603
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
1,028,669!
1604
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
1,028,669!
1605
    }
1606
  }
1607
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1608
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
206,852!
1609
  }
1610

1611
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1612
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
206,852!
1613
  }
1614

1615
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1616
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pReq->clusterCfg.monitorParas));
103,426!
1617
  }
1618

1619
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1620
    for (int32_t i = 0; i < vlen; ++i) {
1,132,095✔
1621
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
1,028,669✔
1622
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncAppliedIndex));
2,057,338!
1623
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncCommitIndex));
2,057,338!
1624
    }
1625
  }
1626

1627
  if (!tDecodeIsEnd(&decoder)) {
103,426!
1628
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
206,852!
1629
  }
1630

1631
  tEndDecode(&decoder);
103,426✔
1632

1633
_exit:
103,426✔
1634
  tDecoderClear(&decoder);
103,426✔
1635
  return code;
103,426✔
1636
}
1637

1638
void tFreeSStatusReq(SStatusReq *pReq) { taosArrayDestroy(pReq->pVloads); }
104,104✔
1639

1640
int32_t tSerializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
4,218✔
1641
  SEncoder encoder = {0};
4,218✔
1642
  int32_t  code = 0;
4,218✔
1643
  int32_t  lino;
1644
  int32_t  tlen;
1645
  tEncoderInit(&encoder, buf, bufLen);
4,218✔
1646
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,218!
1647
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cver));
8,436!
1648
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->forceReadConfig));
8,436!
1649
  if (pReq->forceReadConfig) {
4,218!
1650
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pReq->array));
×
1651
  }
1652
  tEndEncode(&encoder);
4,218✔
1653
_exit:
4,218✔
1654
  if (code) {
4,218!
1655
    tlen = code;
×
1656
  } else {
1657
    tlen = encoder.pos;
4,218✔
1658
  }
1659
  tEncoderClear(&encoder);
4,218✔
1660
  return tlen;
4,218✔
1661
}
1662

1663
int32_t tDeserializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
2,075✔
1664
  SDecoder decoder = {0};
2,075✔
1665
  int32_t  code = 0;
2,075✔
1666
  int32_t  lino;
1667
  tDecoderInit(&decoder, buf, bufLen);
2,075✔
1668
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,075!
1669
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cver));
4,150!
1670
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->forceReadConfig));
4,150!
1671
  if (pReq->forceReadConfig) {
2,075!
1672
    pReq->array = taosArrayInit(128, sizeof(SConfigItem));
×
1673
    if (pReq->array == NULL) {
×
1674
      TAOS_CHECK_EXIT(terrno);
×
1675
    }
1676
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pReq->array));
×
1677
  }
1678
  tEndDecode(&decoder);
2,075✔
1679
_exit:
2,075✔
1680
  tDecoderClear(&decoder);
2,075✔
1681
  return code;
2,075✔
1682
}
1683

1684
void tFreeSConfigReq(SConfigReq *pReq) { taosArrayDestroy(pReq->array); }
2,075✔
1685

1686
int32_t tSerializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
4,150✔
1687
  SEncoder encoder = {0};
4,150✔
1688
  int32_t  code = 0;
4,150✔
1689
  int32_t  lino;
1690
  int32_t  tlen;
1691
  tEncoderInit(&encoder, buf, bufLen);
4,150✔
1692
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,150!
1693
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->forceReadConfig));
8,300!
1694
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isConifgVerified));
8,300!
1695
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isVersionVerified));
8,300!
1696
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->cver));
8,300!
1697
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
4,150!
1698
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pRsp->array));
4,150!
1699
  }
1700
  tEndEncode(&encoder);
4,150✔
1701
_exit:
4,150✔
1702
  if (code) {
4,150!
1703
    tlen = code;
×
1704
  } else {
1705
    tlen = encoder.pos;
4,150✔
1706
  }
1707
  tEncoderClear(&encoder);
4,150✔
1708
  return tlen;
4,150✔
1709
}
1710

1711
int32_t tDeserializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
2,035✔
1712
  SDecoder decoder = {0};
2,035✔
1713
  int32_t  code = 0;
2,035✔
1714
  int32_t  lino;
1715
  tDecoderInit(&decoder, buf, bufLen);
2,035✔
1716
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,035!
1717
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->forceReadConfig));
4,070!
1718
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isConifgVerified));
4,070!
1719
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isVersionVerified));
4,070!
1720
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->cver));
4,070!
1721
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
2,035!
1722
    pRsp->array = taosArrayInit(128, sizeof(SConfigItem));
2,035✔
1723
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pRsp->array));
2,035!
1724
  }
1725
_exit:
2,035✔
1726
  tEndDecode(&decoder);
2,035✔
1727
  tDecoderClear(&decoder);
2,035✔
1728
  return code;
2,035✔
1729
}
1730

1731
void tFreeSConfigRsp(SConfigRsp *pRsp) { taosArrayDestroy(pRsp->array); }
2,035✔
1732

1733
int32_t tSerializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
6,572✔
1734
  int32_t  code = 0, lino = 0;
6,572✔
1735
  int32_t  tlen = 0;
6,572✔
1736
  SEncoder encoder = {0};
6,572✔
1737
  tEncoderInit(&encoder, buf, bufLen);
6,572✔
1738

1739
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,572!
1740
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
13,144!
1741
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
13,144!
1742

1743
  tEndEncode(&encoder);
6,572✔
1744

1745
  tlen = encoder.pos;
6,572✔
1746
_exit:
6,572✔
1747
  tEncoderClear(&encoder);
6,572✔
1748
  return code < 0 ? code : tlen;
6,572!
1749
}
1750

1751
int32_t tDeserializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
3,280✔
1752
  int32_t  code = 0, lino = 0;
3,280✔
1753
  SDecoder decoder = {0};
3,280✔
1754
  tDecoderInit(&decoder, buf, bufLen);
3,280✔
1755

1756
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,280!
1757
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
6,560!
1758
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
3,280!
1759

1760
_exit:
3,280✔
1761
  tEndDecode(&decoder);
3,280✔
1762
  tDecoderClear(&decoder);
3,280✔
1763
  return code;
3,280✔
1764
}
1765

1766
int32_t tSerializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
15,176✔
1767
  SEncoder encoder = {0};
15,176✔
1768
  int32_t  code = 0;
15,176✔
1769
  int32_t  lino;
1770
  int32_t  tlen;
1771
  tEncoderInit(&encoder, buf, bufLen);
15,176✔
1772

1773
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
15,176!
1774

1775
  // status
1776
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeVer));
30,352!
1777

1778
  // dnode cfg
1779
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeCfg.dnodeId));
30,352!
1780
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeCfg.clusterId));
30,352!
1781

1782
  // dnode eps
1783
  int32_t dlen = (int32_t)taosArrayGetSize(pRsp->pDnodeEps);
15,176✔
1784
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, dlen));
15,176!
1785
  for (int32_t i = 0; i < dlen; ++i) {
64,430✔
1786
    SDnodeEp *pDnodeEp = taosArrayGet(pRsp->pDnodeEps, i);
49,254✔
1787
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pDnodeEp->id));
98,508!
1788
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pDnodeEp->isMnode));
98,508!
1789
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pDnodeEp->ep.fqdn));
98,508!
1790
    TAOS_CHECK_EXIT(tEncodeU16(&encoder, pDnodeEp->ep.port));
98,508!
1791
  }
1792

1793
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusSeq));
30,352!
1794

1795
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ipWhiteVer));
30,352!
1796
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->analVer));
30,352!
1797
  tEndEncode(&encoder);
15,176✔
1798

1799
_exit:
15,176✔
1800
  if (code) {
15,176!
1801
    tlen = code;
×
1802
  } else {
1803
    tlen = encoder.pos;
15,176✔
1804
  }
1805
  tEncoderClear(&encoder);
15,176✔
1806
  return tlen;
15,176✔
1807
}
1808

1809
int32_t tDeserializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
7,504✔
1810
  SDecoder decoder = {0};
7,504✔
1811
  int32_t  code = 0;
7,504✔
1812
  int32_t  lino;
1813
  tDecoderInit(&decoder, buf, bufLen);
7,504✔
1814

1815
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,504!
1816

1817
  // status
1818
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeVer));
15,008!
1819

1820
  // cluster cfg
1821
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeCfg.dnodeId));
15,008!
1822
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeCfg.clusterId));
15,008!
1823

1824
  // dnode eps
1825
  int32_t dlen = 0;
7,504✔
1826
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dlen));
7,504!
1827
  pRsp->pDnodeEps = taosArrayInit(dlen, sizeof(SDnodeEp));
7,504✔
1828
  if (pRsp->pDnodeEps == NULL) {
7,504!
1829
    TAOS_CHECK_EXIT(terrno);
×
1830
  }
1831

1832
  for (int32_t i = 0; i < dlen; ++i) {
31,615✔
1833
    SDnodeEp dnodeEp = {0};
24,111✔
1834
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dnodeEp.id));
24,111!
1835
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &dnodeEp.isMnode));
24,111!
1836
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, dnodeEp.ep.fqdn));
24,111!
1837
    TAOS_CHECK_EXIT(tDecodeU16(&decoder, &dnodeEp.ep.port));
24,111!
1838
    if (taosArrayPush(pRsp->pDnodeEps, &dnodeEp) == NULL) {
48,222!
1839
      TAOS_CHECK_EXIT(terrno);
×
1840
    }
1841
  }
1842

1843
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusSeq));
15,008!
1844

1845
  if (!tDecodeIsEnd(&decoder)) {
7,504!
1846
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ipWhiteVer));
15,008!
1847
  }
1848

1849
  if (!tDecodeIsEnd(&decoder)) {
7,504!
1850
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->analVer));
15,008!
1851
  }
1852

1853
  tEndDecode(&decoder);
7,504✔
1854
_exit:
7,504✔
1855
  tDecoderClear(&decoder);
7,504✔
1856
  return code;
7,504✔
1857
}
1858

1859
void tFreeSStatusRsp(SStatusRsp *pRsp) { taosArrayDestroy(pRsp->pDnodeEps); }
103,598✔
1860

1861
int32_t tSerializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
1,644✔
1862
  SEncoder encoder = {0};
1,644✔
1863
  int32_t  code = 0;
1,644✔
1864
  int32_t  lino;
1865
  int32_t  tlen;
1866
  tEncoderInit(&encoder, buf, bufLen);
1,644✔
1867

1868
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,644!
1869
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->contLen));
3,288!
1870
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pCont));
3,288!
1871
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->type));
3,288!
1872

1873
  tEndEncode(&encoder);
1,644✔
1874

1875
_exit:
1,644✔
1876
  if (code) {
1,644!
1877
    tlen = code;
×
1878
  } else {
1879
    tlen = encoder.pos;
1,644✔
1880
  }
1881
  tEncoderClear(&encoder);
1,644✔
1882
  return tlen;
1,644✔
1883
}
1884

1885
int32_t tDeserializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
12,031✔
1886
  SDecoder decoder = {0};
12,031✔
1887
  int32_t  code = 0;
12,031✔
1888
  int32_t  lino;
1889
  tDecoderInit(&decoder, buf, bufLen);
12,031✔
1890

1891
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12,031!
1892
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->contLen));
24,062!
1893
  if (pReq->contLen > 0) {
12,031!
1894
    pReq->pCont = taosMemoryMalloc(pReq->contLen + 1);
12,031!
1895
    if (pReq->pCont == NULL) {
12,031!
1896
      TAOS_CHECK_EXIT(terrno);
×
1897
    }
1898
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCont));
12,031!
1899
  }
1900
  if (!tDecodeIsEnd(&decoder)) {
12,028!
1901
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->type));
24,058!
1902
  }
1903
  tEndDecode(&decoder);
12,028✔
1904
_exit:
12,029✔
1905
  tDecoderClear(&decoder);
12,029✔
1906
  return code;
12,031✔
1907
}
1908

1909
void tFreeSStatisReq(SStatisReq *pReq) { taosMemoryFreeClear(pReq->pCont); }
12,031!
1910

1911
int32_t tSerializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
362✔
1912
  SEncoder encoder = {0};
362✔
1913
  int32_t  code = 0;
362✔
1914
  int32_t  lino;
1915
  int32_t  tlen;
1916
  tEncoderInit(&encoder, buf, bufLen);
362✔
1917

1918
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
362!
1919
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
724!
1920
  ENCODESQL();
1,086!
1921
  tEndEncode(&encoder);
362✔
1922

1923
_exit:
362✔
1924
  if (code) {
362!
1925
    tlen = code;
×
1926
  } else {
1927
    tlen = encoder.pos;
362✔
1928
  }
1929
  tEncoderClear(&encoder);
362✔
1930
  return tlen;
362✔
1931
}
1932

1933
int32_t tDeserializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
58✔
1934
  SDecoder decoder = {0};
58✔
1935
  int32_t  code = 0;
58✔
1936
  int32_t  lino;
1937
  tDecoderInit(&decoder, buf, bufLen);
58✔
1938

1939
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
58!
1940
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
58!
1941
  DECODESQL();
174!
1942
  tEndDecode(&decoder);
58✔
1943

1944
_exit:
58✔
1945
  tDecoderClear(&decoder);
58✔
1946
  return code;
58✔
1947
}
1948

1949
void tFreeSDropUserReq(SDropUserReq *pReq) { FREESQL(); }
239!
1950

1951
int32_t tSerializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
121,728✔
1952
  SEncoder encoder = {0};
121,728✔
1953
  int32_t  code = 0;
121,728✔
1954
  int32_t  lino;
1955
  int32_t  tlen;
1956
  tEncoderInit(&encoder, buf, bufLen);
121,728✔
1957

1958
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
121,729!
1959

1960
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->operation));
243,460!
1961
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
243,460!
1962
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->table));
243,460!
1963
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
243,460!
1964
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pSql));
243,460!
1965

1966
  tEndEncode(&encoder);
121,730✔
1967

1968
_exit:
121,732✔
1969
  if (code) {
121,732!
1970
    tlen = code;
×
1971
  } else {
1972
    tlen = encoder.pos;
121,732✔
1973
  }
1974
  tEncoderClear(&encoder);
121,732✔
1975
  return tlen;
121,730✔
1976
}
1977

1978
int32_t tDeserializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
63,069✔
1979
  SDecoder decoder = {0};
63,069✔
1980
  int32_t  code = 0;
63,069✔
1981
  int32_t  lino;
1982
  tDecoderInit(&decoder, buf, bufLen);
63,069✔
1983

1984
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
63,069!
1985

1986
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->operation));
63,069!
1987
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
63,068!
1988
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->table));
63,070!
1989
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
126,140!
1990
  if (pReq->sqlLen > 0) {
63,070✔
1991
    pReq->pSql = taosMemoryMalloc(pReq->sqlLen + 1);
63,069!
1992
    if (pReq->pSql == NULL) {
63,069!
1993
      TAOS_CHECK_EXIT(terrno);
×
1994
    }
1995
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pSql));
63,069!
1996
  }
1997
  tEndDecode(&decoder);
63,068✔
1998
_exit:
63,070✔
1999
  tDecoderClear(&decoder);
63,070✔
2000
  return code;
63,068✔
2001
}
2002

2003
void tFreeSAuditReq(SAuditReq *pReq) { taosMemoryFreeClear(pReq->pSql); }
63,068!
2004

2005
SIpWhiteList *cloneIpWhiteList(SIpWhiteList *pIpWhiteList) {
4,483✔
2006
  if (pIpWhiteList == NULL) return NULL;
4,483!
2007

2008
  int32_t       sz = sizeof(SIpWhiteList) + pIpWhiteList->num * sizeof(SIpV4Range);
4,483✔
2009
  SIpWhiteList *pNew = taosMemoryCalloc(1, sz);
4,483!
2010
  if (pNew) {
4,483!
2011
    memcpy(pNew, pIpWhiteList, sz);
4,483✔
2012
  }
2013
  return pNew;
4,483✔
2014
}
2015

2016
int32_t tSerializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
570✔
2017
  SEncoder encoder = {0};
570✔
2018
  int32_t  code = 0;
570✔
2019
  int32_t  lino;
2020
  int32_t  tlen;
2021
  tEncoderInit(&encoder, buf, bufLen);
570✔
2022

2023
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
570!
2024
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createType));
1,140!
2025
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
1,140!
2026
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
1,140!
2027
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
1,140!
2028
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
1,140!
2029
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
1,140!
2030
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
1,140!
2031
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
580✔
2032
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
20!
2033
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
20!
2034
  }
2035
  ENCODESQL();
1,710!
2036
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isImport));
1,140!
2037
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createDb));
1,140!
2038
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->passIsMd5));
1,140!
2039

2040
  tEndEncode(&encoder);
570✔
2041

2042
_exit:
570✔
2043
  if (code) {
570!
2044
    tlen = code;
×
2045
  } else {
2046
    tlen = encoder.pos;
570✔
2047
  }
2048
  tEncoderClear(&encoder);
570✔
2049
  return tlen;
570✔
2050
}
2051

2052
int32_t tDeserializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
150✔
2053
  SDecoder decoder = {0};
150✔
2054
  int32_t  code = 0;
150✔
2055
  int32_t  lino;
2056
  tDecoderInit(&decoder, buf, bufLen);
150✔
2057

2058
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
150!
2059
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createType));
300!
2060
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
300!
2061
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
300!
2062
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
300!
2063
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
150!
2064
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
150!
2065
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
300!
2066
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
150!
2067
  if (pReq->pIpRanges == NULL) {
150!
2068
    TAOS_CHECK_EXIT(terrno);
×
2069
  }
2070
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
155✔
2071
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
10!
2072
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
10!
2073
  }
2074
  DECODESQL();
450!
2075
  if (!tDecodeIsEnd(&decoder)) {
150!
2076
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createDb));
300!
2077
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isImport));
300!
2078
  }
2079
  if (!tDecodeIsEnd(&decoder)) {
150!
2080
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->passIsMd5));
300!
2081
  }
2082

2083
  tEndDecode(&decoder);
150✔
2084

2085
_exit:
150✔
2086
  tDecoderClear(&decoder);
150✔
2087
  return code;
150✔
2088
}
2089

2090
int32_t tSerializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
12✔
2091
  SEncoder encoder = {0};
12✔
2092
  int32_t  code = 0;
12✔
2093
  int32_t  lino;
2094
  int32_t  tlen;
2095

2096
  tEncoderInit(&encoder, buf, bufLen);
12✔
2097
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
2098
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ver));
24!
2099
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfUser));
24!
2100
  for (int i = 0; i < pReq->numOfUser; i++) {
24✔
2101
    SUpdateUserIpWhite *pUser = &(pReq->pUserIpWhite[i]);
12✔
2102

2103
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pUser->ver));
24!
2104
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pUser->user));
24!
2105
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUser->numOfRange));
24!
2106
    for (int j = 0; j < pUser->numOfRange; j++) {
36✔
2107
      SIpV4Range *pRange = &pUser->pIpRanges[j];
24✔
2108
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->ip));
48!
2109
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->mask));
48!
2110
    }
2111
  }
2112

2113
  tEndEncode(&encoder);
12✔
2114

2115
_exit:
12✔
2116
  if (code) {
12!
2117
    tlen = code;
×
2118
  } else {
2119
    tlen = encoder.pos;
12✔
2120
  }
2121
  tEncoderClear(&encoder);
12✔
2122
  return tlen;
12✔
2123
}
2124
int32_t tDeserializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
6✔
2125
  SDecoder decoder = {0};
6✔
2126
  int32_t  code = 0;
6✔
2127
  int32_t  lino;
2128
  tDecoderInit(&decoder, buf, bufLen);
6✔
2129

2130
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
2131
  // impl later
2132
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ver));
12!
2133
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfUser));
12!
2134

2135
  if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) {
6!
2136
    TAOS_CHECK_EXIT(terrno);
×
2137
  }
2138
  for (int i = 0; i < pReq->numOfUser; i++) {
12✔
2139
    SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
6✔
2140
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pUserWhite->ver));
12!
2141
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pUserWhite->user));
6!
2142
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pUserWhite->numOfRange));
12!
2143

2144
    if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpV4Range))) == NULL) {
6!
2145
      TAOS_CHECK_EXIT(terrno);
×
2146
    }
2147
    for (int j = 0; j < pUserWhite->numOfRange; j++) {
18✔
2148
      SIpV4Range *pRange = &pUserWhite->pIpRanges[j];
12✔
2149
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->ip));
24!
2150
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->mask));
24!
2151
    }
2152
  }
2153

2154
  tEndDecode(&decoder);
6✔
2155

2156
_exit:
6✔
2157
  tDecoderClear(&decoder);
6✔
2158
  return code;
6✔
2159
}
2160
void tFreeSUpdateIpWhiteReq(SUpdateIpWhite *pReq) {
132✔
2161
  if (pReq == NULL) return;
132!
2162

2163
  if (pReq->pUserIpWhite) {
132!
2164
    for (int i = 0; i < pReq->numOfUser; i++) {
264✔
2165
      SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
132✔
2166
      taosMemoryFree(pUserWhite->pIpRanges);
132!
2167
    }
2168
  }
2169
  taosMemoryFree(pReq->pUserIpWhite);
132!
2170
  return;
132✔
2171
}
2172
int32_t cloneSUpdateIpWhiteReq(SUpdateIpWhite *pReq, SUpdateIpWhite **pUpdateMsg) {
149,258✔
2173
  int32_t code = 0;
149,258✔
2174
  if (pReq == NULL) {
149,258✔
2175
    return 0;
149,138✔
2176
  }
2177
  SUpdateIpWhite *pClone = taosMemoryCalloc(1, sizeof(SUpdateIpWhite));
120!
2178
  if (pClone == NULL) {
120!
2179
    return terrno;
×
2180
  }
2181

2182
  pClone->numOfUser = pReq->numOfUser;
120✔
2183
  pClone->ver = pReq->ver;
120✔
2184
  pClone->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser);
120!
2185
  if (pClone->pUserIpWhite == NULL) {
120!
2186
    taosMemoryFree(pClone);
×
2187
    return terrno;
×
2188
  }
2189

2190
  for (int i = 0; i < pReq->numOfUser; i++) {
240✔
2191
    SUpdateUserIpWhite *pNew = &pClone->pUserIpWhite[i];
120✔
2192
    SUpdateUserIpWhite *pOld = &pReq->pUserIpWhite[i];
120✔
2193

2194
    pNew->ver = pOld->ver;
120✔
2195
    memcpy(pNew->user, pOld->user, strlen(pOld->user));
120✔
2196
    pNew->numOfRange = pOld->numOfRange;
120✔
2197

2198
    int32_t sz = pOld->numOfRange * sizeof(SIpV4Range);
120✔
2199
    pNew->pIpRanges = taosMemoryCalloc(1, sz);
120!
2200
    if (pNew->pIpRanges == NULL) {
120!
2201
      code = terrno;
×
2202
      break;
×
2203
    }
2204
    memcpy(pNew->pIpRanges, pOld->pIpRanges, sz);
120✔
2205
  }
2206
_return:
120✔
2207
  if (code < 0) {
120!
2208
    tFreeSUpdateIpWhiteReq(pClone);
×
2209
    taosMemoryFree(pClone);
×
2210
  } else {
2211
    *pUpdateMsg = pClone;
120✔
2212
  }
2213
  return code;
120✔
2214
}
2215
int32_t tSerializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
12✔
2216
  SEncoder encoder = {0};
12✔
2217
  int32_t  code = 0;
12✔
2218
  int32_t  lino;
2219
  int32_t  tlen;
2220
  tEncoderInit(&encoder, buf, bufLen);
12✔
2221

2222
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
2223
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
24!
2224
  tEndEncode(&encoder);
12✔
2225

2226
_exit:
12✔
2227
  if (code) {
12!
2228
    tlen = code;
×
2229
  } else {
2230
    tlen = encoder.pos;
12✔
2231
  }
2232
  tEncoderClear(&encoder);
12✔
2233
  return tlen;
12✔
2234
}
2235

2236
int32_t tDeserializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
6✔
2237
  SDecoder decoder = {0};
6✔
2238
  int32_t  code = 0;
6✔
2239
  int32_t  lino;
2240

2241
  tDecoderInit(&decoder, buf, bufLen);
6✔
2242

2243
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
2244
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
12!
2245
  tEndDecode(&decoder);
6✔
2246

2247
_exit:
6✔
2248
  tDecoderClear(&decoder);
6✔
2249
  return code;
6✔
2250
}
2251

2252
int32_t tSerializeRetrieveAnalAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalAlgoReq *pReq) {
4✔
2253
  SEncoder encoder = {0};
4✔
2254
  int32_t  code = 0;
4✔
2255
  int32_t  lino;
2256
  int32_t  tlen;
2257
  tEncoderInit(&encoder, buf, bufLen);
4✔
2258

2259
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2260
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
8!
2261
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
8!
2262
  tEndEncode(&encoder);
4✔
2263

2264
_exit:
4✔
2265
  if (code) {
4!
2266
    tlen = code;
×
2267
  } else {
2268
    tlen = encoder.pos;
4✔
2269
  }
2270
  tEncoderClear(&encoder);
4✔
2271
  return tlen;
4✔
2272
}
2273

2274
int32_t tDeserializeRetrieveAnalAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalAlgoReq *pReq) {
2✔
2275
  SDecoder decoder = {0};
2✔
2276
  int32_t  code = 0;
2✔
2277
  int32_t  lino;
2278

2279
  tDecoderInit(&decoder, buf, bufLen);
2✔
2280

2281
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2282
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
4!
2283
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
4!
2284
  tEndDecode(&decoder);
2✔
2285

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

2291
int32_t tSerializeRetrieveAnalAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalAlgoRsp *pRsp) {
4✔
2292
  SEncoder encoder = {0};
4✔
2293
  int32_t  code = 0;
4✔
2294
  int32_t  lino;
2295
  int32_t  tlen;
2296
  tEncoderInit(&encoder, buf, bufLen);
4✔
2297

2298
  int32_t numOfAlgos = 0;
4✔
2299
  void   *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2300
  while (pIter != NULL) {
20✔
2301
    SAnalyticsUrl *pUrl = pIter;
16✔
2302
    size_t         nameLen = 0;
16✔
2303
    const char    *name = taosHashGetKey(pIter, &nameLen);
16✔
2304
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_KEY_LEN && pUrl->urlLen > 0) {
16!
2305
      numOfAlgos++;
16✔
2306
    }
2307
    pIter = taosHashIterate(pRsp->hash, pIter);
16✔
2308
  }
2309

2310
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2311
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ver));
8!
2312
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfAlgos));
4!
2313

2314
  pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2315
  while (pIter != NULL) {
20✔
2316
    SAnalyticsUrl *pUrl = pIter;
16✔
2317
    size_t         nameLen = 0;
16✔
2318
    const char    *name = taosHashGetKey(pIter, &nameLen);
16✔
2319
    if (nameLen > 0 && pUrl->urlLen > 0) {
16!
2320
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, nameLen));
32!
2321
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)name, nameLen));
32!
2322
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->anode));
32!
2323
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->type));
32!
2324
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->urlLen));
32!
2325
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pUrl->url, pUrl->urlLen));
32!
2326
    }
2327
    pIter = taosHashIterate(pRsp->hash, pIter);
16✔
2328
  }
2329

2330
  tEndEncode(&encoder);
4✔
2331

2332
_exit:
4✔
2333
  if (code) {
4!
2334
    tlen = code;
×
2335
  } else {
2336
    tlen = encoder.pos;
4✔
2337
  }
2338
  tEncoderClear(&encoder);
4✔
2339
  return tlen;
4✔
2340
}
2341

2342
int32_t tDeserializeRetrieveAnalAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalAlgoRsp *pRsp) {
2✔
2343
  if (pRsp->hash == NULL) {
2!
2344
    pRsp->hash = taosHashInit(64, MurmurHash3_32, true, HASH_ENTRY_LOCK);
2✔
2345
    if (pRsp->hash == NULL) {
2!
2346
      terrno = TSDB_CODE_OUT_OF_BUFFER;
×
2347
      return terrno;
×
2348
    }
2349
  }
2350

2351
  SDecoder decoder = {0};
2✔
2352
  int32_t  code = 0;
2✔
2353
  int32_t  lino;
2354
  tDecoderInit(&decoder, buf, bufLen);
2✔
2355

2356
  int32_t       numOfAlgos = 0;
2✔
2357
  int32_t       nameLen;
2358
  int32_t       type;
2359
  char          name[TSDB_ANALYTIC_ALGO_KEY_LEN];
2360
  SAnalyticsUrl url = {0};
2✔
2361

2362
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2363
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ver));
4!
2364
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfAlgos));
2!
2365

2366
  for (int32_t f = 0; f < numOfAlgos; ++f) {
10✔
2367
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nameLen));
8!
2368
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_NAME_LEN) {
8!
2369
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, name));
8!
2370
    }
2371

2372
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.anode));
8!
2373
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &type));
8!
2374
    url.type = (EAnalAlgoType)type;
8✔
2375
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.urlLen));
8!
2376
    if (url.urlLen > 0) {
8!
2377
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&url.url, NULL) < 0);
8!
2378
    }
2379

2380
    TAOS_CHECK_EXIT(taosHashPut(pRsp->hash, name, nameLen, &url, sizeof(SAnalyticsUrl)));
8!
2381
  }
2382

2383
  tEndDecode(&decoder);
2✔
2384

2385
_exit:
2✔
2386
  tDecoderClear(&decoder);
2✔
2387
  return code;
2✔
2388
}
2389

2390
void tFreeRetrieveAnalAlgoRsp(SRetrieveAnalAlgoRsp *pRsp) {
4✔
2391
  void *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2392
  while (pIter != NULL) {
12✔
2393
    SAnalyticsUrl *pUrl = (SAnalyticsUrl *)pIter;
8✔
2394
    taosMemoryFree(pUrl->url);
8!
2395
    pIter = taosHashIterate(pRsp->hash, pIter);
8✔
2396
  }
2397
  taosHashCleanup(pRsp->hash);
4✔
2398

2399
  pRsp->hash = NULL;
4✔
2400
}
4✔
2401

2402
void tFreeSCreateUserReq(SCreateUserReq *pReq) {
435✔
2403
  FREESQL();
435!
2404
  taosMemoryFreeClear(pReq->pIpRanges);
435!
2405
}
435✔
2406

2407
int32_t tSerializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
1,208✔
2408
  SEncoder encoder = {0};
1,208✔
2409
  int32_t  code = 0;
1,208✔
2410
  int32_t  lino;
2411
  int32_t  tlen;
2412
  tEncoderInit(&encoder, buf, bufLen);
1,208✔
2413

2414
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,208!
2415
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
2,416!
2416
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
2,416!
2417
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
2,416!
2418
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
2,416!
2419
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isView));
2,416!
2420
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
2,416!
2421
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
2,416!
2422
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->objname));
2,416!
2423
  int32_t len = strlen(pReq->tabName);
1,208✔
2424
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, len));
1,208!
2425
  if (len > 0) {
1,208✔
2426
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tabName));
276!
2427
  }
2428
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->tagCond, pReq->tagCondLen));
2,416!
2429
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
2,416!
2430
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
1,232✔
2431
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
48!
2432
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
48!
2433
  }
2434
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->privileges));
2,416!
2435
  ENCODESQL();
3,624!
2436
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->flag));
2,416!
2437
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->passIsMd5));
2,416!
2438
  tEndEncode(&encoder);
1,208✔
2439

2440
_exit:
1,208✔
2441
  if (code) {
1,208!
2442
    tlen = code;
×
2443
  } else {
2444
    tlen = encoder.pos;
1,208✔
2445
  }
2446
  tEncoderClear(&encoder);
1,208✔
2447
  return tlen;
1,208✔
2448
}
2449

2450
int32_t tDeserializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
419✔
2451
  SDecoder decoder = {0};
419✔
2452
  int32_t  code = 0;
419✔
2453
  int32_t  lino;
2454
  tDecoderInit(&decoder, buf, bufLen);
419✔
2455

2456
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
419!
2457
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
838!
2458
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
838!
2459
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
838!
2460
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
838!
2461
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isView));
838!
2462
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
419!
2463
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
419!
2464
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->objname));
419!
2465
  if (!tDecodeIsEnd(&decoder)) {
419!
2466
    int32_t len = 0;
419✔
2467
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &len));
419!
2468
    if (len > 0) {
419✔
2469
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tabName));
67!
2470
    }
2471
    uint64_t tagCondLen = 0;
419✔
2472
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->tagCond, &tagCondLen));
838!
2473
    pReq->tagCondLen = tagCondLen;
419✔
2474
  }
2475
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
838!
2476
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
419!
2477
  if (pReq->pIpRanges == NULL) {
419!
2478
    TAOS_CHECK_EXIT(terrno);
×
2479
  }
2480
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
421✔
2481
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
4!
2482
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
4!
2483
  }
2484
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->privileges));
838!
2485
  DECODESQL();
1,257!
2486
  if (!tDecodeIsEnd(&decoder)) {
419!
2487
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->flag));
838!
2488
  }
2489
  if (!tDecodeIsEnd(&decoder)) {
419!
2490
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->passIsMd5));
838!
2491
  }
2492
  tEndDecode(&decoder);
419✔
2493

2494
_exit:
419✔
2495
  tDecoderClear(&decoder);
419✔
2496
  return code;
419✔
2497
}
2498

2499
void tFreeSAlterUserReq(SAlterUserReq *pReq) {
1,023✔
2500
  taosMemoryFreeClear(pReq->tagCond);
1,023!
2501
  taosMemoryFree(pReq->pIpRanges);
1,023!
2502
  FREESQL();
1,023!
2503
}
1,023✔
2504

2505
int32_t tSerializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
9,589✔
2506
  SEncoder encoder = {0};
9,589✔
2507
  int32_t  code = 0;
9,589✔
2508
  int32_t  lino;
2509
  int32_t  tlen;
2510

2511
  tEncoderInit(&encoder, buf, bufLen);
9,589✔
2512
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
9,599!
2513
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
19,198!
2514
  tEndEncode(&encoder);
9,599✔
2515

2516
_exit:
9,598✔
2517
  if (code) {
9,598!
2518
    tlen = code;
×
2519
  } else {
2520
    tlen = encoder.pos;
9,598✔
2521
  }
2522
  tEncoderClear(&encoder);
9,598✔
2523
  return tlen;
9,596✔
2524
}
2525

2526
int32_t tDeserializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
388,405✔
2527
  SDecoder decoder = {0};
388,405✔
2528
  int32_t  code = 0;
388,405✔
2529
  int32_t  lino;
2530
  tDecoderInit(&decoder, buf, bufLen);
388,405✔
2531

2532
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
388,405!
2533
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
388,404!
2534
  tEndDecode(&decoder);
388,405✔
2535

2536
_exit:
388,405✔
2537
  tDecoderClear(&decoder);
388,405✔
2538
  return code;
388,405✔
2539
}
2540

2541
int32_t tSerializeSGetUserAuthRspImpl(SEncoder *pEncoder, SGetUserAuthRsp *pRsp) {
807,589✔
2542
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->user));
1,615,178!
2543
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->superAuth));
1,615,178!
2544
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->sysInfo));
1,615,178!
2545
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->enable));
1,615,178!
2546
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->dropped));
1,615,178!
2547
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->version));
1,615,178!
2548

2549
  int32_t numOfCreatedDbs = taosHashGetSize(pRsp->createdDbs);
807,589✔
2550
  int32_t numOfReadDbs = taosHashGetSize(pRsp->readDbs);
807,582✔
2551
  int32_t numOfWriteDbs = taosHashGetSize(pRsp->writeDbs);
807,584✔
2552

2553
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfCreatedDbs));
807,588!
2554
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadDbs));
807,588!
2555
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteDbs));
807,588!
2556

2557
  char *db = taosHashIterate(pRsp->createdDbs, NULL);
807,588✔
2558
  while (db != NULL) {
22,364,975✔
2559
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
21,557,378!
2560
    db = taosHashIterate(pRsp->createdDbs, db);
21,557,378✔
2561
  }
2562

2563
  db = taosHashIterate(pRsp->readDbs, NULL);
807,597✔
2564
  while (db != NULL) {
807,749✔
2565
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
158!
2566
    db = taosHashIterate(pRsp->readDbs, db);
158✔
2567
  }
2568

2569
  db = taosHashIterate(pRsp->writeDbs, NULL);
807,591✔
2570
  while (db != NULL) {
807,748✔
2571
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
160!
2572
    db = taosHashIterate(pRsp->writeDbs, db);
160✔
2573
  }
2574

2575
  int32_t numOfReadTbs = taosHashGetSize(pRsp->readTbs);
807,588✔
2576
  int32_t numOfWriteTbs = taosHashGetSize(pRsp->writeTbs);
807,591✔
2577
  int32_t numOfAlterTbs = taosHashGetSize(pRsp->alterTbs);
807,591✔
2578
  int32_t numOfReadViews = taosHashGetSize(pRsp->readViews);
807,593✔
2579
  int32_t numOfWriteViews = taosHashGetSize(pRsp->writeViews);
807,591✔
2580
  int32_t numOfAlterViews = taosHashGetSize(pRsp->alterViews);
807,588✔
2581
  int32_t numOfUseDbs = taosHashGetSize(pRsp->useDbs);
807,589✔
2582
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadTbs));
807,586!
2583
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteTbs));
807,586!
2584
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterTbs));
807,586!
2585
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadViews));
807,586!
2586
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteViews));
807,586!
2587
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterViews));
807,586!
2588
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfUseDbs));
807,586!
2589

2590
  char *tb = taosHashIterate(pRsp->readTbs, NULL);
807,586✔
2591
  while (tb != NULL) {
807,698✔
2592
    size_t keyLen = 0;
114✔
2593
    void  *key = taosHashGetKey(tb, &keyLen);
114✔
2594
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
228!
2595
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
114!
2596

2597
    size_t valueLen = 0;
114✔
2598
    valueLen = strlen(tb);
114✔
2599
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
228!
2600
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
114!
2601

2602
    tb = taosHashIterate(pRsp->readTbs, tb);
114✔
2603
  }
2604

2605
  tb = taosHashIterate(pRsp->writeTbs, NULL);
807,584✔
2606
  while (tb != NULL) {
807,707✔
2607
    size_t keyLen = 0;
120✔
2608
    void  *key = taosHashGetKey(tb, &keyLen);
120✔
2609
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
240!
2610
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
120!
2611

2612
    size_t valueLen = 0;
120✔
2613
    valueLen = strlen(tb);
120✔
2614
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
240!
2615
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
120!
2616

2617
    tb = taosHashIterate(pRsp->writeTbs, tb);
120✔
2618
  }
2619

2620
  tb = taosHashIterate(pRsp->alterTbs, NULL);
807,587✔
2621
  while (tb != NULL) {
807,597✔
2622
    size_t keyLen = 0;
18✔
2623
    void  *key = taosHashGetKey(tb, &keyLen);
18✔
2624
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
36!
2625
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
18!
2626

2627
    size_t valueLen = 0;
18✔
2628
    valueLen = strlen(tb);
18✔
2629
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
36!
2630
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
18!
2631

2632
    tb = taosHashIterate(pRsp->alterTbs, tb);
18✔
2633
  }
2634

2635
  tb = taosHashIterate(pRsp->readViews, NULL);
807,579✔
2636
  while (tb != NULL) {
807,730✔
2637
    size_t keyLen = 0;
150✔
2638
    void  *key = taosHashGetKey(tb, &keyLen);
150✔
2639
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
300!
2640
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
150!
2641

2642
    size_t valueLen = 0;
150✔
2643
    valueLen = strlen(tb);
150✔
2644
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
300!
2645
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
150!
2646

2647
    tb = taosHashIterate(pRsp->readViews, tb);
150✔
2648
  }
2649

2650
  tb = taosHashIterate(pRsp->writeViews, NULL);
807,580✔
2651
  while (tb != NULL) {
807,697✔
2652
    size_t keyLen = 0;
120✔
2653
    void  *key = taosHashGetKey(tb, &keyLen);
120✔
2654
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
240!
2655
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
120!
2656

2657
    size_t valueLen = 0;
120✔
2658
    valueLen = strlen(tb);
120✔
2659
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
240!
2660
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
120!
2661

2662
    tb = taosHashIterate(pRsp->writeViews, tb);
120✔
2663
  }
2664

2665
  tb = taosHashIterate(pRsp->alterViews, NULL);
807,577✔
2666
  while (tb != NULL) {
807,703✔
2667
    size_t keyLen = 0;
126✔
2668
    void  *key = taosHashGetKey(tb, &keyLen);
126✔
2669
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
252!
2670
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
126!
2671

2672
    size_t valueLen = 0;
126✔
2673
    valueLen = strlen(tb);
126✔
2674
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
252!
2675
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
126!
2676

2677
    tb = taosHashIterate(pRsp->alterViews, tb);
126✔
2678
  }
2679

2680
  int32_t *useDb = taosHashIterate(pRsp->useDbs, NULL);
807,577✔
2681
  while (useDb != NULL) {
807,928✔
2682
    size_t keyLen = 0;
354✔
2683
    void  *key = taosHashGetKey(useDb, &keyLen);
354✔
2684
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
708!
2685
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
354!
2686
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, *useDb));
708!
2687
    useDb = taosHashIterate(pRsp->useDbs, useDb);
354✔
2688
  }
2689

2690
  // since 3.0.7.0
2691
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->passVer));
1,615,148!
2692
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->whiteListVer));
1,615,148!
2693
  return 0;
807,574✔
2694
}
2695

2696
int32_t tSerializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
776,796✔
2697
  SEncoder encoder = {0};
776,796✔
2698
  int32_t  code = 0;
776,796✔
2699
  int32_t  lino;
2700
  int32_t  tlen;
2701
  tEncoderInit(&encoder, buf, bufLen);
776,796✔
2702

2703
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
776,802!
2704
  TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pRsp));
776,806!
2705

2706
  tEndEncode(&encoder);
776,794✔
2707

2708
_exit:
776,799✔
2709
  if (code) {
776,799!
2710
    tlen = code;
×
2711
  } else {
2712
    tlen = encoder.pos;
776,799✔
2713
  }
2714
  tEncoderClear(&encoder);
776,799✔
2715
  return tlen;
776,800✔
2716
}
2717

2718
int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRsp) {
7,552✔
2719
  char *key = NULL, *value = NULL;
7,552✔
2720
  pRsp->createdDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2721
  pRsp->readDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2722
  pRsp->writeDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2723
  pRsp->readTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2724
  pRsp->writeTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,551✔
2725
  pRsp->alterTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2726
  pRsp->readViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2727
  pRsp->writeViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2728
  pRsp->alterViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2729
  pRsp->useDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
7,552✔
2730
  if (pRsp->createdDbs == NULL || pRsp->readDbs == NULL || pRsp->writeDbs == NULL || pRsp->readTbs == NULL ||
7,551!
2731
      pRsp->writeTbs == NULL || pRsp->alterTbs == NULL || pRsp->readViews == NULL || pRsp->writeViews == NULL ||
7,551!
2732
      pRsp->alterViews == NULL || pRsp->useDbs == NULL) {
7,551!
2733
    goto _err;
×
2734
  }
2735

2736
  if (tDecodeCStrTo(pDecoder, pRsp->user) < 0) goto _err;
7,551!
2737
  if (tDecodeI8(pDecoder, &pRsp->superAuth) < 0) goto _err;
15,103!
2738
  if (tDecodeI8(pDecoder, &pRsp->sysInfo) < 0) goto _err;
15,104!
2739
  if (tDecodeI8(pDecoder, &pRsp->enable) < 0) goto _err;
15,104!
2740
  if (tDecodeI8(pDecoder, &pRsp->dropped) < 0) goto _err;
15,104!
2741
  if (tDecodeI32(pDecoder, &pRsp->version) < 0) goto _err;
15,104!
2742

2743
  int32_t numOfCreatedDbs = 0;
7,552✔
2744
  int32_t numOfReadDbs = 0;
7,552✔
2745
  int32_t numOfWriteDbs = 0;
7,552✔
2746
  if (tDecodeI32(pDecoder, &numOfCreatedDbs) < 0) goto _err;
7,552!
2747
  if (tDecodeI32(pDecoder, &numOfReadDbs) < 0) goto _err;
7,552!
2748
  if (tDecodeI32(pDecoder, &numOfWriteDbs) < 0) goto _err;
7,552!
2749

2750
  for (int32_t i = 0; i < numOfCreatedDbs; ++i) {
19,267✔
2751
    char db[TSDB_DB_FNAME_LEN] = {0};
11,715✔
2752
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
11,715!
2753
    int32_t len = strlen(db);
11,715✔
2754
    if (taosHashPut(pRsp->createdDbs, db, len + 1, db, len + 1) < 0) goto _err;
11,715!
2755
  }
2756

2757
  for (int32_t i = 0; i < numOfReadDbs; ++i) {
7,640✔
2758
    char db[TSDB_DB_FNAME_LEN] = {0};
88✔
2759
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
88!
2760
    int32_t len = strlen(db);
88✔
2761
    if (taosHashPut(pRsp->readDbs, db, len + 1, db, len + 1) < 0) goto _err;
88!
2762
  }
2763

2764
  for (int32_t i = 0; i < numOfWriteDbs; ++i) {
7,641✔
2765
    char db[TSDB_DB_FNAME_LEN] = {0};
89✔
2766
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
89!
2767
    int32_t len = strlen(db);
89✔
2768
    if (taosHashPut(pRsp->writeDbs, db, len + 1, db, len + 1) < 0) goto _err;
89!
2769
  }
2770

2771
  if (!tDecodeIsEnd(pDecoder)) {
7,552!
2772
    int32_t numOfReadTbs = 0;
7,552✔
2773
    int32_t numOfWriteTbs = 0;
7,552✔
2774
    int32_t numOfAlterTbs = 0;
7,552✔
2775
    int32_t numOfReadViews = 0;
7,552✔
2776
    int32_t numOfWriteViews = 0;
7,552✔
2777
    int32_t numOfAlterViews = 0;
7,552✔
2778
    int32_t numOfUseDbs = 0;
7,552✔
2779
    if (tDecodeI32(pDecoder, &numOfReadTbs) < 0) goto _err;
7,552!
2780
    if (tDecodeI32(pDecoder, &numOfWriteTbs) < 0) goto _err;
7,552!
2781
    if (tDecodeI32(pDecoder, &numOfAlterTbs) < 0) goto _err;
7,552!
2782
    if (tDecodeI32(pDecoder, &numOfReadViews) < 0) goto _err;
7,552!
2783
    if (tDecodeI32(pDecoder, &numOfWriteViews) < 0) goto _err;
7,552!
2784
    if (tDecodeI32(pDecoder, &numOfAlterViews) < 0) goto _err;
7,552!
2785
    if (tDecodeI32(pDecoder, &numOfUseDbs) < 0) goto _err;
7,552!
2786

2787
    for (int32_t i = 0; i < numOfReadTbs; ++i) {
7,609✔
2788
      int32_t keyLen = 0;
57✔
2789
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
57!
2790

2791
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
57!
2792
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
57!
2793

2794
      int32_t valuelen = 0;
57✔
2795
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
57!
2796

2797
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
57!
2798
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
57!
2799

2800
      if (taosHashPut(pRsp->readTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
57!
2801

2802
      taosMemoryFreeClear(key);
57!
2803
      taosMemoryFreeClear(value);
57!
2804
    }
2805

2806
    for (int32_t i = 0; i < numOfWriteTbs; ++i) {
7,612✔
2807
      int32_t keyLen = 0;
60✔
2808
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
60!
2809

2810
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
60!
2811
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
60!
2812

2813
      int32_t valuelen = 0;
60✔
2814
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
60!
2815

2816
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
60!
2817
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
60!
2818

2819
      if (taosHashPut(pRsp->writeTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
60!
2820

2821
      taosMemoryFreeClear(key);
60!
2822
      taosMemoryFreeClear(value);
60!
2823
    }
2824

2825
    for (int32_t i = 0; i < numOfAlterTbs; ++i) {
7,561✔
2826
      int32_t keyLen = 0;
9✔
2827
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
9!
2828

2829
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
9!
2830
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
9!
2831

2832
      int32_t valuelen = 0;
9✔
2833
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
9!
2834

2835
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
9!
2836
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
9!
2837

2838
      if (taosHashPut(pRsp->alterTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
9!
2839

2840
      taosMemoryFreeClear(key);
9!
2841
      taosMemoryFreeClear(value);
9!
2842
    }
2843

2844
    for (int32_t i = 0; i < numOfReadViews; ++i) {
7,630✔
2845
      int32_t keyLen = 0;
78✔
2846
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
78!
2847

2848
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
78!
2849
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
78!
2850

2851
      int32_t valuelen = 0;
78✔
2852
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
78!
2853

2854
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
78!
2855
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
78!
2856

2857
      if (taosHashPut(pRsp->readViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
78!
2858

2859
      taosMemoryFreeClear(key);
78!
2860
      taosMemoryFreeClear(value);
78!
2861
    }
2862

2863
    for (int32_t i = 0; i < numOfWriteViews; ++i) {
7,615✔
2864
      int32_t keyLen = 0;
63✔
2865
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
63!
2866

2867
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
63!
2868
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
63!
2869

2870
      int32_t valuelen = 0;
63✔
2871
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
63!
2872

2873
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
63!
2874
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
63!
2875

2876
      if (taosHashPut(pRsp->writeViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
63!
2877

2878
      taosMemoryFreeClear(key);
63!
2879
      taosMemoryFreeClear(value);
63!
2880
    }
2881

2882
    for (int32_t i = 0; i < numOfAlterViews; ++i) {
7,618✔
2883
      int32_t keyLen = 0;
66✔
2884
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
66!
2885

2886
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
66!
2887
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
66!
2888

2889
      int32_t valuelen = 0;
66✔
2890
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
66!
2891

2892
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
66!
2893
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
66!
2894

2895
      if (taosHashPut(pRsp->alterViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
66!
2896

2897
      taosMemoryFreeClear(key);
66!
2898
      taosMemoryFreeClear(value);
66!
2899
    }
2900

2901
    for (int32_t i = 0; i < numOfUseDbs; ++i) {
7,733✔
2902
      int32_t keyLen = 0;
181✔
2903
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
181!
2904

2905
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
181!
2906
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
181!
2907

2908
      int32_t ref = 0;
181✔
2909
      if (tDecodeI32(pDecoder, &ref) < 0) goto _err;
181!
2910

2911
      if (taosHashPut(pRsp->useDbs, key, keyLen, &ref, sizeof(ref)) < 0) goto _err;
181!
2912
      taosMemoryFreeClear(key);
181!
2913
    }
2914
    // since 3.0.7.0
2915
    if (!tDecodeIsEnd(pDecoder)) {
7,552✔
2916
      if (tDecodeI32(pDecoder, &pRsp->passVer) < 0) goto _err;
15,098!
2917
    } else {
2918
      pRsp->passVer = 0;
5✔
2919
    }
2920
    if (!tDecodeIsEnd(pDecoder)) {
7,556✔
2921
      if (tDecodeI64(pDecoder, &pRsp->whiteListVer) < 0) goto _err;
15,102!
2922
    } else {
2923
      pRsp->whiteListVer = 0;
5✔
2924
    }
2925
  }
2926
  return 0;
7,556✔
2927
_err:
×
2928
  taosHashCleanup(pRsp->createdDbs);
×
2929
  taosHashCleanup(pRsp->readDbs);
×
2930
  taosHashCleanup(pRsp->writeDbs);
×
2931
  taosHashCleanup(pRsp->readTbs);
×
2932
  taosHashCleanup(pRsp->writeTbs);
×
2933
  taosHashCleanup(pRsp->alterTbs);
×
2934
  taosHashCleanup(pRsp->readViews);
×
2935
  taosHashCleanup(pRsp->writeViews);
×
2936
  taosHashCleanup(pRsp->alterViews);
×
2937
  taosHashCleanup(pRsp->useDbs);
×
2938

2939
  taosMemoryFreeClear(key);
×
2940
  taosMemoryFreeClear(value);
×
2941
  return -1;
×
2942
}
2943

2944
int32_t tDeserializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
4,791✔
2945
  SDecoder decoder = {0};
4,791✔
2946
  int32_t  code = 0;
4,791✔
2947
  int32_t  lino;
2948
  tDecoderInit(&decoder, buf, bufLen);
4,791✔
2949

2950
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,795!
2951
  TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, pRsp));
4,795!
2952

2953
  tEndDecode(&decoder);
4,794✔
2954

2955
_exit:
4,794✔
2956
  tDecoderClear(&decoder);
4,794✔
2957
  return code;
4,794✔
2958
}
2959

2960
void tFreeSGetUserAuthRsp(SGetUserAuthRsp *pRsp) {
403,797✔
2961
  taosHashCleanup(pRsp->createdDbs);
403,797✔
2962
  taosHashCleanup(pRsp->readDbs);
403,797✔
2963
  taosHashCleanup(pRsp->writeDbs);
403,797✔
2964
  taosHashCleanup(pRsp->readTbs);
403,798✔
2965
  taosHashCleanup(pRsp->writeTbs);
403,798✔
2966
  taosHashCleanup(pRsp->alterTbs);
403,798✔
2967
  taosHashCleanup(pRsp->readViews);
403,798✔
2968
  taosHashCleanup(pRsp->writeViews);
403,798✔
2969
  taosHashCleanup(pRsp->alterViews);
403,796✔
2970
  taosHashCleanup(pRsp->useDbs);
403,798✔
2971
}
403,798✔
2972

2973
int32_t tSerializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
20✔
2974
  SEncoder encoder = {0};
20✔
2975
  int32_t  code = 0;
20✔
2976
  int32_t  lino;
2977
  int32_t  tlen;
2978

2979
  tEncoderInit(&encoder, buf, bufLen);
20✔
2980

2981
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
2982
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
40!
2983
  tEndEncode(&encoder);
20✔
2984

2985
_exit:
20✔
2986
  if (code) {
20!
2987
    tlen = code;
×
2988
  } else {
2989
    tlen = encoder.pos;
20✔
2990
  }
2991
  tEncoderClear(&encoder);
20✔
2992
  return tlen;
20✔
2993
}
2994

2995
int32_t tDeserializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
225✔
2996
  SDecoder decoder = {0};
225✔
2997
  int32_t  code = 0;
225✔
2998
  int32_t  lino;
2999
  tDecoderInit(&decoder, buf, bufLen);
225✔
3000

3001
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
225!
3002
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
225!
3003
  tEndDecode(&decoder);
225✔
3004

3005
_exit:
225✔
3006
  tDecoderClear(&decoder);
225✔
3007
  return code;
225✔
3008
}
3009

3010
int32_t tSerializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
450✔
3011
  SEncoder encoder = {0};
450✔
3012
  int32_t  code = 0;
450✔
3013
  int32_t  lino;
3014
  int32_t  tlen;
3015
  tEncoderInit(&encoder, buf, bufLen);
450✔
3016

3017
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
450!
3018
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->user));
900!
3019
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numWhiteLists));
900!
3020
  for (int i = 0; i < pRsp->numWhiteLists; ++i) {
900✔
3021
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].ip));
900!
3022
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].mask));
900!
3023
  }
3024
  tEndEncode(&encoder);
450✔
3025

3026
_exit:
450✔
3027
  if (code) {
450!
3028
    tlen = code;
×
3029
  } else {
3030
    tlen = encoder.pos;
450✔
3031
  }
3032
  tEncoderClear(&encoder);
450✔
3033
  return tlen;
450✔
3034
}
3035

3036
int32_t tDeserializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
10✔
3037
  SDecoder decoder = {0};
10✔
3038
  int32_t  code = 0;
10✔
3039
  int32_t  lino;
3040
  tDecoderInit(&decoder, buf, bufLen);
10✔
3041

3042
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
3043
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->user));
10!
3044
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numWhiteLists));
20!
3045
  pRsp->pWhiteLists = taosMemoryMalloc(pRsp->numWhiteLists * sizeof(SIpV4Range));
10!
3046
  if (pRsp->pWhiteLists == NULL) {
10!
3047
    TAOS_CHECK_EXIT(terrno);
×
3048
  }
3049
  for (int32_t i = 0; i < pRsp->numWhiteLists; ++i) {
20✔
3050
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].ip)));
20!
3051
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].mask)));
20!
3052
  }
3053

3054
  tEndDecode(&decoder);
10✔
3055
_exit:
10✔
3056
  tDecoderClear(&decoder);
10✔
3057
  return code;
10✔
3058
}
3059

3060
void tFreeSGetUserWhiteListRsp(SGetUserWhiteListRsp *pRsp) { taosMemoryFree(pRsp->pWhiteLists); }
235!
3061

3062
int32_t tSerializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
×
3063
  SEncoder encoder = {0};
×
3064
  int32_t  code = 0;
×
3065
  int32_t  lino;
3066
  int32_t  tlen;
3067
  tEncoderInit(&encoder, buf, bufLen);
×
3068

3069
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3070
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
×
3071
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
×
3072
  ENCODESQL();
×
3073
  tEndEncode(&encoder);
×
3074

3075
_exit:
×
3076
  if (code) {
×
3077
    tlen = code;
×
3078
  } else {
3079
    tlen = encoder.pos;
×
3080
  }
3081
  tEncoderClear(&encoder);
×
3082
  return tlen;
×
3083
}
3084

3085
int32_t tDeserializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
×
3086
  SDecoder decoder = {0};
×
3087
  int32_t  code = 0;
×
3088
  int32_t  lino;
3089
  tDecoderInit(&decoder, buf, bufLen);
×
3090

3091
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3092
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
×
3093
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
×
3094
  DECODESQL();
×
3095
  tEndDecode(&decoder);
×
3096

3097
_exit:
×
3098
  tDecoderClear(&decoder);
×
3099
  return code;
×
3100
}
3101

3102
void tFreeSMCfgClusterReq(SMCfgClusterReq *pReq) { FREESQL(); }
×
3103

3104
int32_t tSerializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
3,486✔
3105
  SEncoder encoder = {0};
3,486✔
3106
  int32_t  code = 0;
3,486✔
3107
  int32_t  lino;
3108
  int32_t  tlen;
3109
  tEncoderInit(&encoder, buf, bufLen);
3,486✔
3110

3111
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,486!
3112
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
6,972!
3113
  ENCODESQL();
8,390!
3114
  tEndEncode(&encoder);
3,486✔
3115

3116
_exit:
3,486✔
3117
  if (code) {
3,486!
3118
    tlen = code;
×
3119
  } else {
3120
    tlen = encoder.pos;
3,486✔
3121
  }
3122
  tEncoderClear(&encoder);
3,486✔
3123
  return tlen;
3,486✔
3124
}
3125

3126
int32_t tDeserializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
1,191✔
3127
  SDecoder decoder = {0};
1,191✔
3128
  int32_t  code = 0;
1,191✔
3129
  int32_t  lino;
3130
  tDecoderInit(&decoder, buf, bufLen);
1,191✔
3131

3132
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,191!
3133
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
2,382!
3134
  DECODESQL();
3,044!
3135
  tEndDecode(&decoder);
1,191✔
3136

3137
_exit:
1,191✔
3138
  tDecoderClear(&decoder);
1,191✔
3139
  return code;
1,191✔
3140
}
3141

3142
void tFreeSMCreateQnodeReq(SMCreateQnodeReq *pReq) { FREESQL(); }
1,863!
3143

3144
void tFreeSDDropQnodeReq(SDDropQnodeReq *pReq) { FREESQL(); }
90!
3145

3146
int32_t tSerializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
354✔
3147
  SEncoder encoder = {0};
354✔
3148
  int32_t  code = 0;
354✔
3149
  int32_t  lino;
3150
  int32_t  tlen;
3151
  tEncoderInit(&encoder, buf, bufLen);
354✔
3152

3153
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
354!
3154
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
708!
3155
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
708!
3156
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
708!
3157
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
708!
3158
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->unsafe));
708!
3159
  ENCODESQL();
1,062!
3160
  tEndEncode(&encoder);
354✔
3161

3162
_exit:
354✔
3163
  if (code) {
354!
3164
    tlen = code;
×
3165
  } else {
3166
    tlen = encoder.pos;
354✔
3167
  }
3168
  tEncoderClear(&encoder);
354✔
3169
  return tlen;
354✔
3170
}
3171

3172
int32_t tDeserializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
103✔
3173
  SDecoder decoder = {0};
103✔
3174
  int32_t  code = 0;
103✔
3175
  int32_t  lino;
3176
  tDecoderInit(&decoder, buf, bufLen);
103✔
3177

3178
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
103!
3179
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
206!
3180
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
103!
3181
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
206!
3182
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
206!
3183
  if (!tDecodeIsEnd(&decoder)) {
103!
3184
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->unsafe));
206!
3185
  } else {
3186
    pReq->unsafe = false;
×
3187
  }
3188

3189
  DECODESQL();
309!
3190
  tEndDecode(&decoder);
103✔
3191

3192
_exit:
103✔
3193
  tDecoderClear(&decoder);
103✔
3194
  return code;
103✔
3195
}
3196

3197
void tFreeSDropDnodeReq(SDropDnodeReq *pReq) { FREESQL(); }
280!
3198

3199
int32_t tSerializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
144✔
3200
  SEncoder encoder = {0};
144✔
3201
  int32_t  code = 0;
144✔
3202
  int32_t  lino;
3203
  int32_t  tlen;
3204
  tEncoderInit(&encoder, buf, bufLen);
144✔
3205

3206
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
144!
3207
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
288!
3208
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->restoreType));
288!
3209
  ENCODESQL();
432!
3210
  tEndEncode(&encoder);
144✔
3211

3212
_exit:
144✔
3213
  if (code) {
144!
3214
    tlen = code;
×
3215
  } else {
3216
    tlen = encoder.pos;
144✔
3217
  }
3218
  tEncoderClear(&encoder);
144✔
3219
  return tlen;
144✔
3220
}
3221

3222
int32_t tDeserializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
40✔
3223
  SDecoder decoder = {0};
40✔
3224
  int32_t  code = 0;
40✔
3225
  int32_t  lino;
3226
  tDecoderInit(&decoder, buf, bufLen);
40✔
3227

3228
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
40!
3229
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
80!
3230
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->restoreType));
80!
3231
  DECODESQL();
120!
3232
  tEndDecode(&decoder);
40✔
3233

3234
_exit:
40✔
3235
  tDecoderClear(&decoder);
40✔
3236
  return code;
40✔
3237
}
3238

3239
void tFreeSRestoreDnodeReq(SRestoreDnodeReq *pReq) { FREESQL(); }
112!
3240

3241
int32_t tSerializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
634✔
3242
  SEncoder encoder = {0};
634✔
3243
  int32_t  code = 0;
634✔
3244
  int32_t  lino;
3245
  int32_t  tlen;
3246
  tEncoderInit(&encoder, buf, bufLen);
634✔
3247

3248
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
634!
3249
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
1,268!
3250
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
1,268!
3251
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
1,268!
3252
  ENCODESQL();
1,902!
3253
  tEndEncode(&encoder);
634✔
3254

3255
_exit:
634✔
3256
  if (code) {
634!
3257
    tlen = code;
×
3258
  } else {
3259
    tlen = encoder.pos;
634✔
3260
  }
3261
  tEncoderClear(&encoder);
634✔
3262
  return tlen;
634✔
3263
}
3264

3265
int32_t tDeserializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
1,163✔
3266
  SDecoder decoder = {0};
1,163✔
3267
  int32_t  code = 0;
1,163✔
3268
  int32_t  lino;
3269
  tDecoderInit(&decoder, buf, bufLen);
1,163✔
3270

3271
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,163!
3272
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
2,326!
3273
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
1,163!
3274
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
1,163!
3275
  DECODESQL();
3,489!
3276
  tEndDecode(&decoder);
1,163✔
3277

3278
_exit:
1,163✔
3279
  tDecoderClear(&decoder);
1,163✔
3280
  return code;
1,163✔
3281
}
3282

3283
void tFreeSMCfgDnodeReq(SMCfgDnodeReq *pReq) { FREESQL(); }
1,482!
3284

3285
int32_t tSerializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
2,818✔
3286
  SEncoder encoder = {0};
2,818✔
3287
  int32_t  code = 0;
2,818✔
3288
  int32_t  lino;
3289
  int32_t  tlen;
3290
  tEncoderInit(&encoder, buf, bufLen);
2,818✔
3291

3292
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,818!
3293
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->version));
5,636!
3294
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
5,636!
3295
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
5,636!
3296
  tEndEncode(&encoder);
2,818✔
3297

3298
_exit:
2,818✔
3299
  if (code) {
2,818!
3300
    tlen = code;
×
3301
  } else {
3302
    tlen = encoder.pos;
2,818✔
3303
  }
3304
  tEncoderClear(&encoder);
2,818✔
3305
  return tlen;
2,818✔
3306
}
3307

3308
int32_t tDeserializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
1,409✔
3309
  SDecoder decoder = {0};
1,409✔
3310
  int32_t  code = 0;
1,409✔
3311
  int32_t  lino;
3312
  tDecoderInit(&decoder, buf, bufLen);
1,409✔
3313

3314
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,409!
3315
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->version));
2,818!
3316
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
1,409!
3317
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
1,409!
3318
  tEndDecode(&decoder);
1,409✔
3319

3320
_exit:
1,409✔
3321
  tDecoderClear(&decoder);
1,409✔
3322
  return code;
1,409✔
3323
}
3324

3325
int32_t tSerializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
4✔
3326
  SEncoder encoder = {0};
4✔
3327
  int32_t  code = 0;
4✔
3328
  int32_t  lino;
3329
  int32_t  tlen;
3330
  tEncoderInit(&encoder, buf, bufLen);
4✔
3331

3332
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3333
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
8!
3334
  if (pReq->urlLen > 0) {
4!
3335
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
8!
3336
  }
3337
  ENCODESQL();
12!
3338
  tEndEncode(&encoder);
4✔
3339

3340
_exit:
4✔
3341
  if (code) {
4!
3342
    tlen = code;
×
3343
  } else {
3344
    tlen = encoder.pos;
4✔
3345
  }
3346
  tEncoderClear(&encoder);
4✔
3347
  return tlen;
4✔
3348
}
3349

3350
int32_t tDeserializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
2✔
3351
  SDecoder decoder = {0};
2✔
3352
  int32_t  code = 0;
2✔
3353
  int32_t  lino;
3354

3355
  tDecoderInit(&decoder, buf, bufLen);
2✔
3356

3357
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
3358
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
4!
3359
  if (pReq->urlLen > 0) {
2!
3360
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
4!
3361
  }
3362

3363
  DECODESQL();
6!
3364
  tEndDecode(&decoder);
2✔
3365

3366
_exit:
2✔
3367
  tDecoderClear(&decoder);
2✔
3368
  return code;
2✔
3369
}
3370

3371
void tFreeSMCreateAnodeReq(SMCreateAnodeReq *pReq) {
4✔
3372
  taosMemoryFreeClear(pReq->url);
4!
3373
  FREESQL();
4!
3374
}
4✔
3375

3376
int32_t tSerializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
4✔
3377
  SEncoder encoder = {0};
4✔
3378
  int32_t  code = 0;
4✔
3379
  int32_t  lino;
3380
  int32_t  tlen;
3381
  tEncoderInit(&encoder, buf, bufLen);
4✔
3382

3383
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3384
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->anodeId));
8!
3385
  ENCODESQL();
12!
3386
  tEndEncode(&encoder);
4✔
3387

3388
_exit:
4✔
3389
  if (code) {
4!
3390
    tlen = code;
×
3391
  } else {
3392
    tlen = encoder.pos;
4✔
3393
  }
3394
  tEncoderClear(&encoder);
4✔
3395
  return tlen;
4✔
3396
}
3397

3398
int32_t tDeserializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
2✔
3399
  SDecoder decoder = {0};
2✔
3400
  int32_t  code = 0;
2✔
3401
  int32_t  lino;
3402

3403
  tDecoderInit(&decoder, buf, bufLen);
2✔
3404

3405
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
3406
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->anodeId));
4!
3407
  DECODESQL();
6!
3408
  tEndDecode(&decoder);
2✔
3409

3410
_exit:
2✔
3411
  tDecoderClear(&decoder);
2✔
3412
  return code;
2✔
3413
}
3414

3415
void tFreeSMDropAnodeReq(SMDropAnodeReq *pReq) { FREESQL(); }
4!
3416

3417
int32_t tSerializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3418
  return tSerializeSMDropAnodeReq(buf, bufLen, pReq);
×
3419
}
3420

3421
int32_t tDeserializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3422
  return tDeserializeSMDropAnodeReq(buf, bufLen, pReq);
×
3423
}
3424

3425
void tFreeSMUpdateAnodeReq(SMUpdateAnodeReq *pReq) { tFreeSMDropAnodeReq(pReq); }
×
3426

3427
int32_t tSerializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
1,128✔
3428
  SEncoder encoder = {0};
1,128✔
3429
  int32_t  code = 0;
1,128✔
3430
  int32_t  lino;
3431
  int32_t  tlen;
3432
  tEncoderInit(&encoder, buf, bufLen);
1,128✔
3433

3434
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,128!
3435
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
2,256!
3436
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
2,256!
3437
  ENCODESQL();
3,384!
3438
  tEndEncode(&encoder);
1,128✔
3439

3440
_exit:
1,128✔
3441
  if (code) {
1,128!
3442
    tlen = code;
×
3443
  } else {
3444
    tlen = encoder.pos;
1,128✔
3445
  }
3446
  tEncoderClear(&encoder);
1,128✔
3447
  return tlen;
1,128✔
3448
}
3449

3450
int32_t tDeserializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
474✔
3451
  SDecoder decoder = {0};
474✔
3452
  int32_t  code = 0;
474✔
3453
  int32_t  lino;
3454
  tDecoderInit(&decoder, buf, bufLen);
474✔
3455

3456
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
474!
3457
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
474!
3458
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
948!
3459
  DECODESQL();
1,422!
3460
  tEndDecode(&decoder);
474✔
3461

3462
_exit:
474✔
3463
  tDecoderClear(&decoder);
474✔
3464
  return code;
474✔
3465
}
3466

3467
void tFreeSCreateDnodeReq(SCreateDnodeReq *pReq) { FREESQL(); }
1,038!
3468

3469
int32_t tSerializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
170✔
3470
  SEncoder encoder = {0};
170✔
3471
  int32_t  code = 0;
170✔
3472
  int32_t  lino;
3473
  int32_t  tlen;
3474
  tEncoderInit(&encoder, buf, bufLen);
170✔
3475

3476
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
170!
3477
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
340!
3478
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
340!
3479
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->funcType));
340!
3480
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->scriptType));
340!
3481
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->outputType));
340!
3482
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->outputLen));
340!
3483
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->bufSize));
340!
3484
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->codeLen));
340!
3485
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->signature));
340!
3486

3487
  if (pReq->pCode != NULL) {
170✔
3488
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pCode, pReq->codeLen));
308!
3489
  }
3490

3491
  int32_t commentSize = 0;
170✔
3492
  if (pReq->pComment != NULL) {
170✔
3493
    commentSize = strlen(pReq->pComment) + 1;
72✔
3494
  }
3495
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, commentSize));
170!
3496
  if (pReq->pComment != NULL) {
170✔
3497
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
144!
3498
  }
3499

3500
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
340!
3501

3502
  tEndEncode(&encoder);
170✔
3503

3504
_exit:
170✔
3505
  if (code) {
170!
3506
    tlen = code;
×
3507
  } else {
3508
    tlen = encoder.pos;
170✔
3509
  }
3510
  tEncoderClear(&encoder);
170✔
3511
  return tlen;
170✔
3512
}
3513

3514
int32_t tDeserializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
69✔
3515
  SDecoder decoder = {0};
69✔
3516
  int32_t  code = 0;
69✔
3517
  int32_t  lino;
3518
  tDecoderInit(&decoder, buf, bufLen);
69✔
3519

3520
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
69!
3521
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
69!
3522
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
138!
3523
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->funcType));
138!
3524
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->scriptType));
138!
3525
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->outputType));
138!
3526
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->outputLen));
138!
3527
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->bufSize));
138!
3528
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->codeLen));
138!
3529
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->signature));
138!
3530

3531
  if (pReq->codeLen > 0) {
69✔
3532
    pReq->pCode = taosMemoryCalloc(1, pReq->codeLen);
61!
3533
    if (pReq->pCode == NULL) {
61!
3534
      TAOS_CHECK_EXIT(terrno);
×
3535
    }
3536
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCode));
61!
3537
  }
3538

3539
  int32_t commentSize = 0;
69✔
3540
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &commentSize));
69!
3541
  if (commentSize > 0) {
69✔
3542
    pReq->pComment = taosMemoryCalloc(1, commentSize);
36!
3543
    if (pReq->pComment == NULL) {
36!
3544
      TAOS_CHECK_EXIT(terrno);
×
3545
    }
3546
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
36!
3547
  }
3548

3549
  if (!tDecodeIsEnd(&decoder)) {
69!
3550
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
138!
3551
  } else {
3552
    pReq->orReplace = false;
×
3553
  }
3554

3555
  tEndDecode(&decoder);
69✔
3556

3557
_exit:
69✔
3558
  tDecoderClear(&decoder);
69✔
3559
  return code;
69✔
3560
}
3561

3562
void tFreeSCreateFuncReq(SCreateFuncReq *pReq) {
154✔
3563
  taosMemoryFree(pReq->pCode);
154!
3564
  taosMemoryFree(pReq->pComment);
154!
3565
}
154✔
3566

3567
int32_t tSerializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
38✔
3568
  SEncoder encoder = {0};
38✔
3569
  int32_t  code = 0;
38✔
3570
  int32_t  lino;
3571
  int32_t  tlen;
3572
  tEncoderInit(&encoder, buf, bufLen);
38✔
3573

3574
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
38!
3575
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
76!
3576
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
76!
3577
  tEndEncode(&encoder);
38✔
3578

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

3589
int32_t tDeserializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
19✔
3590
  SDecoder decoder = {0};
19✔
3591
  int32_t  code = 0;
19✔
3592
  int32_t  lino;
3593
  tDecoderInit(&decoder, buf, bufLen);
19✔
3594

3595
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
19!
3596
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
19!
3597
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
38!
3598
  tEndDecode(&decoder);
19✔
3599

3600
_exit:
19✔
3601
  tDecoderClear(&decoder);
19✔
3602
  return code;
19✔
3603
}
3604

3605
int32_t tSerializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
532✔
3606
  SEncoder encoder = {0};
532✔
3607
  int32_t  code = 0;
532✔
3608
  int32_t  lino;
3609
  int32_t  tlen;
3610
  tEncoderInit(&encoder, buf, bufLen);
532✔
3611

3612
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
532!
3613
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
1,064!
3614
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreCodeComment));
1,064!
3615

3616
  if (pReq->numOfFuncs != (int32_t)taosArrayGetSize(pReq->pFuncNames)) {
532!
3617
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3618
  }
3619
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
9,264✔
3620
    char *fname = taosArrayGet(pReq->pFuncNames, i);
8,732✔
3621
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, fname));
8,732!
3622
  }
3623

3624
  tEndEncode(&encoder);
532✔
3625

3626
_exit:
532✔
3627
  if (code) {
532!
3628
    tlen = code;
×
3629
  } else {
3630
    tlen = encoder.pos;
532✔
3631
  }
3632
  tEncoderClear(&encoder);
532✔
3633
  return tlen;
532✔
3634
}
3635

3636
int32_t tDeserializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
262✔
3637
  SDecoder decoder = {0};
262✔
3638
  int32_t  code = 0;
262✔
3639
  int32_t  lino;
3640
  tDecoderInit(&decoder, buf, bufLen);
262✔
3641

3642
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
262!
3643
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
524!
3644
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->ignoreCodeComment));
524!
3645

3646
  pReq->pFuncNames = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN);
262✔
3647
  if (pReq->pFuncNames == NULL) {
262!
3648
    TAOS_CHECK_EXIT(terrno);
×
3649
  }
3650

3651
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
4,624✔
3652
    char fname[TSDB_FUNC_NAME_LEN] = {0};
4,362✔
3653
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fname));
4,362!
3654
    if (taosArrayPush(pReq->pFuncNames, fname) == NULL) {
8,724!
3655
      TAOS_CHECK_EXIT(terrno);
×
3656
    }
3657
  }
3658
  tEndDecode(&decoder);
262✔
3659

3660
_exit:
262✔
3661
  tDecoderClear(&decoder);
262✔
3662
  return code;
262✔
3663
}
3664

3665
void tFreeSRetrieveFuncReq(SRetrieveFuncReq *pReq) { taosArrayDestroy(pReq->pFuncNames); }
294✔
3666

3667
int32_t tSerializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
480✔
3668
  SEncoder encoder = {0};
480✔
3669
  int32_t  code = 0;
480✔
3670
  int32_t  lino;
3671
  int32_t  tlen;
3672
  tEncoderInit(&encoder, buf, bufLen);
480✔
3673

3674
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
480!
3675
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfFuncs));
960!
3676

3677
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncInfos)) {
480!
3678
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3679
  }
3680
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
968✔
3681
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
488✔
3682

3683
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->name));
976!
3684
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->funcType));
976!
3685
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->scriptType));
976!
3686
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->outputType));
976!
3687
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->outputLen));
976!
3688
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->bufSize));
976!
3689
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pInfo->signature));
976!
3690
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->codeSize));
976!
3691
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->commentSize));
976!
3692
    if (pInfo->codeSize) {
488✔
3693
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pInfo->pCode, pInfo->codeSize));
616!
3694
    }
3695
    if (pInfo->commentSize) {
488✔
3696
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->pComment));
80!
3697
    }
3698
  }
3699

3700
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncExtraInfos)) {
480!
3701
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3702
  }
3703
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
968✔
3704
    SFuncExtraInfo *extraInfo = taosArrayGet(pRsp->pFuncExtraInfos, i);
488✔
3705
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, extraInfo->funcVersion));
976!
3706
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, extraInfo->funcCreatedTime));
976!
3707
  }
3708

3709
  tEndEncode(&encoder);
480✔
3710

3711
_exit:
480✔
3712
  if (code) {
480!
3713
    tlen = code;
×
3714
  } else {
3715
    tlen = encoder.pos;
480✔
3716
  }
3717
  tEncoderClear(&encoder);
480✔
3718
  return tlen;
480✔
3719
}
3720

3721
int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
240✔
3722
  SDecoder decoder = {0};
240✔
3723
  int32_t  code = 0;
240✔
3724
  int32_t  lino;
3725
  tDecoderInit(&decoder, buf, bufLen);
240✔
3726

3727
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
240!
3728
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfFuncs));
480!
3729

3730
  pRsp->pFuncInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncInfo));
240✔
3731
  if (pRsp->pFuncInfos == NULL) {
240!
3732
    TAOS_CHECK_EXIT(terrno);
×
3733
  }
3734

3735
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
484✔
3736
    SFuncInfo fInfo = {0};
244✔
3737
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.name));
244!
3738
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.funcType));
244!
3739
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.scriptType));
244!
3740
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.outputType));
244!
3741
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.outputLen));
244!
3742
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.bufSize));
244!
3743
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &fInfo.signature));
244!
3744
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.codeSize));
244!
3745
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.commentSize));
244!
3746
    if (fInfo.codeSize) {
244✔
3747
      fInfo.pCode = taosMemoryCalloc(1, fInfo.codeSize);
154!
3748
      if (fInfo.pCode == NULL) {
154!
3749
        TAOS_CHECK_EXIT(terrno);
×
3750
      }
3751
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pCode));
154!
3752
    }
3753
    if (fInfo.commentSize) {
244✔
3754
      fInfo.pComment = taosMemoryCalloc(1, fInfo.commentSize);
20!
3755
      if (fInfo.pComment == NULL) {
20!
3756
        TAOS_CHECK_EXIT(terrno);
×
3757
      }
3758
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pComment));
20!
3759
    }
3760

3761
    if (taosArrayPush(pRsp->pFuncInfos, &fInfo) == NULL) {
488!
3762
      TAOS_CHECK_EXIT(terrno);
×
3763
    }
3764
  }
3765

3766
  pRsp->pFuncExtraInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncExtraInfo));
240✔
3767
  if (pRsp->pFuncExtraInfos == NULL) {
240!
3768
    TAOS_CHECK_EXIT(terrno);
×
3769
  }
3770
  if (tDecodeIsEnd(&decoder)) {
240!
3771
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
×
3772
      SFuncExtraInfo extraInfo = {0};
×
3773
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
×
3774
        TAOS_CHECK_EXIT(terrno);
×
3775
      }
3776
    }
3777
  } else {
3778
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
484✔
3779
      SFuncExtraInfo extraInfo = {0};
244✔
3780
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &extraInfo.funcVersion));
244!
3781
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &extraInfo.funcCreatedTime));
244!
3782
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
488!
3783
        TAOS_CHECK_EXIT(terrno);
×
3784
      }
3785
    }
3786
  }
3787
  tEndDecode(&decoder);
240✔
3788

3789
_exit:
240✔
3790
  tDecoderClear(&decoder);
240✔
3791
  return code;
240✔
3792
}
3793

3794
void tFreeSFuncInfo(SFuncInfo *pInfo) {
636✔
3795
  if (NULL == pInfo) {
636!
3796
    return;
×
3797
  }
3798

3799
  taosMemoryFree(pInfo->pCode);
636!
3800
  taosMemoryFree(pInfo->pComment);
636!
3801
}
3802

3803
void tFreeSRetrieveFuncRsp(SRetrieveFuncRsp *pRsp) {
282✔
3804
  int32_t size = taosArrayGetSize(pRsp->pFuncInfos);
282✔
3805
  for (int32_t i = 0; i < size; ++i) {
550✔
3806
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
268✔
3807
    tFreeSFuncInfo(pInfo);
268✔
3808
  }
3809
  taosArrayDestroy(pRsp->pFuncInfos);
282✔
3810
  taosArrayDestroy(pRsp->pFuncExtraInfos);
282✔
3811
}
282✔
3812

3813
int32_t tSerializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
340✔
3814
  int32_t code = 0;
340✔
3815
  int32_t lino;
3816
  int32_t headLen = sizeof(SMsgHead);
340✔
3817
  if (buf != NULL) {
340✔
3818
    buf = (char *)buf + headLen;
170✔
3819
    bufLen -= headLen;
170✔
3820
  }
3821

3822
  SEncoder encoder = {0};
340✔
3823
  tEncoderInit(&encoder, buf, bufLen);
340✔
3824

3825
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
340!
3826
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
680!
3827
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
680!
3828
  tEndEncode(&encoder);
340✔
3829

3830
_exit:
340✔
3831
  if (code) {
340!
3832
    tEncoderClear(&encoder);
×
3833
    return code;
×
3834
  } else {
3835
    int32_t tlen = encoder.pos;
340✔
3836
    tEncoderClear(&encoder);
340✔
3837

3838
    if (buf != NULL) {
340✔
3839
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
170✔
3840
      pHead->vgId = htonl(pReq->header.vgId);
170✔
3841
      pHead->contLen = htonl(tlen + headLen);
170✔
3842
    }
3843

3844
    return tlen + headLen;
340✔
3845
  }
3846
}
3847

3848
int32_t tDeserializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
117✔
3849
  int32_t headLen = sizeof(SMsgHead);
117✔
3850

3851
  int32_t   code = 0;
117✔
3852
  int32_t   lino;
3853
  SMsgHead *pHead = buf;
117✔
3854
  pHead->vgId = pReq->header.vgId;
117✔
3855
  pHead->contLen = pReq->header.contLen;
117✔
3856

3857
  SDecoder decoder = {0};
117✔
3858
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
117✔
3859

3860
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
117!
3861
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
117!
3862
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
117!
3863

3864
  tEndDecode(&decoder);
117✔
3865
_exit:
117✔
3866
  tDecoderClear(&decoder);
117✔
3867
  return code;
117✔
3868
}
3869

3870
int32_t tSerializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
242✔
3871
  SEncoder encoder = {0};
242✔
3872
  int32_t  code = 0;
242✔
3873
  int32_t  lino;
3874
  int32_t  tlen;
3875
  tEncoderInit(&encoder, buf, bufLen);
242✔
3876

3877
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
242!
3878
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
484!
3879
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->stbName));
484!
3880
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
484!
3881
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfTags));
484!
3882
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfColumns));
484!
3883
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->tableType));
484!
3884
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay1));
484!
3885
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay2));
484!
3886
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark1));
484!
3887
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark2));
484!
3888
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->ttl));
484!
3889

3890
  int32_t numOfFuncs = taosArrayGetSize(pRsp->pFuncs);
242✔
3891
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfFuncs));
242!
3892
  for (int32_t i = 0; i < numOfFuncs; ++i) {
242!
3893
    const char *pFunc = taosArrayGet(pRsp->pFuncs, i);
×
3894
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
×
3895
  }
3896

3897
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->commentLen));
484!
3898
  if (pRsp->commentLen > 0) {
242!
3899
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->pComment));
×
3900
  }
3901

3902
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
2,642✔
3903
    SSchema *pSchema = &pRsp->pSchemas[i];
2,400✔
3904
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
2,400!
3905
  }
3906

3907
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->tagsLen));
484!
3908
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pRsp->pTags, pRsp->tagsLen));
484!
3909

3910
  if (useCompress(pRsp->tableType)) {
242✔
3911
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
1,776✔
3912
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
1,542✔
3913
      TAOS_CHECK_EXIT(tEncodeSSchemaExt(&encoder, pSchemaExt));
1,542!
3914
    }
3915
  }
3916

3917
  tEndEncode(&encoder);
242✔
3918

3919
_exit:
242✔
3920
  if (code) {
242!
3921
    tlen = code;
×
3922
  } else {
3923
    tlen = encoder.pos;
242✔
3924
  }
3925
  tEncoderClear(&encoder);
242✔
3926
  return tlen;
242✔
3927
}
3928

3929
int32_t tDeserializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
170✔
3930
  SDecoder decoder = {0};
170✔
3931
  int32_t  code = 0;
170✔
3932
  int32_t  lino;
3933
  tDecoderInit(&decoder, buf, bufLen);
170✔
3934

3935
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
170!
3936
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
170!
3937
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->stbName));
170!
3938
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
170!
3939
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfTags));
340!
3940
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfColumns));
340!
3941
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->tableType));
340!
3942
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay1));
340!
3943
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay2));
340!
3944
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark1));
340!
3945
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark2));
340!
3946
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->ttl));
340!
3947

3948
  int32_t numOfFuncs = 0;
170✔
3949
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFuncs));
170!
3950
  if (numOfFuncs > 0) {
170!
3951
    pRsp->pFuncs = taosArrayInit(numOfFuncs, TSDB_FUNC_NAME_LEN);
×
3952
    if (NULL == pRsp->pFuncs) {
×
3953
      TAOS_CHECK_EXIT(terrno);
×
3954
    }
3955
  }
3956
  for (int32_t i = 0; i < numOfFuncs; ++i) {
170!
3957
    char pFunc[TSDB_FUNC_NAME_LEN];
3958
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
×
3959
    if (taosArrayPush(pRsp->pFuncs, pFunc) == NULL) {
×
3960
      TAOS_CHECK_EXIT(terrno);
×
3961
    }
3962
  }
3963

3964
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->commentLen));
340!
3965
  if (pRsp->commentLen > 0) {
170!
3966
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pRsp->pComment));
×
3967
  } else {
3968
    pRsp->pComment = NULL;
170✔
3969
  }
3970

3971
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
170✔
3972
  pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
170!
3973
  if (pRsp->pSchemas == NULL) {
170!
3974
    TAOS_CHECK_EXIT(terrno);
×
3975
  }
3976

3977
  for (int32_t i = 0; i < totalCols; ++i) {
1,803✔
3978
    SSchema *pSchema = &pRsp->pSchemas[i];
1,633✔
3979
    TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
1,633!
3980
  }
3981

3982
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->tagsLen));
340!
3983
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pRsp->pTags, NULL));
340!
3984

3985
  if (!tDecodeIsEnd(&decoder)) {
170✔
3986
    if (useCompress(pRsp->tableType) && pRsp->numOfColumns > 0) {
166!
3987
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
166!
3988
      if (pRsp->pSchemaExt == NULL) {
166!
3989
        TAOS_CHECK_EXIT(terrno);
×
3990
      }
3991

3992
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
1,235✔
3993
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
1,069✔
3994
        TAOS_CHECK_EXIT(tDecodeSSchemaExt(&decoder, pSchemaExt));
1,069!
3995
      }
3996
    } else {
3997
      pRsp->pSchemaExt = NULL;
×
3998
    }
3999
  }
4000
  tEndDecode(&decoder);
170✔
4001

4002
_exit:
170✔
4003
  tDecoderClear(&decoder);
170✔
4004
  return code;
170✔
4005
}
4006

4007
void tFreeSTableCfgRsp(STableCfgRsp *pRsp) {
291✔
4008
  if (NULL == pRsp) {
291!
4009
    return;
×
4010
  }
4011

4012
  taosMemoryFreeClear(pRsp->pComment);
291!
4013
  taosMemoryFreeClear(pRsp->pSchemas);
291!
4014
  taosMemoryFreeClear(pRsp->pSchemaExt);
291!
4015
  taosMemoryFreeClear(pRsp->pTags);
291!
4016

4017
  taosArrayDestroy(pRsp->pFuncs);
291✔
4018
}
4019

4020
int32_t tSerializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
10,183✔
4021
  SEncoder encoder = {0};
10,183✔
4022
  int32_t  code = 0;
10,183✔
4023
  int32_t  lino;
4024
  int32_t  tlen;
4025

4026
  tEncoderInit(&encoder, buf, bufLen);
10,183✔
4027

4028
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10,184!
4029
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
20,366!
4030
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfVgroups));
20,366!
4031
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
20,366!
4032
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
20,366!
4033
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
20,366!
4034
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
20,366!
4035
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
20,366!
4036
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
20,366!
4037
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
20,366!
4038
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
20,366!
4039
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
20,366!
4040
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
20,366!
4041
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
20,366!
4042
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
20,366!
4043
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
20,366!
4044
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
20,366!
4045
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
20,366!
4046
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
20,366!
4047
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
20,366!
4048
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
20,366!
4049
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->schemaless));
20,366!
4050
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
20,366!
4051
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
20,366!
4052
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
20,366!
4053
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
20,366!
4054
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
20,366!
4055
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
20,366!
4056
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
20,366!
4057
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreExist));
20,366!
4058
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
20,366!
4059
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
10,309✔
4060
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
126✔
4061
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
252!
4062
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
252!
4063
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
252!
4064
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
252!
4065
  }
4066
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
20,366!
4067
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
20,366!
4068

4069
  ENCODESQL();
30,469!
4070

4071
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
20,366!
4072
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
20,366!
4073
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
20,366!
4074
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
20,366!
4075
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
20,366!
4076
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeListStr));
20,366!
4077

4078
  // auto-compact parameters
4079
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
20,366!
4080
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
20,366!
4081
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
20,366!
4082
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
20,366!
4083

4084
  tEndEncode(&encoder);
10,183✔
4085

4086
_exit:
10,184✔
4087
  if (code) {
10,184!
4088
    tlen = code;
×
4089
  } else {
4090
    tlen = encoder.pos;
10,184✔
4091
  }
4092
  tEncoderClear(&encoder);
10,184✔
4093
  return tlen;
10,184✔
4094
}
4095

4096
int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
4,832✔
4097
  SDecoder decoder = {0};
4,832✔
4098
  int32_t  code = 0;
4,832✔
4099
  int32_t  lino;
4100
  tDecoderInit(&decoder, buf, bufLen);
4,832✔
4101

4102
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,832!
4103
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4,832!
4104
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfVgroups));
9,664!
4105
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
9,664!
4106
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
9,664!
4107
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
9,664!
4108
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
9,664!
4109
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
9,664!
4110
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
9,664!
4111
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
9,664!
4112
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
9,664!
4113
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
9,664!
4114
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
9,664!
4115
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
9,664!
4116
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
9,664!
4117
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
9,664!
4118
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
9,664!
4119
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
9,664!
4120
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
9,664!
4121
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
9,664!
4122
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
9,664!
4123
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->schemaless));
9,664!
4124
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
9,664!
4125
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
9,664!
4126
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
9,664!
4127
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
9,664!
4128
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
9,664!
4129
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
9,664!
4130
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
9,664!
4131
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreExist));
9,664!
4132
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
9,664!
4133
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
4,832✔
4134
  if (pReq->pRetensions == NULL) {
4,832!
4135
    TAOS_CHECK_EXIT(terrno);
×
4136
  }
4137

4138
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
4,871✔
4139
    SRetention rentension = {0};
39✔
4140
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
39!
4141
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
39!
4142
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
39!
4143
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
39!
4144
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
78!
4145
      TAOS_CHECK_EXIT(terrno);
×
4146
    }
4147
  }
4148

4149
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
9,664!
4150

4151
  if (!tDecodeIsEnd(&decoder)) {
4,832!
4152
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
9,664!
4153
  } else {
4154
    pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
4155
  }
4156

4157
  DECODESQL();
14,456!
4158

4159
  if (!tDecodeIsEnd(&decoder)) {
4,832!
4160
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
9,664!
4161
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
9,664!
4162
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
9,664!
4163
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
9,664!
4164
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
9,664!
4165
  } else {
4166
    pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
4167
    pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
4168
    pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
4169
    pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
4170
    pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
4171
  }
4172

4173
  if (!tDecodeIsEnd(&decoder)) {
4,832!
4174
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeListStr));
4,832!
4175
  }
4176

4177
  if (!tDecodeIsEnd(&decoder)) {
4,832!
4178
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
9,664!
4179
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
9,664!
4180
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
9,664!
4181
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
9,664!
4182
  } else {
4183
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4184
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4185
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4186
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4187
  }
4188

4189
  tEndDecode(&decoder);
4,832✔
4190

4191
_exit:
4,832✔
4192
  tDecoderClear(&decoder);
4,832✔
4193
  return code;
4,832✔
4194
}
4195

4196
void tFreeSCreateDbReq(SCreateDbReq *pReq) {
10,042✔
4197
  taosArrayDestroy(pReq->pRetensions);
10,042✔
4198
  pReq->pRetensions = NULL;
10,042✔
4199
  FREESQL();
10,042!
4200
}
10,042✔
4201

4202
int32_t tSerializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
1,314✔
4203
  SEncoder encoder = {0};
1,314✔
4204
  int32_t  code = 0;
1,314✔
4205
  int32_t  lino;
4206
  int32_t  tlen;
4207

4208
  tEncoderInit(&encoder, buf, bufLen);
1,314✔
4209

4210
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,314!
4211
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
2,628!
4212
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
2,628!
4213
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
2,628!
4214
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
2,628!
4215
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
2,628!
4216
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
2,628!
4217
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
2,628!
4218
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
2,628!
4219
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
2,628!
4220
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
2,628!
4221
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
2,628!
4222
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
2,628!
4223
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
2,628!
4224
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
2,628!
4225
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
2,628!
4226

4227
  // 1st modification
4228
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
2,628!
4229
  // 2nd modification
4230
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
2,628!
4231
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
2,628!
4232
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
2,628!
4233

4234
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
2,628!
4235
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
2,628!
4236

4237
  ENCODESQL();
3,942!
4238
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
2,628!
4239
  // auto compact config
4240
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
2,628!
4241
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
2,628!
4242
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
2,628!
4243
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
2,628!
4244
  tEndEncode(&encoder);
1,314✔
4245

4246
_exit:
1,314✔
4247
  if (code) {
1,314!
4248
    tlen = code;
×
4249
  } else {
4250
    tlen = encoder.pos;
1,314✔
4251
  }
4252
  tEncoderClear(&encoder);
1,314✔
4253
  return tlen;
1,314✔
4254
}
4255

4256
int32_t tDeserializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
499✔
4257
  SDecoder decoder = {0};
499✔
4258
  int32_t  code = 0;
499✔
4259
  int32_t  lino;
4260
  tDecoderInit(&decoder, buf, bufLen);
499✔
4261

4262
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
499!
4263
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
499!
4264
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
998!
4265
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
998!
4266
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
998!
4267
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
998!
4268
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
998!
4269
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
998!
4270
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
998!
4271
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
998!
4272
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
998!
4273
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
998!
4274
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
998!
4275
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
998!
4276
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
998!
4277
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
998!
4278

4279
  // 1st modification
4280
  if (!tDecodeIsEnd(&decoder)) {
499!
4281
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
998!
4282
  } else {
4283
    pReq->minRows = -1;
×
4284
  }
4285

4286
  // 2nd modification
4287
  if (!tDecodeIsEnd(&decoder)) {
499!
4288
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
998!
4289
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
998!
4290
  } else {
4291
    pReq->walRetentionPeriod = -1;
×
4292
    pReq->walRetentionSize = -1;
×
4293
  }
4294
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
499✔
4295
  if (!tDecodeIsEnd(&decoder)) {
499!
4296
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
998!
4297
  }
4298

4299
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
499✔
4300
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
499✔
4301
  if (!tDecodeIsEnd(&decoder)) {
499!
4302
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
998!
4303
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
998!
4304
  }
4305

4306
  DECODESQL();
1,497!
4307
  pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
499✔
4308
  if (!tDecodeIsEnd(&decoder)) {
499!
4309
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
998!
4310
  }
4311

4312
  // auto compact config
4313
  if (!tDecodeIsEnd(&decoder)) {
499!
4314
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
998!
4315
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
998!
4316
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
998!
4317
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
998!
4318
  } else {
4319
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4320
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4321
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4322
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4323
  }
4324
  tEndDecode(&decoder);
499✔
4325

4326
_exit:
499✔
4327
  tDecoderClear(&decoder);
499✔
4328
  return code;
499✔
4329
}
4330

4331
void tFreeSAlterDbReq(SAlterDbReq *pReq) { FREESQL(); }
1,156!
4332

4333
int32_t tSerializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
7,408✔
4334
  SEncoder encoder = {0};
7,408✔
4335
  int32_t  code = 0;
7,408✔
4336
  int32_t  lino;
4337
  int32_t  tlen;
4338
  tEncoderInit(&encoder, buf, bufLen);
7,408✔
4339

4340
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,408!
4341
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
14,816!
4342
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreNotExists));
14,816!
4343
  ENCODESQL();
22,160!
4344
  tEndEncode(&encoder);
7,408✔
4345

4346
_exit:
7,408✔
4347
  if (code) {
7,408!
4348
    tlen = code;
×
4349
  } else {
4350
    tlen = encoder.pos;
7,408✔
4351
  }
4352
  tEncoderClear(&encoder);
7,408✔
4353
  return tlen;
7,408✔
4354
}
4355

4356
int32_t tDeserializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
4,011✔
4357
  SDecoder decoder = {0};
4,011✔
4358
  int32_t  code = 0;
4,011✔
4359
  int32_t  lino;
4360
  tDecoderInit(&decoder, buf, bufLen);
4,011✔
4361

4362
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,011!
4363
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4,011!
4364
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreNotExists));
8,022!
4365
  DECODESQL();
12,001!
4366
  tEndDecode(&decoder);
4,011✔
4367

4368
_exit:
4,011✔
4369
  tDecoderClear(&decoder);
4,011✔
4370
  return code;
4,011✔
4371
}
4372

4373
void tFreeSDropDbReq(SDropDbReq *pReq) { FREESQL(); }
7,683!
4374

4375
int32_t tSerializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
7,876✔
4376
  SEncoder encoder = {0};
7,876✔
4377
  int32_t  code = 0;
7,876✔
4378
  int32_t  lino;
4379
  int32_t  tlen;
4380
  tEncoderInit(&encoder, buf, bufLen);
7,876✔
4381

4382
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,876!
4383
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->db));
15,752!
4384
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->uid));
15,752!
4385
  tEndEncode(&encoder);
7,876✔
4386

4387
_exit:
7,876✔
4388
  if (code) {
7,876!
4389
    tlen = code;
×
4390
  } else {
4391
    tlen = encoder.pos;
7,876✔
4392
  }
4393
  tEncoderClear(&encoder);
7,876✔
4394
  return tlen;
7,876✔
4395
}
4396

4397
int32_t tDeserializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
3,597✔
4398
  SDecoder decoder = {0};
3,597✔
4399
  int32_t  code = 0;
3,597✔
4400
  int32_t  lino;
4401
  tDecoderInit(&decoder, buf, bufLen);
3,597✔
4402

4403
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,597!
4404
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->db));
3,597!
4405
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->uid));
7,194!
4406
  tEndDecode(&decoder);
3,597✔
4407

4408
_exit:
3,597✔
4409
  tDecoderClear(&decoder);
3,597✔
4410
  return code;
3,597✔
4411
}
4412

4413
int32_t tSerializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
144,133✔
4414
  SEncoder encoder = {0};
144,133✔
4415
  int32_t  code = 0;
144,133✔
4416
  int32_t  lino;
4417
  int32_t  tlen;
4418
  tEncoderInit(&encoder, buf, bufLen);
144,133✔
4419

4420
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
144,134!
4421
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
288,270!
4422
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbId));
288,270!
4423
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
288,270!
4424
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTable));
288,270!
4425
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stateTs));
288,270!
4426
  tEndEncode(&encoder);
144,135✔
4427

4428
_exit:
144,134✔
4429
  if (code) {
144,134!
4430
    tlen = code;
×
4431
  } else {
4432
    tlen = encoder.pos;
144,134✔
4433
  }
4434
  tEncoderClear(&encoder);
144,134✔
4435
  return tlen;
144,136✔
4436
}
4437

4438
int32_t tDeserializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
2,838,654✔
4439
  SDecoder decoder = {0};
2,838,654✔
4440
  int32_t  code = 0;
2,838,654✔
4441
  int32_t  lino;
4442
  tDecoderInit(&decoder, buf, bufLen);
2,838,654✔
4443

4444
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,838,654!
4445
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
2,838,664!
4446
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbId));
5,677,275!
4447
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
5,677,278!
4448
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTable));
5,677,277!
4449
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stateTs));
5,677,264!
4450
  tEndDecode(&decoder);
2,838,626✔
4451

4452
_exit:
2,838,625✔
4453
  tDecoderClear(&decoder);
2,838,625✔
4454
  return code;
2,838,662✔
4455
}
4456

4457
int32_t tSerializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
18,994✔
4458
  SEncoder encoder = {0};
18,994✔
4459
  int32_t  code = 0;
18,994✔
4460
  int32_t  lino;
4461
  int32_t  tlen;
4462

4463
  tEncoderInit(&encoder, buf, bufLen);
18,994✔
4464

4465
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
18,994!
4466
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
37,988!
4467
  tEndEncode(&encoder);
18,994✔
4468

4469
_exit:
18,994✔
4470
  if (code) {
18,994!
4471
    tlen = code;
×
4472
  } else {
4473
    tlen = encoder.pos;
18,994✔
4474
  }
4475
  tEncoderClear(&encoder);
18,994✔
4476
  return tlen;
18,994✔
4477
}
4478

4479
int32_t tDeserializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
9,297✔
4480
  SDecoder decoder = {0};
9,297✔
4481
  int32_t  code = 0;
9,297✔
4482
  int32_t  lino;
4483
  tDecoderInit(&decoder, buf, bufLen);
9,297✔
4484

4485
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,297!
4486
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->rowNum));
18,594!
4487
  tEndDecode(&decoder);
9,297✔
4488

4489
_exit:
9,297✔
4490
  tDecoderClear(&decoder);
9,297✔
4491
  return code;
9,297✔
4492
}
4493

4494
int32_t tSerializeSDnodeListReq(void *buf, int32_t bufLen, SDnodeListReq *pReq) {
696✔
4495
  SEncoder encoder = {0};
696✔
4496
  int32_t  code = 0;
696✔
4497
  int32_t  lino;
4498
  int32_t  tlen;
4499
  tEncoderInit(&encoder, buf, bufLen);
696✔
4500

4501
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
696!
4502
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
1,392!
4503
  tEndEncode(&encoder);
696✔
4504

4505
_exit:
696✔
4506
  if (code) {
696!
4507
    tlen = code;
×
4508
  } else {
4509
    tlen = encoder.pos;
696✔
4510
  }
4511
  tEncoderClear(&encoder);
696✔
4512
  return tlen;
696✔
4513
}
4514

4515
int32_t tSerializeSServerVerReq(void *buf, int32_t bufLen, SServerVerReq *pReq) {
8✔
4516
  SEncoder encoder = {0};
8✔
4517
  int32_t  code = 0;
8✔
4518
  int32_t  lino;
4519
  int32_t  tlen;
4520
  tEncoderInit(&encoder, buf, bufLen);
8✔
4521

4522
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
4523
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
16!
4524
  tEndEncode(&encoder);
8✔
4525

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

4536
int32_t tSerializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
8✔
4537
  SEncoder encoder = {0};
8✔
4538
  int32_t  code = 0;
8✔
4539
  int32_t  lino;
4540
  int32_t  tlen;
4541
  tEncoderInit(&encoder, buf, bufLen);
8✔
4542

4543
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
4544
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->ver));
16!
4545
  tEndEncode(&encoder);
8✔
4546

4547
_exit:
8✔
4548
  if (code) {
8!
4549
    tlen = code;
×
4550
  } else {
4551
    tlen = encoder.pos;
8✔
4552
  }
4553
  tEncoderClear(&encoder);
8✔
4554
  return tlen;
8✔
4555
}
4556

4557
int32_t tDeserializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
4✔
4558
  SDecoder decoder = {0};
4✔
4559
  int32_t  code = 0;
4✔
4560
  int32_t  lino;
4561
  tDecoderInit(&decoder, buf, bufLen);
4✔
4562

4563
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
4564
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->ver));
4!
4565

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

4572
int32_t tSerializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
18,602✔
4573
  SEncoder encoder = {0};
18,602✔
4574
  int32_t  code = 0;
18,602✔
4575
  int32_t  lino;
4576
  int32_t  tlen;
4577
  tEncoderInit(&encoder, buf, bufLen);
18,602✔
4578

4579
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
18,602!
4580
  int32_t num = taosArrayGetSize(pRsp->qnodeList);
18,602✔
4581
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
18,602!
4582
  for (int32_t i = 0; i < num; ++i) {
36,476✔
4583
    SQueryNodeLoad *pLoad = taosArrayGet(pRsp->qnodeList, i);
17,874✔
4584
    TAOS_CHECK_EXIT(tEncodeSQueryNodeLoad(&encoder, pLoad));
17,874!
4585
  }
4586
  tEndEncode(&encoder);
18,602✔
4587

4588
_exit:
18,602✔
4589
  if (code) {
18,602!
4590
    tlen = code;
×
4591
  } else {
4592
    tlen = encoder.pos;
18,602✔
4593
  }
4594
  tEncoderClear(&encoder);
18,602✔
4595
  return tlen;
18,602✔
4596
}
4597

4598
int32_t tDeserializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
9,497✔
4599
  SDecoder decoder = {0};
9,497✔
4600
  int32_t  code = 0;
9,497✔
4601
  int32_t  lino;
4602
  tDecoderInit(&decoder, buf, bufLen);
9,497✔
4603

4604
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,497!
4605
  int32_t num = 0;
9,497✔
4606
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
9,497!
4607
  if (NULL == pRsp->qnodeList) {
9,497!
4608
    pRsp->qnodeList = taosArrayInit(num, sizeof(SQueryNodeLoad));
×
4609
    if (NULL == pRsp->qnodeList) {
×
4610
      TAOS_CHECK_EXIT(terrno);
×
4611
    }
4612
  }
4613

4614
  for (int32_t i = 0; i < num; ++i) {
18,433✔
4615
    SQueryNodeLoad load = {0};
8,937✔
4616
    TAOS_CHECK_EXIT(tDecodeSQueryNodeLoad(&decoder, &load));
8,937!
4617
    if (taosArrayPush(pRsp->qnodeList, &load) == NULL) {
17,872!
4618
      TAOS_CHECK_EXIT(terrno);
×
4619
    }
4620
  }
4621
  tEndDecode(&decoder);
9,496✔
4622

4623
_exit:
9,496✔
4624
  tDecoderClear(&decoder);
9,496✔
4625
  return code;
9,497✔
4626
}
4627

4628
void tFreeSQnodeListRsp(SQnodeListRsp *pRsp) { taosArrayDestroy(pRsp->qnodeList); }
9,301✔
4629

4630
int32_t tSerializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
15,056✔
4631
  SEncoder encoder = {0};
15,056✔
4632
  int32_t  code = 0;
15,056✔
4633
  int32_t  lino;
4634
  int32_t  tlen;
4635
  tEncoderInit(&encoder, buf, bufLen);
15,056✔
4636

4637
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
15,056!
4638
  int32_t num = taosArrayGetSize(pRsp->dnodeList);
15,056✔
4639
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
15,056!
4640
  for (int32_t i = 0; i < num; ++i) {
30,748✔
4641
    SEpSet *pEpSet = taosArrayGet(pRsp->dnodeList, i);
15,692✔
4642
    TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpSet));
15,692!
4643
  }
4644
  tEndEncode(&encoder);
15,056✔
4645

4646
_exit:
15,056✔
4647
  if (code) {
15,056!
4648
    tlen = code;
×
4649
  } else {
4650
    tlen = encoder.pos;
15,056✔
4651
  }
4652
  tEncoderClear(&encoder);
15,056✔
4653
  return tlen;
15,056✔
4654
}
4655

4656
int32_t tDeserializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
348✔
4657
  SDecoder decoder = {0};
348✔
4658
  int32_t  code = 0;
348✔
4659
  int32_t  lino;
4660
  tDecoderInit(&decoder, buf, bufLen);
348✔
4661

4662
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
348!
4663
  int32_t num = 0;
348✔
4664
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
348!
4665
  if (NULL == pRsp->dnodeList) {
348!
4666
    pRsp->dnodeList = taosArrayInit(num, sizeof(SEpSet));
348✔
4667
    if (NULL == pRsp->dnodeList) {
348!
4668
      TAOS_CHECK_EXIT(terrno);
×
4669
    }
4670
  }
4671

4672
  for (int32_t i = 0; i < num; ++i) {
1,342✔
4673
    SEpSet epSet = {0};
994✔
4674
    TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &epSet));
994!
4675
    if (taosArrayPush(pRsp->dnodeList, &epSet) == NULL) {
1,988!
4676
      TAOS_CHECK_EXIT(terrno);
×
4677
    }
4678
  }
4679
  tEndDecode(&decoder);
348✔
4680

4681
_exit:
348✔
4682
  tDecoderClear(&decoder);
348✔
4683
  return code;
348✔
4684
}
4685

4686
void tFreeSDnodeListRsp(SDnodeListRsp *pRsp) { taosArrayDestroy(pRsp->dnodeList); }
7,528✔
4687

4688
int32_t tSerializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
156✔
4689
  SEncoder encoder = {0};
156✔
4690
  int32_t  code = 0;
156✔
4691
  int32_t  lino;
4692
  int32_t  tlen;
4693
  tEncoderInit(&encoder, buf, bufLen);
156✔
4694

4695
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
156!
4696
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
312!
4697
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.skey));
312!
4698
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.ekey));
312!
4699
  ENCODESQL();
468!
4700

4701
  // encode vgroup list
4702
  int32_t numOfVgroups = taosArrayGetSize(pReq->vgroupIds);
156✔
4703
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfVgroups));
156!
4704
  if (numOfVgroups > 0) {
156!
4705
    for (int32_t i = 0; i < numOfVgroups; ++i) {
×
4706
      int64_t vgid = *(int64_t *)taosArrayGet(pReq->vgroupIds, i);
×
4707
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, vgid));
×
4708
    }
4709
  }
4710

4711
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
312!
4712

4713
  tEndEncode(&encoder);
156✔
4714

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

4725
int32_t tDeserializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
52✔
4726
  SDecoder decoder = {0};
52✔
4727
  int32_t  code = 0;
52✔
4728
  int32_t  lino;
4729
  tDecoderInit(&decoder, buf, bufLen);
52✔
4730

4731
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
52!
4732
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
52!
4733
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.skey));
104!
4734
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.ekey));
104!
4735
  DECODESQL();
156!
4736

4737
  // decode vgroup list
4738
  if (!tDecodeIsEnd(&decoder)) {
52!
4739
    int32_t numOfVgroups = 0;
52✔
4740
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgroups));
52!
4741
    if (numOfVgroups > 0) {
52!
4742
      pReq->vgroupIds = taosArrayInit(numOfVgroups, sizeof(int64_t));
×
4743
      if (NULL == pReq->vgroupIds) {
×
4744
        TAOS_CHECK_EXIT(terrno);
×
4745
      }
4746

4747
      for (int32_t i = 0; i < numOfVgroups; ++i) {
×
4748
        int64_t vgid;
4749
        TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &vgid));
×
4750
        if (taosArrayPush(pReq->vgroupIds, &vgid) == NULL) {
×
4751
          TAOS_CHECK_EXIT(terrno);
×
4752
        }
4753
      }
4754
    }
4755
  }
4756

4757
  if (!tDecodeIsEnd(&decoder)) {
52!
4758
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
104!
4759
  } else {
4760
    pReq->metaOnly = false;
×
4761
  }
4762
  tEndDecode(&decoder);
52✔
4763

4764
_exit:
52✔
4765
  tDecoderClear(&decoder);
52✔
4766
  return code;
52✔
4767
}
4768

4769
void tFreeSCompactDbReq(SCompactDbReq *pReq) {
130✔
4770
  FREESQL();
130!
4771
  taosArrayDestroy(pReq->vgroupIds);
130✔
4772
  pReq->vgroupIds = NULL;
130✔
4773
}
130✔
4774

4775
int32_t tSerializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
32✔
4776
  SEncoder encoder = {0};
32✔
4777
  int32_t  code = 0;
32✔
4778
  int32_t  lino;
4779
  int32_t  tlen;
4780
  tEncoderInit(&encoder, buf, bufLen);
32✔
4781

4782
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
4783
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->compactId));
64!
4784
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->bAccepted));
64!
4785
  tEndEncode(&encoder);
32✔
4786

4787
_exit:
32✔
4788
  if (code) {
32!
4789
    tlen = code;
×
4790
  } else {
4791
    tlen = encoder.pos;
32✔
4792
  }
4793
  tEncoderClear(&encoder);
32✔
4794
  return tlen;
32✔
4795
}
4796

4797
int32_t tDeserializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
10✔
4798
  SDecoder decoder = {0};
10✔
4799
  int32_t  code = 0;
10✔
4800
  int32_t  lino;
4801
  tDecoderInit(&decoder, buf, bufLen);
10✔
4802

4803
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
4804
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->compactId));
20!
4805
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->bAccepted));
20!
4806
  tEndDecode(&decoder);
10✔
4807

4808
_exit:
10✔
4809
  tDecoderClear(&decoder);
10✔
4810
  return code;
10✔
4811
}
4812

4813
int32_t tSerializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
×
4814
  SEncoder encoder = {0};
×
4815
  int32_t  code = 0;
×
4816
  int32_t  lino;
4817
  int32_t  tlen;
4818
  tEncoderInit(&encoder, buf, bufLen);
×
4819

4820
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
4821
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
4822
  ENCODESQL();
×
4823

4824
  tEndEncode(&encoder);
×
4825

4826
_exit:
×
4827
  if (code) {
×
4828
    tlen = code;
×
4829
  } else {
4830
    tlen = encoder.pos;
×
4831
  }
4832
  tEncoderClear(&encoder);
×
4833
  return tlen;
×
4834
}
4835

4836
int32_t tDeserializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
×
4837
  SDecoder decoder = {0};
×
4838
  int32_t  code = 0;
×
4839
  int32_t  lino;
4840
  tDecoderInit(&decoder, buf, bufLen);
×
4841

4842
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
4843
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
4844
  DECODESQL();
×
4845

4846
  tEndDecode(&decoder);
×
4847

4848
_exit:
×
4849
  tDecoderClear(&decoder);
×
4850
  return code;
×
4851
}
4852

4853
void tFreeSKillCompactReq(SKillCompactReq *pReq) { FREESQL(); }
×
4854

4855
int32_t tSerializeSUseDbRspImp(SEncoder *pEncoder, const SUseDbRsp *pRsp) {
5,764,837✔
4856
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
11,529,674!
4857
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->uid));
11,529,674!
4858
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgVersion));
11,529,674!
4859
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgNum));
11,529,674!
4860
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashPrefix));
11,529,674!
4861
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashSuffix));
11,529,674!
4862
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->hashMethod));
11,529,674!
4863

4864
  for (int32_t i = 0; i < pRsp->vgNum; ++i) {
43,001,382✔
4865
    SVgroupInfo *pVgInfo = taosArrayGet(pRsp->pVgroupInfos, i);
37,236,706✔
4866
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->vgId));
74,463,956!
4867
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashBegin));
74,463,956!
4868
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashEnd));
74,463,956!
4869
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
37,231,978!
4870
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->numOfTable));
74,473,090!
4871
  }
4872

4873
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->errCode));
11,529,352!
4874
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->stateTs));
11,529,352!
4875
  return 0;
5,764,676✔
4876
}
4877

4878
int32_t tSerializeSUseDbRsp(void *buf, int32_t bufLen, const SUseDbRsp *pRsp) {
5,697,108✔
4879
  SEncoder encoder = {0};
5,697,108✔
4880
  int32_t  code = 0;
5,697,108✔
4881
  int32_t  lino;
4882
  int32_t  tlen;
4883
  tEncoderInit(&encoder, buf, bufLen);
5,697,108✔
4884

4885
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,697,118!
4886
  TAOS_CHECK_EXIT(tSerializeSUseDbRspImp(&encoder, pRsp));
5,697,176!
4887
  tEndEncode(&encoder);
5,697,160✔
4888

4889
_exit:
5,697,153✔
4890
  if (code) {
5,697,153!
4891
    tlen = code;
×
4892
  } else {
4893
    tlen = encoder.pos;
5,697,153✔
4894
  }
4895
  tEncoderClear(&encoder);
5,697,153✔
4896
  return tlen;
5,697,146✔
4897
}
4898

4899
int32_t tSerializeSDbHbRspImp(SEncoder *pEncoder, const SDbHbRsp *pRsp) {
29,558✔
4900
  if (pRsp->useDbRsp) {
29,558✔
4901
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
7,728!
4902
    TAOS_CHECK_RETURN(tSerializeSUseDbRspImp(pEncoder, pRsp->useDbRsp));
7,728!
4903
  } else {
4904
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
21,830!
4905
  }
4906

4907
  if (pRsp->cfgRsp) {
29,558✔
4908
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
13,890!
4909
    TAOS_CHECK_RETURN(tSerializeSDbCfgRspImpl(pEncoder, pRsp->cfgRsp));
13,890!
4910
  } else {
4911
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
15,668!
4912
  }
4913

4914
  if (pRsp->pTsmaRsp) {
29,558✔
4915
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
24,626!
4916
    TAOS_CHECK_RETURN(tEncodeTableTSMAInfoRsp(pEncoder, pRsp->pTsmaRsp));
24,626!
4917
  } else {
4918
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
4,932!
4919
  }
4920
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->dbTsmaVersion));
59,116!
4921
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
59,116!
4922
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
59,116!
4923
  return 0;
29,558✔
4924
}
4925

4926
int32_t tSerializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
88,828✔
4927
  SEncoder encoder = {0};
88,828✔
4928
  int32_t  code = 0;
88,828✔
4929
  int32_t  lino;
4930
  int32_t  tlen;
4931
  tEncoderInit(&encoder, buf, bufLen);
88,828✔
4932

4933
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
88,828!
4934

4935
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
88,828✔
4936
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
88,828!
4937
  for (int32_t i = 0; i < numOfBatch; ++i) {
118,386✔
4938
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
29,558✔
4939
    TAOS_CHECK_EXIT(tSerializeSDbHbRspImp(&encoder, pDbRsp));
29,558!
4940
  }
4941
  tEndEncode(&encoder);
88,828✔
4942

4943
_exit:
88,828✔
4944
  if (code) {
88,828!
4945
    tlen = code;
×
4946
  } else {
4947
    tlen = encoder.pos;
88,828✔
4948
  }
4949
  tEncoderClear(&encoder);
88,828✔
4950
  return tlen;
88,828✔
4951
}
4952

4953
int32_t tDeserializeSUseDbRspImp(SDecoder *pDecoder, SUseDbRsp *pRsp) {
95,307✔
4954
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->db));
95,307!
4955
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->uid));
190,613!
4956
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgVersion));
190,611!
4957
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgNum));
190,610!
4958
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashPrefix));
190,610!
4959
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashSuffix));
190,610!
4960
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->hashMethod));
190,610!
4961

4962
  if (pRsp->vgNum > 0) {
95,305✔
4963
    pRsp->pVgroupInfos = taosArrayInit(pRsp->vgNum, sizeof(SVgroupInfo));
86,088✔
4964
    if (pRsp->pVgroupInfos == NULL) {
86,090!
4965
      TAOS_CHECK_RETURN(terrno);
×
4966
    }
4967

4968
    for (int32_t i = 0; i < pRsp->vgNum; ++i) {
431,207✔
4969
      SVgroupInfo vgInfo = {0};
345,117✔
4970
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.vgId));
345,116!
4971
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashBegin));
345,116!
4972
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashEnd));
345,114!
4973
      TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &vgInfo.epSet));
345,114!
4974
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.numOfTable));
345,113!
4975
      if (taosArrayPush(pRsp->pVgroupInfos, &vgInfo) == NULL) {
690,230!
4976
        TAOS_CHECK_RETURN(terrno);
×
4977
      }
4978
    }
4979
  }
4980

4981
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->errCode));
190,615!
4982
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->stateTs));
190,616!
4983
  return 0;
95,308✔
4984
}
4985

4986
int32_t tDeserializeSUseDbRsp(void *buf, int32_t bufLen, SUseDbRsp *pRsp) {
71,464✔
4987
  SDecoder decoder = {0};
71,464✔
4988
  int32_t  code = 0;
71,464✔
4989
  int32_t  lino;
4990
  tDecoderInit(&decoder, buf, bufLen);
71,464✔
4991

4992
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
71,464✔
4993
  TAOS_CHECK_EXIT(tDeserializeSUseDbRspImp(&decoder, pRsp));
71,461!
4994
  tEndDecode(&decoder);
71,462✔
4995

4996
_exit:
71,464✔
4997
  tDecoderClear(&decoder);
71,464✔
4998
  return code;
71,464✔
4999
}
5000

5001
int32_t tDeserializeSDbHbRspImp(SDecoder *decoder, SDbHbRsp *pRsp) {
3,875✔
5002
  int8_t flag = 0;
3,875✔
5003
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
3,875!
5004
  if (flag) {
3,875✔
5005
    pRsp->useDbRsp = taosMemoryCalloc(1, sizeof(SUseDbRsp));
3,029!
5006
    if (NULL == pRsp->useDbRsp) {
3,029!
5007
      TAOS_CHECK_RETURN(terrno);
×
5008
    }
5009
    TAOS_CHECK_RETURN(tDeserializeSUseDbRspImp(decoder, pRsp->useDbRsp));
3,029!
5010
  }
5011
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
3,875!
5012
  if (flag) {
3,875✔
5013
    pRsp->cfgRsp = taosMemoryCalloc(1, sizeof(SDbCfgRsp));
438!
5014
    if (NULL == pRsp->cfgRsp) {
438!
5015
      TAOS_CHECK_RETURN(terrno);
×
5016
    }
5017
    TAOS_CHECK_RETURN(tDeserializeSDbCfgRspImpl(decoder, pRsp->cfgRsp));
438!
5018
  }
5019
  if (!tDecodeIsEnd(decoder)) {
3,875!
5020
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
3,875!
5021
    if (flag) {
3,875✔
5022
      pRsp->pTsmaRsp = taosMemoryCalloc(1, sizeof(STableTSMAInfoRsp));
2,102!
5023
      if (!pRsp->pTsmaRsp) {
2,102!
5024
        TAOS_CHECK_RETURN(terrno);
×
5025
      }
5026
      TAOS_CHECK_RETURN(tDecodeTableTSMAInfoRsp(decoder, pRsp->pTsmaRsp));
2,102!
5027
    }
5028
  }
5029
  if (!tDecodeIsEnd(decoder)) {
3,875!
5030
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->dbTsmaVersion));
7,750!
5031
  }
5032
  if (!tDecodeIsEnd(decoder)) {
3,875!
5033
    TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
3,875!
5034
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
7,750!
5035
  }
5036

5037
  return 0;
3,875✔
5038
}
5039

5040
int32_t tDeserializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
9,570✔
5041
  SDecoder decoder = {0};
9,570✔
5042
  int32_t  code = 0;
9,570✔
5043
  int32_t  lino;
5044
  tDecoderInit(&decoder, buf, bufLen);
9,570✔
5045

5046
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,570!
5047

5048
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
9,570✔
5049
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
9,570!
5050

5051
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SDbHbRsp));
9,570✔
5052
  if (pRsp->pArray == NULL) {
9,570!
5053
    TAOS_CHECK_EXIT(terrno);
×
5054
  }
5055

5056
  for (int32_t i = 0; i < numOfBatch; ++i) {
13,445✔
5057
    SDbHbRsp rsp = {0};
3,875✔
5058
    TAOS_CHECK_EXIT(tDeserializeSDbHbRspImp(&decoder, &rsp));
3,875!
5059

5060
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
7,750!
5061
      TAOS_CHECK_EXIT(terrno);
×
5062
    }
5063
  }
5064
  tEndDecode(&decoder);
9,570✔
5065

5066
_exit:
9,570✔
5067
  tDecoderClear(&decoder);
9,570✔
5068
  return code;
9,570✔
5069
}
5070

5071
void tFreeSUsedbRsp(SUseDbRsp *pRsp) { taosArrayDestroy(pRsp->pVgroupInfos); }
2,917,025✔
5072

5073
void tFreeSDbHbRsp(SDbHbRsp *pDbRsp) {
18,654✔
5074
  if (NULL == pDbRsp) {
18,654!
5075
    return;
×
5076
  }
5077

5078
  if (pDbRsp->useDbRsp) {
18,654✔
5079
    tFreeSUsedbRsp(pDbRsp->useDbRsp);
6,893✔
5080
    taosMemoryFree(pDbRsp->useDbRsp);
6,893!
5081
  }
5082

5083
  if (pDbRsp->cfgRsp) {
18,654✔
5084
    tFreeSDbCfgRsp(pDbRsp->cfgRsp);
6,945✔
5085
    taosMemoryFree(pDbRsp->cfgRsp);
6,945!
5086
  }
5087
  if (pDbRsp->pTsmaRsp) {
18,654✔
5088
    tFreeTableTSMAInfoRsp(pDbRsp->pTsmaRsp);
14,415✔
5089
    taosMemoryFree(pDbRsp->pTsmaRsp);
14,415!
5090
  }
5091
}
5092

5093
void tFreeSDbHbBatchRsp(SDbHbBatchRsp *pRsp) {
53,984✔
5094
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
53,984✔
5095
  for (int32_t i = 0; i < numOfBatch; ++i) {
72,638✔
5096
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
18,654✔
5097
    tFreeSDbHbRsp(pDbRsp);
18,654✔
5098
  }
5099

5100
  taosArrayDestroy(pRsp->pArray);
53,984✔
5101
}
53,984✔
5102

5103
int32_t tSerializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
30,588✔
5104
  SEncoder encoder = {0};
30,588✔
5105
  int32_t  code = 0;
30,588✔
5106
  int32_t  lino;
5107
  int32_t  tlen;
5108
  tEncoderInit(&encoder, buf, bufLen);
30,588✔
5109

5110
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30,588!
5111

5112
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
30,588✔
5113
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
30,588!
5114
  for (int32_t i = 0; i < numOfBatch; ++i) {
61,374✔
5115
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
30,786✔
5116
    TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pUserAuthRsp));
30,786!
5117
  }
5118
  tEndEncode(&encoder);
30,588✔
5119

5120
_exit:
30,588✔
5121
  if (code) {
30,588!
5122
    tlen = code;
×
5123
  } else {
5124
    tlen = encoder.pos;
30,588✔
5125
  }
5126
  tEncoderClear(&encoder);
30,588✔
5127
  return tlen;
30,588✔
5128
}
5129

5130
int32_t tDeserializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
2,638✔
5131
  SDecoder decoder = {0};
2,638✔
5132
  int32_t  code = 0;
2,638✔
5133
  int32_t  lino;
5134
  tDecoderInit(&decoder, buf, bufLen);
2,638✔
5135

5136
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,638!
5137

5138
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
2,638✔
5139
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
2,638!
5140

5141
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SGetUserAuthRsp));
2,638✔
5142
  if (pRsp->pArray == NULL) {
2,638!
5143
    TAOS_CHECK_EXIT(terrno);
×
5144
  }
5145

5146
  for (int32_t i = 0; i < numOfBatch; ++i) {
5,395✔
5147
    SGetUserAuthRsp rsp = {0};
2,757✔
5148
    TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, &rsp));
2,757!
5149
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
5,514!
5150
      TAOS_CHECK_EXIT(terrno);
×
5151
    }
5152
  }
5153
  tEndDecode(&decoder);
2,638✔
5154

5155
_exit:
2,638✔
5156
  tDecoderClear(&decoder);
2,638✔
5157
  return code;
2,638✔
5158
}
5159

5160
void tFreeSUserAuthBatchRsp(SUserAuthBatchRsp *pRsp) {
223,825✔
5161
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
223,825✔
5162
  for (int32_t i = 0; i < numOfBatch; ++i) {
239,218✔
5163
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
15,393✔
5164
    tFreeSGetUserAuthRsp(pUserAuthRsp);
15,393✔
5165
  }
5166

5167
  taosArrayDestroy(pRsp->pArray);
223,825✔
5168
}
223,824✔
5169

5170
int32_t tSerializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
7,472✔
5171
  SEncoder encoder = {0};
7,472✔
5172
  int32_t  code = 0;
7,472✔
5173
  int32_t  lino;
5174
  int32_t  tlen;
5175
  tEncoderInit(&encoder, buf, bufLen);
7,472✔
5176

5177
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,472!
5178
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
14,944!
5179
  tEndEncode(&encoder);
7,472✔
5180

5181
_exit:
7,472✔
5182
  if (code) {
7,472!
5183
    tlen = code;
×
5184
  } else {
5185
    tlen = encoder.pos;
7,472✔
5186
  }
5187
  tEncoderClear(&encoder);
7,472✔
5188
  return tlen;
7,472✔
5189
}
5190

5191
int32_t tDeserializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
72,403✔
5192
  SDecoder decoder = {0};
72,403✔
5193
  int32_t  code = 0;
72,403✔
5194
  int32_t  lino;
5195
  tDecoderInit(&decoder, buf, bufLen);
72,403✔
5196

5197
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
72,403!
5198
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
72,403!
5199
  tEndDecode(&decoder);
72,403✔
5200

5201
_exit:
72,403✔
5202
  tDecoderClear(&decoder);
72,403✔
5203
  return code;
72,403✔
5204
}
5205

5206
int32_t tSerializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
70✔
5207
  SEncoder encoder = {0};
70✔
5208
  int32_t  code = 0;
70✔
5209
  int32_t  lino;
5210
  int32_t  tlen;
5211
  tEncoderInit(&encoder, buf, bufLen);
70✔
5212

5213
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
70!
5214
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
140!
5215
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxSpeed));
140!
5216
  tEndEncode(&encoder);
70✔
5217

5218
_exit:
70✔
5219
  if (code) {
70!
5220
    tlen = code;
×
5221
  } else {
5222
    tlen = encoder.pos;
70✔
5223
  }
5224
  tEncoderClear(&encoder);
70✔
5225
  return tlen;
70✔
5226
}
5227

5228
int32_t tDeserializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
16✔
5229
  SDecoder decoder = {0};
16✔
5230
  int32_t  code = 0;
16✔
5231
  int32_t  lino;
5232
  tDecoderInit(&decoder, buf, bufLen);
16✔
5233

5234
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16!
5235
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
16!
5236
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxSpeed));
32!
5237
  tEndDecode(&decoder);
16✔
5238

5239
_exit:
16✔
5240
  tDecoderClear(&decoder);
16✔
5241
  return code;
16✔
5242
}
5243

5244
int32_t tSerializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
212✔
5245
  SEncoder encoder = {0};
212✔
5246
  int32_t  code = 0;
212✔
5247
  int32_t  lino;
5248
  int32_t  tlen;
5249
  tEncoderInit(&encoder, buf, bufLen);
212✔
5250

5251
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
212!
5252
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
424!
5253
  tEndEncode(&encoder);
212✔
5254

5255
_exit:
212✔
5256
  if (code) {
212!
5257
    tlen = code;
×
5258
  } else {
5259
    tlen = encoder.pos;
212✔
5260
  }
5261
  tEncoderClear(&encoder);
212✔
5262
  return tlen;
212✔
5263
}
5264

5265
int32_t tDeserializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
214✔
5266
  SDecoder decoder = {0};
214✔
5267
  int32_t  code = 0;
214✔
5268
  int32_t  lino;
5269
  tDecoderInit(&decoder, buf, bufLen);
214✔
5270

5271
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
214!
5272
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
428!
5273

5274
  tEndDecode(&decoder);
214✔
5275

5276
_exit:
214✔
5277
  tDecoderClear(&decoder);
214✔
5278
  return code;
214✔
5279
}
5280

5281
int32_t tSerializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
12✔
5282
  SEncoder encoder = {0};
12✔
5283
  int32_t  code = 0;
12✔
5284
  int32_t  lino;
5285
  int32_t  tlen;
5286
  tEncoderInit(&encoder, buf, bufLen);
12✔
5287

5288
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
5289
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
24!
5290
  tEndEncode(&encoder);
12✔
5291

5292
_exit:
12✔
5293
  if (code) {
12!
5294
    tlen = code;
×
5295
  } else {
5296
    tlen = encoder.pos;
12✔
5297
  }
5298
  tEncoderClear(&encoder);
12✔
5299
  return tlen;
12✔
5300
}
5301

5302
int32_t tDeserializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
×
5303
  SDecoder decoder = {0};
×
5304
  int32_t  code = 0;
×
5305
  int32_t  lino;
5306
  tDecoderInit(&decoder, buf, bufLen);
×
5307

5308
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5309
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
5310
  tEndDecode(&decoder);
×
5311

5312
_exit:
×
5313
  tDecoderClear(&decoder);
×
5314
  return code;
×
5315
}
5316

5317
int32_t tSerializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
5318
  SEncoder encoder = {0};
×
5319
  int32_t  code = 0;
×
5320
  int32_t  lino;
5321
  int32_t  tlen;
5322
  tEncoderInit(&encoder, buf, bufLen);
×
5323

5324
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5325
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
×
5326
  tEndEncode(&encoder);
×
5327

5328
_exit:
×
5329
  if (code) {
×
5330
    tlen = code;
×
5331
  } else {
5332
    tlen = encoder.pos;
×
5333
  }
5334
  tEncoderClear(&encoder);
×
5335
  return tlen;
×
5336
}
5337

5338
int32_t tDeserializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
5339
  SDecoder decoder = {0};
×
5340
  int32_t  code = 0;
×
5341
  int32_t  lino;
5342
  tDecoderInit(&decoder, buf, bufLen);
×
5343

5344
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5345
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
×
5346

5347
  tEndDecode(&decoder);
×
5348

5349
_exit:
×
5350
  tDecoderClear(&decoder);
×
5351
  return code;
×
5352
}
5353

5354
int32_t tSerializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
107,230✔
5355
  SEncoder encoder = {0};
107,230✔
5356
  int32_t  code = 0;
107,230✔
5357
  int32_t  lino;
5358
  int32_t  tlen;
5359
  tEncoderInit(&encoder, buf, bufLen);
107,230✔
5360

5361
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
107,230!
5362
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestampSec));
214,460!
5363
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttlDropMaxCount));
214,460!
5364
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->nUids));
214,460!
5365
  for (int32_t i = 0; i < pReq->nUids; ++i) {
107,240✔
5366
    tb_uid_t *pTbUid = taosArrayGet(pReq->pTbUids, i);
10✔
5367
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, *pTbUid));
20!
5368
  }
5369
  tEndEncode(&encoder);
107,230✔
5370

5371
_exit:
107,230✔
5372
  if (code) {
107,230!
5373
    tlen = code;
×
5374
  } else {
5375
    tlen = encoder.pos;
107,230✔
5376
  }
5377
  tEncoderClear(&encoder);
107,230✔
5378
  return tlen;
107,230✔
5379
}
5380

5381
int32_t tDeserializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
99,805✔
5382
  SDecoder decoder = {0};
99,805✔
5383
  int32_t  code = 0;
99,805✔
5384
  int32_t  lino;
5385
  tDecoderInit(&decoder, buf, bufLen);
99,805✔
5386

5387
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
99,864!
5388
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestampSec));
200,548!
5389
  pReq->ttlDropMaxCount = INT32_MAX;
100,248✔
5390
  pReq->nUids = 0;
100,248✔
5391
  pReq->pTbUids = NULL;
100,248✔
5392
  if (!tDecodeIsEnd(&decoder)) {
100,248!
5393
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttlDropMaxCount));
200,445!
5394
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->nUids));
200,300!
5395

5396
    if (pReq->nUids > 0) {
100,116✔
5397
      pReq->pTbUids = taosArrayInit(pReq->nUids, sizeof(tb_uid_t));
5✔
5398
      if (pReq->pTbUids == NULL) {
5!
5399
        TAOS_CHECK_EXIT(terrno);
×
5400
      }
5401
    }
5402

5403
    tb_uid_t tbUid = 0;
100,158✔
5404
    for (int32_t i = 0; i < pReq->nUids; ++i) {
100,163✔
5405
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &tbUid));
5!
5406
      if (taosArrayPush(pReq->pTbUids, &tbUid) == NULL) {
10!
5407
        TAOS_CHECK_EXIT(terrno);
×
5408
      }
5409
    }
5410
  }
5411
  tEndDecode(&decoder);
100,145✔
5412

5413
_exit:
100,114✔
5414
  tDecoderClear(&decoder);
100,114✔
5415
  return code;
100,188✔
5416
}
5417

5418
int32_t tSerializeSDbCfgRspImpl(SEncoder *encoder, const SDbCfgRsp *pRsp) {
158,650✔
5419
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pRsp->db));
317,300!
5420
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->dbId));
317,300!
5421
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cfgVersion));
317,300!
5422
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfVgroups));
317,300!
5423
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfStables));
317,300!
5424
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->buffer));
317,300!
5425
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cacheSize));
317,300!
5426
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pageSize));
317,300!
5427
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pages));
317,300!
5428
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysPerFile));
317,300!
5429
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep0));
317,300!
5430
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep1));
317,300!
5431
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep2));
317,300!
5432
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->minRows));
317,300!
5433
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->maxRows));
317,300!
5434
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walFsyncPeriod));
317,300!
5435
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashPrefix));
317,300!
5436
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashSuffix));
317,300!
5437
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->walLevel));
317,300!
5438
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->precision));
317,300!
5439
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compression));
317,300!
5440
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->replications));
317,300!
5441
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->strict));
317,300!
5442
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->cacheLast));
317,300!
5443
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->tsdbPageSize));
317,300!
5444
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRetentionPeriod));
317,300!
5445
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRollPeriod));
317,300!
5446
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walRetentionSize));
317,300!
5447
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walSegmentSize));
317,300!
5448
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfRetensions));
317,300!
5449
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
158,668✔
5450
    SRetention *pRetension = taosArrayGet(pRsp->pRetensions, i);
18✔
5451
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->freq));
36!
5452
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->keep));
36!
5453
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->freqUnit));
36!
5454
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->keepUnit));
36!
5455
  }
5456
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->schemaless));
317,300!
5457
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->sstTrigger));
317,300!
5458
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->keepTimeOffset));
317,300!
5459
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->withArbitrator));
317,300!
5460
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->encryptAlgorithm));
317,300!
5461
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3ChunkSize));
317,300!
5462
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3KeepLocal));
317,300!
5463
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->s3Compact));
317,300!
5464
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->hashMethod));
317,300!
5465
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactInterval));
317,300!
5466
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactStartTime));
317,300!
5467
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactEndTime));
317,300!
5468
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compactTimeOffset));
317,300!
5469

5470
  return 0;
158,650✔
5471
}
5472

5473
int32_t tSerializeSDbCfgRsp(void *buf, int32_t bufLen, const SDbCfgRsp *pRsp) {
144,757✔
5474
  SEncoder encoder = {0};
144,757✔
5475
  int32_t  code = 0;
144,757✔
5476
  int32_t  lino;
5477
  int32_t  tlen;
5478
  tEncoderInit(&encoder, buf, bufLen);
144,757✔
5479

5480
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
144,759!
5481
  TAOS_CHECK_EXIT(tSerializeSDbCfgRspImpl(&encoder, pRsp));
144,760!
5482
  tEndEncode(&encoder);
144,759✔
5483

5484
_exit:
144,759✔
5485
  if (code) {
144,759!
5486
    tlen = code;
×
5487
  } else {
5488
    tlen = encoder.pos;
144,759✔
5489
  }
5490
  tEncoderClear(&encoder);
144,759✔
5491
  return tlen;
144,759✔
5492
}
5493

5494
int32_t tDeserializeSDbCfgRspImpl(SDecoder *decoder, SDbCfgRsp *pRsp) {
4,153✔
5495
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
4,153!
5496
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
8,306!
5497
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cfgVersion));
8,306!
5498
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfVgroups));
8,306!
5499
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfStables));
8,306!
5500
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->buffer));
8,306!
5501
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cacheSize));
8,306!
5502
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pageSize));
8,306!
5503
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pages));
8,306!
5504
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysPerFile));
8,306!
5505
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep0));
8,306!
5506
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep1));
8,306!
5507
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep2));
8,306!
5508
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->minRows));
8,306!
5509
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->maxRows));
8,306!
5510
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walFsyncPeriod));
8,306!
5511
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashPrefix));
8,306!
5512
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashSuffix));
8,306!
5513
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->walLevel));
8,306!
5514
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->precision));
8,306!
5515
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compression));
8,306!
5516
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->replications));
8,306!
5517
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->strict));
8,306!
5518
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->cacheLast));
8,306!
5519
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->tsdbPageSize));
8,306!
5520
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRetentionPeriod));
8,306!
5521
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRollPeriod));
8,306!
5522
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walRetentionSize));
8,306!
5523
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walSegmentSize));
8,306!
5524
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfRetensions));
8,306!
5525
  if (pRsp->numOfRetensions > 0) {
4,153✔
5526
    pRsp->pRetensions = taosArrayInit(pRsp->numOfRetensions, sizeof(SRetention));
3✔
5527
    if (pRsp->pRetensions == NULL) {
3!
5528
      TAOS_CHECK_RETURN(terrno);
×
5529
    }
5530
  }
5531

5532
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
4,162✔
5533
    SRetention rentension = {0};
9✔
5534
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.freq));
9!
5535
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.keep));
9!
5536
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.freqUnit));
9!
5537
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.keepUnit));
9!
5538
    if (taosArrayPush(pRsp->pRetensions, &rentension) == NULL) {
18!
5539
      TAOS_CHECK_RETURN(terrno);
×
5540
    }
5541
  }
5542
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->schemaless));
8,306!
5543
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->sstTrigger));
8,306!
5544
  if (!tDecodeIsEnd(decoder)) {
4,153!
5545
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->keepTimeOffset));
8,306!
5546
  } else {
5547
    pRsp->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
5548
  }
5549
  if (!tDecodeIsEnd(decoder)) {
4,153!
5550
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->withArbitrator));
8,306!
5551
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->encryptAlgorithm));
8,306!
5552
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3ChunkSize));
8,306!
5553
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3KeepLocal));
8,306!
5554
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->s3Compact));
8,306!
5555
  } else {
5556
    pRsp->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
5557
    pRsp->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
5558
    pRsp->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
5559
    pRsp->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
5560
    pRsp->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
5561
  }
5562
  if (!tDecodeIsEnd(decoder)) {
4,153!
5563
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->hashMethod));
8,306!
5564
  } else {
5565
    pRsp->hashMethod = 1;  // default value
×
5566
  }
5567
  if (!tDecodeIsEnd(decoder)) {
4,153!
5568
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactInterval));
8,306!
5569
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactStartTime));
8,306!
5570
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactEndTime));
8,306!
5571
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compactTimeOffset));
8,306!
5572
  } else {
5573
    pRsp->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
5574
    pRsp->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
5575
    pRsp->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
5576
    pRsp->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
5577
  }
5578

5579
  return 0;
4,153✔
5580
}
5581

5582
int32_t tDeserializeSDbCfgRsp(void *buf, int32_t bufLen, SDbCfgRsp *pRsp) {
3,714✔
5583
  SDecoder decoder = {0};
3,714✔
5584
  int32_t  code = 0;
3,714✔
5585
  int32_t  lino;
5586
  tDecoderInit(&decoder, buf, bufLen);
3,714✔
5587

5588
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,715!
5589
  TAOS_CHECK_EXIT(tDeserializeSDbCfgRspImpl(&decoder, pRsp));
3,715!
5590
  tEndDecode(&decoder);
3,715✔
5591

5592
_exit:
3,715✔
5593
  tDecoderClear(&decoder);
3,715✔
5594
  return code;
3,715✔
5595
}
5596

5597
void tFreeSDbCfgRsp(SDbCfgRsp *pRsp) {
79,348✔
5598
  if (NULL == pRsp) {
79,348!
5599
    return;
×
5600
  }
5601

5602
  taosArrayDestroy(pRsp->pRetensions);
79,348✔
5603
}
5604

5605
int32_t tSerializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
8✔
5606
  SEncoder encoder = {0};
8✔
5607
  int32_t  code = 0;
8✔
5608
  int32_t  lino;
5609
  int32_t  tlen;
5610
  tEncoderInit(&encoder, buf, bufLen);
8✔
5611

5612
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
5613
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->indexFName));
16!
5614
  tEndEncode(&encoder);
8✔
5615

5616
_exit:
8✔
5617
  if (code) {
8!
5618
    tlen = code;
×
5619
  } else {
5620
    tlen = encoder.pos;
8✔
5621
  }
5622
  tEncoderClear(&encoder);
8✔
5623
  return tlen;
8✔
5624
}
5625

5626
int32_t tDeserializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
×
5627
  SDecoder decoder = {0};
×
5628
  int32_t  code = 0;
×
5629
  int32_t  lino;
5630
  tDecoderInit(&decoder, buf, bufLen);
×
5631

5632
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5633
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->indexFName));
×
5634
  tEndDecode(&decoder);
×
5635

5636
_exit:
×
5637
  tDecoderClear(&decoder);
×
5638
  return code;
×
5639
}
5640

5641
int32_t tSerializeSUserIndexRsp(void *buf, int32_t bufLen, const SUserIndexRsp *pRsp) {
×
5642
  SEncoder encoder = {0};
×
5643
  int32_t  code = 0;
×
5644
  int32_t  lino;
5645
  int32_t  tlen;
5646
  tEncoderInit(&encoder, buf, bufLen);
×
5647

5648
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5649
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
×
5650
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tblFName));
×
5651
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->colName));
×
5652
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexType));
×
5653
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexExts));
×
5654
  tEndEncode(&encoder);
×
5655

5656
_exit:
×
5657
  if (code) {
×
5658
    tlen = code;
×
5659
  } else {
5660
    tlen = encoder.pos;
×
5661
  }
5662
  tEncoderClear(&encoder);
×
5663
  return tlen;
×
5664
}
5665

5666
int32_t tDeserializeSUserIndexRsp(void *buf, int32_t bufLen, SUserIndexRsp *pRsp) {
×
5667
  SDecoder decoder = {0};
×
5668
  int32_t  code = 0;
×
5669
  int32_t  lino;
5670
  tDecoderInit(&decoder, buf, bufLen);
×
5671

5672
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5673
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
×
5674
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tblFName));
×
5675
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->colName));
×
5676
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexType));
×
5677
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexExts));
×
5678
  tEndDecode(&decoder);
×
5679

5680
_exit:
×
5681
  tDecoderClear(&decoder);
×
5682
  return code;
×
5683
}
5684

5685
int32_t tSerializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
14,718✔
5686
  SEncoder encoder = {0};
14,718✔
5687
  int32_t  code = 0;
14,718✔
5688
  int32_t  lino;
5689
  int32_t  tlen;
5690
  tEncoderInit(&encoder, buf, bufLen);
14,718✔
5691

5692
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14,718!
5693
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbFName));
29,436!
5694
  tEndEncode(&encoder);
14,718✔
5695

5696
_exit:
14,718✔
5697
  if (code) {
14,718!
5698
    tlen = code;
×
5699
  } else {
5700
    tlen = encoder.pos;
14,718✔
5701
  }
5702
  tEncoderClear(&encoder);
14,718✔
5703
  return tlen;
14,718✔
5704
}
5705

5706
int32_t tDeserializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
9,275✔
5707
  SDecoder decoder = {0};
9,275✔
5708
  int32_t  code = 0;
9,275✔
5709
  int32_t  lino;
5710
  tDecoderInit(&decoder, buf, bufLen);
9,275✔
5711

5712
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,275!
5713
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbFName));
9,275!
5714
  tEndDecode(&decoder);
9,275✔
5715

5716
_exit:
9,275✔
5717
  tDecoderClear(&decoder);
9,275✔
5718
  return code;
9,275✔
5719
}
5720

5721
int32_t tSerializeSTableIndexInfo(SEncoder *pEncoder, STableIndexInfo *pInfo) {
28✔
5722
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->intervalUnit));
56!
5723
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->slidingUnit));
56!
5724
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->interval));
56!
5725
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->offset));
56!
5726
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->sliding));
56!
5727
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->dstTbUid));
56!
5728
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pInfo->dstVgId));
56!
5729
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pInfo->epSet));
28!
5730
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->expr));
56!
5731
  return 0;
28✔
5732
}
5733

5734
int32_t tSerializeSTableIndexRsp(void *buf, int32_t bufLen, const STableIndexRsp *pRsp) {
10✔
5735
  SEncoder encoder = {0};
10✔
5736
  int32_t  code = 0;
10✔
5737
  int32_t  lino;
5738
  int32_t  tlen;
5739
  tEncoderInit(&encoder, buf, bufLen);
10✔
5740

5741
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
5742
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
20!
5743
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
20!
5744
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pRsp->suid));
20!
5745
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->version));
20!
5746
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->indexSize));
20!
5747
  int32_t num = taosArrayGetSize(pRsp->pIndex);
10✔
5748
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
10!
5749
  if (num > 0) {
10!
5750
    for (int32_t i = 0; i < num; ++i) {
38✔
5751
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pRsp->pIndex, i);
28✔
5752
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
28!
5753
    }
5754
  }
5755
  tEndEncode(&encoder);
10✔
5756

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

5767
void tFreeSerializeSTableIndexRsp(STableIndexRsp *pRsp) {
9,275✔
5768
  if (pRsp->pIndex != NULL) {
9,275!
5769
    tFreeSTableIndexRsp(pRsp);
9,275✔
5770
    pRsp->pIndex = NULL;
9,275✔
5771
  }
5772
}
9,275✔
5773

5774
int32_t tDeserializeSTableIndexInfo(SDecoder *pDecoder, STableIndexInfo *pInfo) {
14✔
5775
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->intervalUnit));
28!
5776
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->slidingUnit));
28!
5777
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->interval));
28!
5778
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->offset));
28!
5779
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->sliding));
28!
5780
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->dstTbUid));
28!
5781
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pInfo->dstVgId));
28!
5782
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pInfo->epSet));
14!
5783
  TAOS_CHECK_RETURN(tDecodeCStrAlloc(pDecoder, &pInfo->expr));
28!
5784
  return 0;
14✔
5785
}
5786

5787
int32_t tDeserializeSTableIndexRsp(void *buf, int32_t bufLen, STableIndexRsp *pRsp) {
5✔
5788
  SDecoder decoder = {0};
5✔
5789
  int32_t  code = 0;
5✔
5790
  int32_t  lino;
5791
  tDecoderInit(&decoder, buf, bufLen);
5✔
5792

5793
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5!
5794
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
5!
5795
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
5!
5796
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->suid));
10!
5797
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->version));
10!
5798
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->indexSize));
10!
5799
  int32_t num = 0;
5✔
5800
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
5!
5801
  if (num > 0) {
5!
5802
    pRsp->pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
5✔
5803
    if (NULL == pRsp->pIndex) {
5!
5804
      TAOS_CHECK_EXIT(terrno);
×
5805
    }
5806
    STableIndexInfo info;
5807
    for (int32_t i = 0; i < num; ++i) {
19✔
5808
      TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
14!
5809
      if (NULL == taosArrayPush(pRsp->pIndex, &info)) {
28!
5810
        taosMemoryFree(info.expr);
×
5811
        TAOS_CHECK_EXIT(terrno);
×
5812
      }
5813
    }
5814
  }
5815
  tEndDecode(&decoder);
5✔
5816

5817
_exit:
5✔
5818
  tDecoderClear(&decoder);
5✔
5819
  return code;
5✔
5820
}
5821

5822
void tFreeSTableIndexInfo(void *info) {
68✔
5823
  if (NULL == info) {
68!
5824
    return;
×
5825
  }
5826

5827
  STableIndexInfo *pInfo = (STableIndexInfo *)info;
68✔
5828

5829
  taosMemoryFree(pInfo->expr);
68!
5830
}
5831

5832
int32_t tSerializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
284✔
5833
  SEncoder encoder = {0};
284✔
5834
  int32_t  code = 0;
284✔
5835
  int32_t  lino;
5836
  int32_t  tlen;
5837
  tEncoderInit(&encoder, buf, bufLen);
284✔
5838

5839
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
284!
5840
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->opType));
568!
5841
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->valLen));
568!
5842
  if (pReq->valLen > 0) {
284!
5843
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->val, pReq->valLen));
×
5844
  }
5845
  tEndEncode(&encoder);
284✔
5846

5847
_exit:
284✔
5848
  if (code) {
284!
5849
    tlen = code;
×
5850
  } else {
5851
    tlen = encoder.pos;
284✔
5852
  }
5853
  tEncoderClear(&encoder);
284✔
5854
  return tlen;
284✔
5855
}
5856

5857
int32_t tDeserializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
10✔
5858
  SDecoder decoder = {0};
10✔
5859
  int32_t  code = 0;
10✔
5860
  int32_t  lino;
5861
  tDecoderInit(&decoder, buf, bufLen);
10✔
5862

5863
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
5864
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->opType));
20!
5865
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->valLen));
20!
5866

5867
  if (pReq->valLen > 0) {
10!
5868
    pReq->val = taosMemoryCalloc(1, pReq->valLen + 1);
×
5869
    if (pReq->val == NULL) {
×
5870
      TAOS_CHECK_EXIT(terrno);
×
5871
    }
5872
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->val));
×
5873
  }
5874

5875
  tEndDecode(&decoder);
10✔
5876
_exit:
10✔
5877
  tDecoderClear(&decoder);
10✔
5878
  return code;
10✔
5879
}
5880

5881
void tFreeSShowVariablesReq(SShowVariablesReq *pReq) {
152✔
5882
  if (NULL != pReq && NULL != pReq->val) {
152!
5883
    taosMemoryFree(pReq->val);
×
5884
    pReq->val = NULL;
×
5885
  }
5886
}
152✔
5887

5888
int32_t tEncodeSVariablesInfo(SEncoder *pEncoder, SVariablesInfo *pInfo) {
1,760✔
5889
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->name));
3,520!
5890
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->value));
3,520!
5891
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->scope));
3,520!
5892
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->category));
3,520!
5893
  return 0;
1,760✔
5894
}
5895

5896
int32_t tDecodeSVariablesInfo(SDecoder *pDecoder, SVariablesInfo *pInfo) {
11,088✔
5897
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->name));
11,088!
5898
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->value));
11,088!
5899
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->scope));
11,088!
5900
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->category));
11,088!
5901
  return 0;
11,088✔
5902
}
5903

5904
int32_t tSerializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
20✔
5905
  SEncoder encoder = {0};
20✔
5906
  int32_t  code = 0;
20✔
5907
  int32_t  lino;
5908
  int32_t  tlen;
5909
  tEncoderInit(&encoder, buf, bufLen);
20✔
5910

5911
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
5912
  int32_t varNum = taosArrayGetSize(pRsp->variables);
20✔
5913
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, varNum));
20!
5914
  for (int32_t i = 0; i < varNum; ++i) {
1,780✔
5915
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
1,760✔
5916
    TAOS_CHECK_EXIT(tEncodeSVariablesInfo(&encoder, pInfo));
1,760!
5917
  }
5918

5919
  for (int32_t i = 0; i < varNum; ++i) {
1,780✔
5920
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
1,760✔
5921
    TAOS_CHECK_RETURN(tEncodeCStr(&encoder, pInfo->info));
3,520!
5922
  }
5923

5924
  tEndEncode(&encoder);
20✔
5925

5926
_exit:
20✔
5927
  if (code) {
20!
5928
    tlen = code;
×
5929
  } else {
5930
    tlen = encoder.pos;
20✔
5931
  }
5932
  tEncoderClear(&encoder);
20✔
5933
  return tlen;
20✔
5934
}
5935

5936
int32_t tDeserializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
126✔
5937
  SDecoder decoder = {0};
126✔
5938
  int32_t  code = 0;
126✔
5939
  int32_t  lino;
5940
  tDecoderInit(&decoder, buf, bufLen);
126✔
5941

5942
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
126!
5943
  int32_t varNum = 0;
126✔
5944
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &varNum));
126!
5945
  if (varNum > 0) {
126!
5946
    pRsp->variables = taosArrayInit(varNum, sizeof(SVariablesInfo));
126✔
5947
    if (NULL == pRsp->variables) {
126!
5948
      TAOS_CHECK_EXIT(terrno);
×
5949
    }
5950
    for (int32_t i = 0; i < varNum; ++i) {
11,214✔
5951
      SVariablesInfo info = {0};
11,088✔
5952
      TAOS_CHECK_EXIT(tDecodeSVariablesInfo(&decoder, &info));
11,088!
5953
      if (NULL == taosArrayPush(pRsp->variables, &info)) {
22,176!
5954
        TAOS_CHECK_EXIT(terrno);
×
5955
      }
5956
    }
5957

5958
    if (!tDecodeIsEnd(&decoder)) {
126!
5959
      for (int32_t i = 0; i < varNum; ++i) {
11,214✔
5960
        SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
11,088✔
5961
        TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pInfo->info));
11,088!
5962
      }
5963
    }
5964
  }
5965

5966
  tEndDecode(&decoder);
126✔
5967
_exit:
126✔
5968
  tDecoderClear(&decoder);
126✔
5969
  return code;
126✔
5970
}
5971

5972
void tFreeSShowVariablesRsp(SShowVariablesRsp *pRsp) {
136✔
5973
  if (NULL == pRsp) {
136!
5974
    return;
×
5975
  }
5976

5977
  taosArrayDestroy(pRsp->variables);
136✔
5978
}
5979

5980
int32_t tSerializeSShowReq(void *buf, int32_t bufLen, SShowReq *pReq) {
16✔
5981
  SEncoder encoder = {0};
16✔
5982
  int32_t  code = 0;
16✔
5983
  int32_t  lino;
5984
  int32_t  tlen;
5985
  tEncoderInit(&encoder, buf, bufLen);
16✔
5986

5987
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
5988
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
32!
5989
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
32!
5990
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->payloadLen));
32!
5991
  if (pReq->payloadLen > 0) {
16!
5992
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->payload, pReq->payloadLen));
×
5993
  }
5994
  tEndEncode(&encoder);
16✔
5995

5996
_exit:
16✔
5997
  if (code) {
16!
5998
    tlen = code;
×
5999
  } else {
6000
    tlen = encoder.pos;
16✔
6001
  }
6002
  tEncoderClear(&encoder);
16✔
6003
  return tlen;
16✔
6004
}
6005

6006
void tFreeSShowReq(SShowReq *pReq) { taosMemoryFreeClear(pReq->payload); }
8!
6007

6008
int32_t tSerializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
470,039✔
6009
  SEncoder encoder = {0};
470,039✔
6010
  int32_t  code = 0;
470,039✔
6011
  int32_t  lino;
6012
  int32_t  tlen;
6013
  tEncoderInit(&encoder, buf, bufLen);
470,039✔
6014

6015
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
470,372!
6016
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->showId));
940,706!
6017
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
940,706!
6018
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tb));
940,706!
6019
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->filterTb));
940,706!
6020
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
940,706!
6021
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactId));
940,706!
6022
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withFull));
940,706!
6023
  tEndEncode(&encoder);
470,353✔
6024

6025
_exit:
470,245✔
6026
  if (code) {
470,245!
6027
    tlen = code;
×
6028
  } else {
6029
    tlen = encoder.pos;
470,245✔
6030
  }
6031
  tEncoderClear(&encoder);
470,245✔
6032
  return tlen;
469,901✔
6033
}
6034

6035
int32_t tDeserializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
236,232✔
6036
  SDecoder decoder = {0};
236,232✔
6037
  int32_t  code = 0;
236,232✔
6038
  int32_t  lino;
6039

6040
  tDecoderInit(&decoder, buf, bufLen);
236,232✔
6041

6042
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
236,187!
6043
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->showId));
472,667!
6044
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
236,322!
6045
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tb));
236,261!
6046
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->filterTb));
236,314✔
6047
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
236,316!
6048
  if (!tDecodeIsEnd(&decoder)) {
236,213!
6049
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactId));
472,565!
6050
  } else {
6051
    pReq->compactId = -1;
×
6052
  }
6053
  if (!tDecodeIsEnd(&decoder)) {
236,218!
6054
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->withFull));
472,535!
6055
  }
6056
  tEndDecode(&decoder);
236,193✔
6057
_exit:
236,146✔
6058
  tDecoderClear(&decoder);
236,146✔
6059
  return code;
236,222✔
6060
}
6061

6062
static int32_t tEncodeSTableMetaRsp(SEncoder *pEncoder, STableMetaRsp *pRsp) {
4,817,267✔
6063
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->tbName));
9,634,534!
6064
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->stbName));
9,634,534!
6065
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->dbFName));
9,634,534!
6066
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
9,634,534!
6067
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfTags));
9,634,534!
6068
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColumns));
9,634,534!
6069
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->precision));
9,634,534!
6070
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->tableType));
9,634,534!
6071
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->sversion));
9,634,534!
6072
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->tversion));
9,634,534!
6073
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->suid));
9,634,534!
6074
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->tuid));
9,634,534!
6075
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgId));
9,634,534!
6076
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
177,355,585✔
6077
    SSchema *pSchema = &pRsp->pSchemas[i];
172,538,318✔
6078
    TAOS_CHECK_RETURN(tEncodeSSchema(pEncoder, pSchema));
172,538,318!
6079
  }
6080

6081
  if (useCompress(pRsp->tableType)) {
4,817,267✔
6082
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
111,846,189✔
6083
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
107,306,947✔
6084
      TAOS_CHECK_RETURN(tEncodeSSchemaExt(pEncoder, pSchemaExt));
107,306,947!
6085
    }
6086
  }
6087

6088
  return 0;
4,817,808✔
6089
}
6090

6091
static int32_t tDecodeSTableMetaRsp(SDecoder *pDecoder, STableMetaRsp *pRsp) {
193,037✔
6092
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->tbName));
193,037!
6093
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->stbName));
193,036!
6094
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->dbFName));
193,036!
6095
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->dbId));
386,097!
6096
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfTags));
386,073!
6097
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColumns));
386,038!
6098
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->precision));
386,018!
6099
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->tableType));
386,009!
6100
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->sversion));
386,006!
6101
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->tversion));
385,991!
6102
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->suid));
385,963!
6103
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->tuid));
385,960!
6104
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgId));
385,979!
6105

6106
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
192,995✔
6107
  if (totalCols > 0) {
192,995✔
6108
    pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
87,631!
6109
    if (pRsp->pSchemas == NULL) {
87,632!
6110
      TAOS_CHECK_RETURN(terrno);
×
6111
    }
6112

6113
    for (int32_t i = 0; i < totalCols; ++i) {
2,363,187✔
6114
      SSchema *pSchema = &pRsp->pSchemas[i];
2,275,569✔
6115
      TAOS_CHECK_RETURN(tDecodeSSchema(pDecoder, pSchema));
2,275,555!
6116
    }
6117
  } else {
6118
    pRsp->pSchemas = NULL;
105,364✔
6119
  }
6120

6121
  if (!tDecodeIsEnd(pDecoder)) {
192,982✔
6122
    if (useCompress(pRsp->tableType) && pRsp->numOfColumns > 0) {
86,433!
6123
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
85,814!
6124
      if (pRsp->pSchemaExt == NULL) {
85,817!
6125
        TAOS_CHECK_RETURN(terrno);
×
6126
      }
6127

6128
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
2,095,502✔
6129
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
2,009,687✔
6130
        TAOS_CHECK_RETURN(tDecodeSSchemaExt(pDecoder, pSchemaExt));
2,009,685!
6131
      }
6132
    } else {
6133
      pRsp->pSchemaExt = NULL;
617✔
6134
    }
6135
  }
6136

6137
  return 0;
192,981✔
6138
}
6139

6140
int32_t tSerializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
4,508,865✔
6141
  SEncoder encoder = {0};
4,508,865✔
6142
  int32_t  code = 0;
4,508,865✔
6143
  int32_t  lino;
6144
  int32_t  tlen;
6145
  tEncoderInit(&encoder, buf, bufLen);
4,508,865✔
6146

6147
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,509,214!
6148
  TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pRsp));
4,509,824!
6149
  tEndEncode(&encoder);
4,509,977✔
6150

6151
_exit:
4,509,951✔
6152
  if (code) {
4,509,951!
6153
    tlen = code;
×
6154
  } else {
6155
    tlen = encoder.pos;
4,509,951✔
6156
  }
6157
  tEncoderClear(&encoder);
4,509,951✔
6158
  return tlen;
4,509,471✔
6159
}
6160

6161
int32_t tSerializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
141,335✔
6162
  SEncoder encoder = {0};
141,335✔
6163
  int32_t  code = 0;
141,335✔
6164
  int32_t  lino;
6165
  int32_t  tlen;
6166

6167
  tEncoderInit(&encoder, buf, bufLen);
141,335✔
6168

6169
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
141,335!
6170

6171
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
141,334✔
6172
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
141,335!
6173
  for (int32_t i = 0; i < numOfMeta; ++i) {
143,743✔
6174
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
2,408✔
6175
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pMetaRsp));
2,408!
6176
  }
6177

6178
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
141,335✔
6179
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfIndex));
141,334!
6180
  for (int32_t i = 0; i < numOfIndex; ++i) {
141,334!
6181
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
6182
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->tbName));
×
6183
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->dbFName));
×
6184
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, pIndexRsp->suid));
×
6185
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->version));
×
6186
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->indexSize));
×
6187
    int32_t num = taosArrayGetSize(pIndexRsp->pIndex);
×
6188
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
6189
    for (int32_t j = 0; j < num; ++j) {
×
6190
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pIndexRsp->pIndex, j);
×
6191
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
×
6192
    }
6193
  }
6194

6195
  tEndEncode(&encoder);
141,334✔
6196

6197
_exit:
141,334✔
6198
  if (code) {
141,334!
6199
    tlen = code;
×
6200
  } else {
6201
    tlen = encoder.pos;
141,334✔
6202
  }
6203
  tEncoderClear(&encoder);
141,334✔
6204
  return tlen;
141,335✔
6205
}
6206

6207
int32_t tDeserializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
63,189✔
6208
  SDecoder decoder = {0};
63,189✔
6209
  int32_t  code = 0;
63,189✔
6210
  int32_t  lino;
6211

6212
  tDecoderInit(&decoder, buf, bufLen);
63,189✔
6213

6214
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
63,189!
6215
  TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, pRsp));
63,192!
6216

6217
  tEndDecode(&decoder);
63,192✔
6218
_exit:
63,192✔
6219
  tDecoderClear(&decoder);
63,192✔
6220
  return code;
63,191✔
6221
}
6222

6223
int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
6,411✔
6224
  SDecoder decoder = {0};
6,411✔
6225
  int32_t  code = 0;
6,411✔
6226
  int32_t  lino;
6227

6228
  tDecoderInit(&decoder, buf, bufLen);
6,411✔
6229

6230
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6,411!
6231

6232
  int32_t numOfMeta = 0;
6,411✔
6233
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
6,411!
6234
  pRsp->pMetaRsp = taosArrayInit(numOfMeta, sizeof(STableMetaRsp));
6,411✔
6235
  if (pRsp->pMetaRsp == NULL) {
6,411!
6236
    TAOS_CHECK_EXIT(terrno);
×
6237
  }
6238

6239
  for (int32_t i = 0; i < numOfMeta; ++i) {
7,044✔
6240
    STableMetaRsp tableMetaRsp = {0};
633✔
6241
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, &tableMetaRsp));
633!
6242
    if (taosArrayPush(pRsp->pMetaRsp, &tableMetaRsp) == NULL) {
1,266!
6243
      taosMemoryFree(tableMetaRsp.pSchemas);
×
6244
      taosMemoryFree(tableMetaRsp.pSchemaExt);
×
6245
      TAOS_CHECK_EXIT(terrno);
×
6246
    }
6247
  }
6248

6249
  int32_t numOfIndex = 0;
6,411✔
6250
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfIndex));
6,411!
6251

6252
  pRsp->pIndexRsp = taosArrayInit(numOfIndex, sizeof(STableIndexRsp));
6,411✔
6253
  if (pRsp->pIndexRsp == NULL) {
6,411!
6254
    TAOS_CHECK_EXIT(terrno);
×
6255
  }
6256

6257
  for (int32_t i = 0; i < numOfIndex; ++i) {
6,411!
6258
    STableIndexRsp tableIndexRsp = {0};
×
6259
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.tbName));
×
6260
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.dbFName));
×
6261
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &tableIndexRsp.suid));
×
6262
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.version));
×
6263
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.indexSize));
×
6264
    int32_t num = 0;
×
6265
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
6266
    if (num > 0) {
×
6267
      tableIndexRsp.pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
×
6268
      if (NULL == tableIndexRsp.pIndex) {
×
6269
        TAOS_CHECK_EXIT(terrno);
×
6270
      }
6271
      STableIndexInfo info;
6272
      for (int32_t j = 0; j < num; ++j) {
×
6273
        TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
×
6274
        if (NULL == taosArrayPush(tableIndexRsp.pIndex, &info)) {
×
6275
          taosMemoryFree(info.expr);
×
6276
          TAOS_CHECK_EXIT(terrno);
×
6277
        }
6278
      }
6279
    }
6280
    if (taosArrayPush(pRsp->pIndexRsp, &tableIndexRsp) == NULL) {
×
6281
      taosArrayDestroyEx(tableIndexRsp.pIndex, tFreeSTableIndexInfo);
×
6282
      TAOS_CHECK_EXIT(terrno);
×
6283
    }
6284
  }
6285

6286
  tEndDecode(&decoder);
6,411✔
6287

6288
_exit:
6,411✔
6289
  tDecoderClear(&decoder);
6,411✔
6290
  return code;
6,411✔
6291
}
6292

6293
void tFreeSTableMetaRsp(void *pRsp) {
1,127,015✔
6294
  if (NULL == pRsp) {
1,127,015!
6295
    return;
×
6296
  }
6297

6298
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemas);
1,127,015!
6299
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemaExt);
1,127,014!
6300
}
6301

6302
void tFreeSTableIndexRsp(void *info) {
9,279✔
6303
  if (NULL == info) {
9,279!
6304
    return;
×
6305
  }
6306

6307
  STableIndexRsp *pInfo = (STableIndexRsp *)info;
9,279✔
6308

6309
  taosArrayDestroyEx(pInfo->pIndex, tFreeSTableIndexInfo);
9,279✔
6310
}
6311

6312
void tFreeSSTbHbRsp(SSTbHbRsp *pRsp) {
77,078✔
6313
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
77,078✔
6314
  for (int32_t i = 0; i < numOfMeta; ++i) {
78,916✔
6315
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
1,837✔
6316
    tFreeSTableMetaRsp(pMetaRsp);
1,837✔
6317
  }
6318

6319
  taosArrayDestroy(pRsp->pMetaRsp);
77,079✔
6320

6321
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
77,079✔
6322
  for (int32_t i = 0; i < numOfIndex; ++i) {
77,079!
6323
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
6324
    tFreeSTableIndexRsp(pIndexRsp);
×
6325
  }
6326

6327
  taosArrayDestroy(pRsp->pIndexRsp);
77,079✔
6328
}
77,079✔
6329

6330
int32_t tSerializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
195,977✔
6331
  int32_t headLen = sizeof(SMsgHead);
195,977✔
6332
  int32_t code = 0;
195,977✔
6333
  int32_t lino;
6334
  if (buf != NULL) {
195,977✔
6335
    buf = (char *)buf + headLen;
98,006✔
6336
    bufLen -= headLen;
98,006✔
6337
  }
6338

6339
  SEncoder encoder = {0};
195,977✔
6340
  tEncoderInit(&encoder, buf, bufLen);
195,977✔
6341

6342
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
196,009!
6343
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
392,016!
6344
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
392,016!
6345
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->option));
392,016!
6346
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->autoCreateCtb));
392,016!
6347
  tEndEncode(&encoder);
196,008✔
6348

6349
_exit:
195,999✔
6350
  if (code) {
195,999!
6351
    tEncoderClear(&encoder);
×
6352
    return code;
×
6353
  } else {
6354
    int32_t tlen = encoder.pos;
195,999✔
6355
    tEncoderClear(&encoder);
195,999✔
6356

6357
    if (buf != NULL) {
196,003✔
6358
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
98,012✔
6359
      pHead->vgId = htonl(pReq->header.vgId);
98,012✔
6360
      pHead->contLen = htonl(tlen + headLen);
98,012✔
6361
    }
6362

6363
    return tlen + headLen;
196,003✔
6364
  }
6365
}
6366

6367
int32_t tDeserializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
2,290,164✔
6368
  int32_t   headLen = sizeof(SMsgHead);
2,290,164✔
6369
  int32_t   code = 0;
2,290,164✔
6370
  int32_t   lino;
6371
  SMsgHead *pHead = buf;
2,290,164✔
6372
  pHead->vgId = pReq->header.vgId;
2,290,164✔
6373
  pHead->contLen = pReq->header.contLen;
2,290,164✔
6374

6375
  SDecoder decoder = {0};
2,290,164✔
6376
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
2,290,164✔
6377

6378
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,290,466!
6379
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
2,290,802!
6380
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
2,290,584!
6381
  if (!tDecodeIsEnd(&decoder)) {
2,290,637✔
6382
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->option));
4,580,454!
6383
  } else {
6384
    pReq->option = 0;
490✔
6385
  }
6386
  if (!tDecodeIsEnd(&decoder)) {
2,290,797✔
6387
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->autoCreateCtb));
4,580,880!
6388
  } else {
6389
    pReq->autoCreateCtb = 0;
371✔
6390
  }
6391

6392
  tEndDecode(&decoder);
2,290,825✔
6393
_exit:
2,290,374✔
6394
  tDecoderClear(&decoder);
2,290,374✔
6395
  return code;
2,290,794✔
6396
}
6397

6398
int32_t tSerializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
736✔
6399
  SEncoder encoder = {0};
736✔
6400
  int32_t  code = 0;
736✔
6401
  int32_t  lino;
6402
  int32_t  tlen;
6403
  tEncoderInit(&encoder, buf, bufLen);
736✔
6404

6405
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
736!
6406
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
1,472!
6407
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
1,472!
6408
  ENCODESQL();
2,208!
6409
  tEndEncode(&encoder);
736✔
6410

6411
_exit:
736✔
6412
  if (code) {
736!
6413
    tlen = code;
×
6414
  } else {
6415
    tlen = encoder.pos;
736✔
6416
  }
6417
  tEncoderClear(&encoder);
736✔
6418
  return tlen;
736✔
6419
}
6420

6421
int32_t tDeserializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
362✔
6422
  SDecoder decoder = {0};
362✔
6423
  int32_t  code = 0;
362✔
6424
  int32_t  lino;
6425

6426
  tDecoderInit(&decoder, buf, bufLen);
362✔
6427

6428
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
362!
6429
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
362!
6430
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
724!
6431
  DECODESQL();
1,086!
6432
  tEndDecode(&decoder);
362✔
6433

6434
_exit:
362✔
6435
  tDecoderClear(&decoder);
362✔
6436
  return code;
362✔
6437
}
6438

6439
void tFreeSMDropTopicReq(SMDropTopicReq *pReq) { FREESQL(); }
730!
6440

6441
int32_t tSerializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
74✔
6442
  SEncoder encoder = {0};
74✔
6443
  int32_t  code = 0;
74✔
6444
  int32_t  lino;
6445
  int32_t  tlen;
6446
  tEncoderInit(&encoder, buf, bufLen);
74✔
6447

6448
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
74!
6449
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->topic));
148!
6450
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
148!
6451
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
148!
6452
  tEndEncode(&encoder);
74✔
6453

6454
_exit:
74✔
6455
  if (code) {
74!
6456
    tlen = code;
×
6457
  } else {
6458
    tlen = encoder.pos;
74✔
6459
  }
6460
  tEncoderClear(&encoder);
74✔
6461
  return tlen;
74✔
6462
}
6463

6464
int32_t tDeserializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
21✔
6465
  SDecoder decoder = {0};
21✔
6466
  int32_t  code = 0;
21✔
6467
  int32_t  lino;
6468
  tDecoderInit(&decoder, buf, bufLen);
21✔
6469

6470
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
21!
6471
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->topic));
21!
6472
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
21!
6473
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
42!
6474
  tEndDecode(&decoder);
21✔
6475

6476
_exit:
21✔
6477
  tDecoderClear(&decoder);
21✔
6478
  return code;
21✔
6479
}
6480

6481
int32_t tSerializeSCMCreateTopicReq(void *buf, int32_t bufLen, const SCMCreateTopicReq *pReq) {
1,278✔
6482
  SEncoder encoder = {0};
1,278✔
6483
  int32_t  code = 0;
1,278✔
6484
  int32_t  lino;
6485
  int32_t  tlen;
6486
  tEncoderInit(&encoder, buf, bufLen);
1,278✔
6487

6488
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,278!
6489
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
2,556!
6490
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
2,556!
6491
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->subType));
2,556!
6492
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withMeta));
2,556!
6493
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subDbName));
2,556!
6494
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
1,278✔
6495
  } else {
6496
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
1,068✔
6497
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subStbName));
376!
6498
    }
6499
    if (pReq->ast && strlen(pReq->ast) > 0) {
1,068!
6500
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->ast)));
1,936!
6501
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
1,936!
6502
    } else {
6503
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
100!
6504
    }
6505
  }
6506
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->sql)));
2,556!
6507
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
2,556!
6508

6509
  tEndEncode(&encoder);
1,278✔
6510

6511
_exit:
1,278✔
6512
  if (code) {
1,278!
6513
    tlen = code;
×
6514
  } else {
6515
    tlen = encoder.pos;
1,278✔
6516
  }
6517
  tEncoderClear(&encoder);
1,278✔
6518
  return tlen;
1,278✔
6519
}
6520

6521
int32_t tDeserializeSCMCreateTopicReq(void *buf, int32_t bufLen, SCMCreateTopicReq *pReq) {
588✔
6522
  int32_t  sqlLen = 0;
588✔
6523
  int32_t  astLen = 0;
588✔
6524
  int32_t  code = 0;
588✔
6525
  int32_t  lino;
6526
  SDecoder decoder = {0};
588✔
6527
  tDecoderInit(&decoder, buf, bufLen);
588✔
6528

6529
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
588!
6530
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
588!
6531
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
1,176!
6532
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->subType));
1,176!
6533
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withMeta));
1,176!
6534
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subDbName));
588!
6535
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
588✔
6536
  } else {
6537
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
499✔
6538
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subStbName));
65!
6539
    }
6540
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
499!
6541
    if (astLen > 0) {
499✔
6542
      pReq->ast = taosMemoryCalloc(1, astLen + 1);
462!
6543
      if (pReq->ast == NULL) {
462!
6544
        TAOS_CHECK_EXIT(terrno);
×
6545
      }
6546
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
462!
6547
    }
6548
  }
6549
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
588!
6550
  if (sqlLen > 0) {
588!
6551
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
588!
6552
    if (pReq->sql == NULL) {
588!
6553
      TAOS_CHECK_EXIT(terrno);
×
6554
    }
6555
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
588!
6556
  }
6557

6558
  tEndDecode(&decoder);
588✔
6559

6560
_exit:
588✔
6561
  tDecoderClear(&decoder);
588✔
6562
  return code;
588✔
6563
}
6564

6565
void tFreeSCMCreateTopicReq(SCMCreateTopicReq *pReq) {
1,335✔
6566
  taosMemoryFreeClear(pReq->sql);
1,335!
6567
  if (TOPIC_SUB_TYPE__DB != pReq->subType) {
1,335✔
6568
    taosMemoryFreeClear(pReq->ast);
1,141!
6569
  }
6570
}
1,335✔
6571

6572
int32_t tSerializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
30,910✔
6573
  SEncoder encoder = {0};
30,910✔
6574
  int32_t  code = 0;
30,910✔
6575
  int32_t  lino;
6576
  int32_t  tlen;
6577
  tEncoderInit(&encoder, buf, bufLen);
30,910✔
6578

6579
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30,910!
6580
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->connType));
61,820!
6581
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pid));
61,820!
6582
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->app));
61,820!
6583
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
61,820!
6584
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
61,820!
6585
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->passwd, TSDB_PASSWORD_LEN));
61,820!
6586
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->startTime));
61,820!
6587
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sVer));
61,820!
6588
  tEndEncode(&encoder);
30,910✔
6589

6590
_exit:
30,910✔
6591
  if (code) {
30,910!
6592
    tlen = code;
×
6593
  } else {
6594
    tlen = encoder.pos;
30,910✔
6595
  }
6596
  tEncoderClear(&encoder);
30,910✔
6597
  return tlen;
30,910✔
6598
}
6599

6600
int32_t tDeserializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
88,259✔
6601
  SDecoder decoder = {0};
88,259✔
6602
  int32_t  code = 0;
88,259✔
6603
  int32_t  lino;
6604
  tDecoderInit(&decoder, buf, bufLen);
88,259✔
6605

6606
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
88,259!
6607
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->connType));
176,517!
6608
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pid));
176,517!
6609
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->app));
88,259!
6610
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
88,259!
6611
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
88,258!
6612
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->passwd));
88,259!
6613
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->startTime));
176,517!
6614
  // Check the client version from version 3.0.3.0
6615
  if (tDecodeIsEnd(&decoder)) {
88,259!
6616
    tDecoderClear(&decoder);
×
6617
    TAOS_CHECK_EXIT(TSDB_CODE_VERSION_NOT_COMPATIBLE);
×
6618
  }
6619
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sVer));
88,259!
6620
  tEndDecode(&decoder);
88,258✔
6621

6622
_exit:
88,259✔
6623
  tDecoderClear(&decoder);
88,259✔
6624
  return code;
88,258✔
6625
}
6626

6627
int32_t tSerializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
176,492✔
6628
  SEncoder encoder = {0};
176,492✔
6629
  int32_t  code = 0;
176,492✔
6630
  int32_t  lino;
6631
  int32_t  tlen;
6632
  tEncoderInit(&encoder, buf, bufLen);
176,492✔
6633

6634
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
176,492!
6635
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->acctId));
352,982!
6636
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->clusterId));
352,982!
6637
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->connId));
352,982!
6638
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeNum));
352,982!
6639
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->superUser));
352,982!
6640
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->sysInfo));
352,982!
6641
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->connType));
352,982!
6642
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, &pRsp->epSet));
176,491!
6643
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->svrTimestamp));
352,982!
6644
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sVer));
352,982!
6645
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sDetailVer));
352,982!
6646
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->passVer));
352,982!
6647
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->authVer));
352,982!
6648
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->whiteListVer));
352,982!
6649
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pRsp->monitorParas));
176,491!
6650
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->enableAuditDelete));
352,984!
6651
  tEndEncode(&encoder);
176,492✔
6652

6653
_exit:
176,491✔
6654
  if (code) {
176,491!
6655
    tlen = code;
×
6656
  } else {
6657
    tlen = encoder.pos;
176,491✔
6658
  }
6659
  tEncoderClear(&encoder);
176,491✔
6660
  return tlen;
176,490✔
6661
}
6662

6663
int32_t tDeserializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
15,217✔
6664
  SDecoder decoder = {0};
15,217✔
6665
  int32_t  code = 0;
15,217✔
6666
  int32_t  lino;
6667
  tDecoderInit(&decoder, buf, bufLen);
15,217✔
6668

6669
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
15,217!
6670
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->acctId));
30,435!
6671
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->clusterId));
30,435!
6672
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->connId));
30,435!
6673
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeNum));
30,437!
6674
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->superUser));
30,438!
6675
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->sysInfo));
30,438!
6676
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->connType));
30,438!
6677
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &pRsp->epSet));
15,219!
6678
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->svrTimestamp));
30,436!
6679
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sVer));
15,218!
6680
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sDetailVer));
15,218!
6681

6682
  if (!tDecodeIsEnd(&decoder)) {
15,219!
6683
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->passVer));
30,437!
6684
  } else {
6685
    pRsp->passVer = 0;
×
6686
  }
6687
  // since 3.0.7.0
6688
  if (!tDecodeIsEnd(&decoder)) {
15,218!
6689
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->authVer));
30,436!
6690
  } else {
6691
    pRsp->authVer = 0;
×
6692
  }
6693

6694
  if (!tDecodeIsEnd(&decoder)) {
15,218!
6695
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->whiteListVer));
30,438!
6696
  } else {
6697
    pRsp->whiteListVer = 0;
×
6698
  }
6699
  if (!tDecodeIsEnd(&decoder)) {
15,218!
6700
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pRsp->monitorParas));
15,219!
6701
  }
6702
  if (!tDecodeIsEnd(&decoder)) {
15,217!
6703
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->enableAuditDelete));
30,438!
6704
  } else {
6705
    pRsp->enableAuditDelete = 0;
×
6706
  }
6707
  tEndDecode(&decoder);
15,217✔
6708

6709
_exit:
15,218✔
6710
  tDecoderClear(&decoder);
15,218✔
6711
  return code;
15,218✔
6712
}
6713

6714
int32_t tSerializeSMTimerMsg(void *buf, int32_t bufLen, SMTimerReq *pReq) {
299,854✔
6715
  SEncoder encoder = {0};
299,854✔
6716
  int32_t  code = 0;
299,854✔
6717
  int32_t  lino;
6718
  int32_t  tlen;
6719
  tEncoderInit(&encoder, buf, bufLen);
299,854✔
6720

6721
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
299,854!
6722
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
599,708!
6723
  tEndEncode(&encoder);
299,854✔
6724

6725
_exit:
299,854✔
6726
  if (code) {
299,854!
6727
    tlen = code;
×
6728
  } else {
6729
    tlen = encoder.pos;
299,854✔
6730
  }
6731
  tEncoderClear(&encoder);
299,854✔
6732
  return tlen;
299,854✔
6733
}
6734

6735
int32_t tSerializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
6✔
6736
  SEncoder encoder = {0};
6✔
6737
  int32_t  code = 0;
6✔
6738
  int32_t  lino;
6739
  int32_t  tlen;
6740
  tEncoderInit(&encoder, buf, bufLen);
6✔
6741

6742
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
6743

6744
  int32_t size = taosArrayGetSize(pMsg->pList);
6✔
6745
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
6!
6746

6747
  for (int32_t i = 0; i < size; i++) {
12✔
6748
    SOrphanTask *pTask = taosArrayGet(pMsg->pList, i);
6✔
6749
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pTask->streamId));
12!
6750
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->taskId));
12!
6751
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->nodeId));
12!
6752
  }
6753

6754
  tEndEncode(&encoder);
6✔
6755

6756
_exit:
6✔
6757
  if (code) {
6!
6758
    tlen = code;
×
6759
  } else {
6760
    tlen = encoder.pos;
6✔
6761
  }
6762
  tEncoderClear(&encoder);
6✔
6763
  return tlen;
6✔
6764
}
6765

6766
int32_t tDeserializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
3✔
6767
  SDecoder decoder = {0};
3✔
6768
  int32_t  code = 0;
3✔
6769
  int32_t  lino;
6770
  tDecoderInit(&decoder, buf, bufLen);
3✔
6771

6772
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
6773

6774
  int32_t num = 0;
3✔
6775
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
3!
6776

6777
  if (num > 0) {
3!
6778
    pMsg->pList = taosArrayInit(num, sizeof(SOrphanTask));
3✔
6779
    if (NULL == pMsg->pList) {
3!
6780
      TAOS_CHECK_EXIT(terrno);
×
6781
    }
6782
    for (int32_t i = 0; i < num; ++i) {
6✔
6783
      SOrphanTask info = {0};
3✔
6784
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &info.streamId));
3!
6785
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.taskId));
3!
6786
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.nodeId));
3!
6787

6788
      if (taosArrayPush(pMsg->pList, &info) == NULL) {
6!
6789
        TAOS_CHECK_EXIT(terrno);
×
6790
      }
6791
    }
6792
  }
6793

6794
  tEndDecode(&decoder);
3✔
6795
_exit:
3✔
6796
  tDecoderClear(&decoder);
3✔
6797
  return code;
3✔
6798
}
6799

6800
void tDestroyDropOrphanTaskMsg(SMStreamDropOrphanMsg *pMsg) {
3✔
6801
  if (pMsg == NULL) {
3!
6802
    return;
×
6803
  }
6804

6805
  taosArrayDestroy(pMsg->pList);
3✔
6806
}
6807

6808
int32_t tEncodeSReplica(SEncoder *pEncoder, SReplica *pReplica) {
339,810✔
6809
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReplica->id));
679,620!
6810
  TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pReplica->port));
679,620!
6811
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReplica->fqdn));
679,620!
6812
  return 0;
339,810✔
6813
}
6814

6815
int32_t tDecodeSReplica(SDecoder *pDecoder, SReplica *pReplica) {
222,634✔
6816
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReplica->id));
445,164!
6817
  TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pReplica->port));
444,852!
6818
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReplica->fqdn));
222,322✔
6819
  return 0;
222,905✔
6820
}
6821

6822
int32_t tSerializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
19,582✔
6823
  SEncoder encoder = {0};
19,582✔
6824
  int32_t  code = 0;
19,582✔
6825
  int32_t  lino;
6826
  int32_t  tlen;
6827
  tEncoderInit(&encoder, buf, bufLen);
19,582✔
6828

6829
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
19,582!
6830
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
39,164!
6831
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
39,164!
6832
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
39,164!
6833
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
39,164!
6834
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
39,164!
6835
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
39,164!
6836
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
39,164!
6837
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
39,164!
6838
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
39,164!
6839
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
39,164!
6840
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
39,164!
6841
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
39,164!
6842
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
39,164!
6843
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
39,164!
6844
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
39,164!
6845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
39,164!
6846
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashBegin));
39,164!
6847
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashEnd));
39,164!
6848
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->hashMethod));
39,164!
6849
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
39,164!
6850
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
39,164!
6851
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
39,164!
6852
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
39,164!
6853
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
39,164!
6854
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
39,164!
6855
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
39,164!
6856
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
117,492✔
6857
    SReplica *pReplica = &pReq->replicas[i];
97,910✔
6858
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
97,910!
6859
  }
6860
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
39,164!
6861
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
19,618✔
6862
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
36✔
6863
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
72!
6864
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
72!
6865
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
72!
6866
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
72!
6867
  }
6868

6869
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isTsma));
39,164!
6870
  if (pReq->isTsma) {
19,582✔
6871
    uint32_t tsmaLen = (uint32_t)(htonl(((SMsgHead *)pReq->pTsma)->contLen));
52✔
6872
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pTsma, tsmaLen));
104!
6873
  }
6874
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
39,164!
6875
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
39,164!
6876
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
39,164!
6877
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
39,164!
6878
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sstTrigger));
39,164!
6879
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
39,164!
6880
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
39,164!
6881
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
39,164!
6882
  for (int32_t i = 0; i < 6; ++i) {
137,074✔
6883
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
234,984!
6884
  }
6885
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
39,164!
6886
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
39,164!
6887
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
215,402✔
6888
    SReplica *pReplica = &pReq->learnerReplicas[i];
195,820✔
6889
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
195,820!
6890
  }
6891
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
39,164!
6892
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
39,164!
6893
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
39,164!
6894
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
39,164!
6895
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
39,164!
6896
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
39,164!
6897

6898
  tEndEncode(&encoder);
19,582✔
6899

6900
_exit:
19,582✔
6901
  if (code) {
19,582!
6902
    tlen = code;
×
6903
  } else {
6904
    tlen = encoder.pos;
19,582✔
6905
  }
6906
  tEncoderClear(&encoder);
19,582✔
6907
  return tlen;
19,582✔
6908
}
6909

6910
int32_t tDeserializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
9,834✔
6911
  SDecoder decoder = {0};
9,834✔
6912
  int32_t  code = 0;
9,834✔
6913
  int32_t  lino;
6914

6915
  tDecoderInit(&decoder, buf, bufLen);
9,834✔
6916

6917
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,840!
6918
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
19,677!
6919
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
9,833!
6920
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
19,671!
6921
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
19,671!
6922
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
19,684!
6923
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
19,681!
6924
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
19,670!
6925
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
19,671!
6926
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
19,679!
6927
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
19,677!
6928
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
19,649!
6929
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
19,640!
6930
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
19,655!
6931
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
19,652!
6932
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
19,641!
6933
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
19,645!
6934
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashBegin));
19,658!
6935
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashEnd));
19,657!
6936
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->hashMethod));
19,649!
6937
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
19,642!
6938
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
19,646!
6939
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
19,652!
6940
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
19,650!
6941
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
19,650!
6942
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
19,653!
6943
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
19,648!
6944
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
58,839✔
6945
    SReplica *pReplica = &pReq->replicas[i];
48,942✔
6946
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
48,942!
6947
  }
6948
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
19,742!
6949
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
9,845✔
6950
  if (pReq->pRetensions == NULL) {
9,823✔
6951
    TAOS_CHECK_EXIT(terrno);
8!
6952
  }
6953

6954
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
9,833✔
6955
    SRetention rentension = {0};
18✔
6956
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
18!
6957
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
18!
6958
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
17!
6959
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
17!
6960
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
35!
6961
      TAOS_CHECK_EXIT(terrno);
×
6962
    }
6963
  }
6964

6965
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isTsma));
19,620!
6966
  if (pReq->isTsma) {
9,805✔
6967
    TAOS_CHECK_EXIT(tDecodeBinary(&decoder, (uint8_t **)&pReq->pTsma, NULL));
52!
6968
  }
6969

6970
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
19,621!
6971
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
19,616!
6972
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
19,618!
6973
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
19,636!
6974
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sstTrigger));
19,623!
6975
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
19,611!
6976
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
19,618!
6977
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
19,617!
6978
  for (int32_t i = 0; i < 6; ++i) {
68,364✔
6979
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
117,089!
6980
  }
6981
  if (!tDecodeIsEnd(&decoder)) {
9,834✔
6982
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
19,586!
6983
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
19,594!
6984
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
107,745✔
6985
      SReplica *pReplica = &pReq->learnerReplicas[i];
97,785✔
6986
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
97,785!
6987
    }
6988
  }
6989
  if (!tDecodeIsEnd(&decoder)) {
9,998✔
6990
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
19,678!
6991
  }
6992
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
9,992✔
6993
  if (!tDecodeIsEnd(&decoder)) {
9,992✔
6994
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
19,674!
6995
  }
6996
  pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
9,992✔
6997
  pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
9,992✔
6998
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
9,992✔
6999
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
9,992✔
7000
  if (!tDecodeIsEnd(&decoder)) {
9,992✔
7001
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
19,650!
7002
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
19,627!
7003
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
19,616!
7004
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
19,610!
7005
  }
7006

7007
  tEndDecode(&decoder);
9,963✔
7008

7009
_exit:
9,792✔
7010
  tDecoderClear(&decoder);
9,792✔
7011
  return code;
9,800✔
7012
}
7013

7014
int32_t tFreeSCreateVnodeReq(SCreateVnodeReq *pReq) {
9,852✔
7015
  taosArrayDestroy(pReq->pRetensions);
9,852✔
7016
  pReq->pRetensions = NULL;
9,852✔
7017
  return 0;
9,852✔
7018
}
7019

7020
int32_t tSerializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
84✔
7021
  SEncoder encoder = {0};
84✔
7022
  int32_t  code = 0;
84✔
7023
  int32_t  lino;
7024
  int32_t  tlen;
7025
  tEncoderInit(&encoder, buf, bufLen);
84✔
7026

7027
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
84!
7028

7029
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
168!
7030
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
168!
7031
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
168!
7032

7033
  tEndEncode(&encoder);
84✔
7034

7035
_exit:
84✔
7036
  if (code) {
84!
7037
    tlen = code;
×
7038
  } else {
7039
    tlen = encoder.pos;
84✔
7040
  }
7041
  tEncoderClear(&encoder);
84✔
7042
  return tlen;
84✔
7043
}
7044

7045
int32_t tDeserializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
48✔
7046
  int32_t  headLen = sizeof(SMsgHead);
48✔
7047
  SDecoder decoder = {0};
48✔
7048
  int32_t  code = 0;
48✔
7049
  int32_t  lino;
7050
  tDecoderInit(&decoder, ((uint8_t *)buf) + headLen, bufLen - headLen);
48✔
7051

7052
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
48!
7053
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
96!
7054
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
96!
7055
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
96!
7056

7057
  tEndDecode(&decoder);
48✔
7058
_exit:
48✔
7059
  tDecoderClear(&decoder);
48✔
7060
  return code;
48✔
7061
}
7062

7063
int32_t tSerializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
96✔
7064
  SEncoder encoder = {0};
96✔
7065
  int32_t  code = 0;
96✔
7066
  int32_t  lino;
7067
  int32_t  tlen;
7068
  tEncoderInit(&encoder, buf, bufLen);
96✔
7069

7070
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
96!
7071
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
192!
7072
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
192!
7073
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
192!
7074
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numberFileset));
192!
7075
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->finished));
192!
7076
  // 1. add progress and remaining time
7077
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->progress));
192!
7078
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->remainingTime));
192!
7079

7080
  tEndEncode(&encoder);
96✔
7081

7082
_exit:
96✔
7083
  if (code) {
96!
7084
    tlen = code;
×
7085
  } else {
7086
    tlen = encoder.pos;
96✔
7087
  }
7088
  tEncoderClear(&encoder);
96✔
7089
  return tlen;
96✔
7090
}
7091
int32_t tDeserializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
42✔
7092
  SDecoder decoder = {0};
42✔
7093
  int32_t  code = 0;
42✔
7094
  int32_t  lino;
7095
  tDecoderInit(&decoder, buf, bufLen);
42✔
7096

7097
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
42!
7098
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
84!
7099
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
84!
7100
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
84!
7101
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numberFileset));
84!
7102
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->finished));
84!
7103
  // 1. decode progress and remaining time
7104
  if (!tDecodeIsEnd(&decoder)) {
42!
7105
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->progress));
84!
7106
    TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->remainingTime));
84!
7107
  } else {
7108
    pReq->progress = 0;
×
7109
    pReq->remainingTime = 0;
×
7110
  }
7111

7112
  tEndDecode(&decoder);
42✔
7113
_exit:
42✔
7114
  tDecoderClear(&decoder);
42✔
7115
  return code;
42✔
7116
}
7117

7118
int32_t tSerializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
28,692✔
7119
  SEncoder encoder = {0};
28,692✔
7120
  int32_t  code = 0;
28,692✔
7121
  int32_t  lino;
7122
  int32_t  tlen;
7123
  tEncoderInit(&encoder, buf, bufLen);
28,692✔
7124

7125
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
28,692!
7126
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
57,384!
7127
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
57,384!
7128
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
57,384!
7129
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
57,384!
7130
  for (int32_t i = 0; i < 8; ++i) {
258,228✔
7131
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
459,072!
7132
  }
7133
  tEndEncode(&encoder);
28,692✔
7134

7135
_exit:
28,692✔
7136
  if (code) {
28,692!
7137
    tlen = code;
×
7138
  } else {
7139
    tlen = encoder.pos;
28,692✔
7140
  }
7141
  tEncoderClear(&encoder);
28,692✔
7142
  return tlen;
28,692✔
7143
}
7144

7145
int32_t tDeserializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
4,839✔
7146
  SDecoder decoder = {0};
4,839✔
7147
  int32_t  code = 0;
4,839✔
7148
  int32_t  lino;
7149
  tDecoderInit(&decoder, buf, bufLen);
4,839✔
7150

7151
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,839!
7152
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
9,678!
7153
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
9,678!
7154
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
9,678!
7155
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4,839!
7156
  for (int32_t i = 0; i < 8; ++i) {
43,551✔
7157
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
77,424!
7158
  }
7159
  tEndDecode(&decoder);
4,839✔
7160

7161
_exit:
4,839✔
7162
  tDecoderClear(&decoder);
4,839✔
7163
  return code;
4,839✔
7164
}
7165
int32_t tSerializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
4,288✔
7166
  SEncoder encoder = {0};
4,288✔
7167
  int32_t  code = 0;
4,288✔
7168
  int32_t  lino;
7169
  int32_t  tlen;
7170
  tEncoderInit(&encoder, buf, bufLen);
4,288✔
7171

7172
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,288!
7173
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
8,576!
7174
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
8,576!
7175
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stbUid));
8,576!
7176
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
8,576!
7177
  for (int32_t i = 0; i < 8; ++i) {
38,592✔
7178
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
68,608!
7179
  }
7180
  tEndEncode(&encoder);
4,288✔
7181

7182
_exit:
4,288✔
7183
  if (code) {
4,288!
7184
    tlen = code;
×
7185
  } else {
7186
    tlen = encoder.pos;
4,288✔
7187
  }
7188
  tEncoderClear(&encoder);
4,288✔
7189
  return tlen;
4,288✔
7190
}
7191

7192
int32_t tDeserializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
2,144✔
7193
  SDecoder decoder = {0};
2,144✔
7194
  int32_t  code = 0;
2,144✔
7195
  int32_t  lino;
7196
  tDecoderInit(&decoder, buf, bufLen);
2,144✔
7197

7198
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,144!
7199
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
2,144!
7200
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
2,144!
7201
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stbUid));
4,288!
7202
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
4,288!
7203
  for (int32_t i = 0; i < 8; ++i) {
19,296✔
7204
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
34,304!
7205
  }
7206
  tEndDecode(&decoder);
2,144✔
7207

7208
_exit:
2,144✔
7209
  tDecoderClear(&decoder);
2,144✔
7210
  return code;
2,144✔
7211
}
7212

7213
int32_t tSerializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
56✔
7214
  SEncoder encoder = {0};
56✔
7215
  int32_t  code = 0;
56✔
7216
  int32_t  lino;
7217
  int32_t  tlen;
7218
  tEncoderInit(&encoder, buf, bufLen);
56✔
7219

7220
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
56!
7221
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
112!
7222
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
112!
7223
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactStartTime));
112!
7224

7225
  // 1.1 add tw.skey and tw.ekey
7226
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.skey));
112!
7227
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.ekey));
112!
7228

7229
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
112!
7230
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
112!
7231

7232
  tEndEncode(&encoder);
56✔
7233

7234
_exit:
56✔
7235
  if (code) {
56!
7236
    tlen = code;
×
7237
  } else {
7238
    tlen = encoder.pos;
56✔
7239
  }
7240
  tEncoderClear(&encoder);
56✔
7241
  return tlen;
56✔
7242
}
7243

7244
int32_t tDeserializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
30✔
7245
  SDecoder decoder = {0};
30✔
7246
  int32_t  code = 0;
30✔
7247
  int32_t  lino;
7248
  tDecoderInit(&decoder, buf, bufLen);
30✔
7249

7250
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
30!
7251
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
60!
7252
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
30!
7253
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactStartTime));
60!
7254

7255
  // 1.1
7256
  if (tDecodeIsEnd(&decoder)) {
30!
7257
    pReq->tw.skey = TSKEY_MIN;
×
7258
    pReq->tw.ekey = TSKEY_MAX;
×
7259
  } else {
7260
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.skey));
60!
7261
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.ekey));
60!
7262
  }
7263

7264
  if (!tDecodeIsEnd(&decoder)) {
30!
7265
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
60!
7266
  }
7267

7268
  if (!tDecodeIsEnd(&decoder)) {
30!
7269
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
60!
7270
  } else {
7271
    pReq->metaOnly = false;
×
7272
  }
7273

7274
  tEndDecode(&decoder);
30✔
7275
_exit:
30✔
7276
  tDecoderClear(&decoder);
30✔
7277
  return code;
30✔
7278
}
7279

7280
int32_t tSerializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
×
7281
  SEncoder encoder = {0};
×
7282
  int32_t  code = 0;
×
7283
  int32_t  lino;
7284
  int32_t  tlen;
7285
  tEncoderInit(&encoder, buf, bufLen);
×
7286

7287
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7288
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
7289
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
7290
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
7291

7292
  tEndEncode(&encoder);
×
7293

7294
_exit:
×
7295
  if (code) {
×
7296
    tlen = code;
×
7297
  } else {
7298
    tlen = encoder.pos;
×
7299
  }
7300
  tEncoderClear(&encoder);
×
7301
  return tlen;
×
7302
}
7303

7304
int32_t tDeserializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
×
7305
  int32_t  code = 0;
×
7306
  int32_t  lino;
7307
  SDecoder decoder = {0};
×
7308

7309
  tDecoderInit(&decoder, buf, bufLen);
×
7310

7311
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7312
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
7313
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
7314
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
7315
  tEndDecode(&decoder);
×
7316

7317
_exit:
×
7318
  tDecoderClear(&decoder);
×
7319
  return code;
×
7320
}
7321

7322
int32_t tSerializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
870✔
7323
  int32_t  code = 0;
870✔
7324
  int32_t  lino;
7325
  int32_t  tlen;
7326
  SEncoder encoder = {0};
870✔
7327

7328
  tEncoderInit(&encoder, buf, bufLen);
870✔
7329

7330
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
870!
7331
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
1,740!
7332
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
1,740!
7333
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
1,740!
7334
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
1,740!
7335
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
1,740!
7336
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
1,740!
7337
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
1,740!
7338
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
1,740!
7339
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
1,740!
7340
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
1,740!
7341
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
1,740!
7342
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
1,740!
7343
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
1,740!
7344
  for (int32_t i = 0; i < 7; ++i) {
6,960✔
7345
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
12,180!
7346
  }
7347

7348
  // 1st modification
7349
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sttTrigger));
1,740!
7350
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
1,740!
7351
  // 2nd modification
7352
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
1,740!
7353
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
1,740!
7354
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
1,740!
7355

7356
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
1,740!
7357
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
1,740!
7358

7359
  tEndEncode(&encoder);
870✔
7360

7361
_exit:
870✔
7362
  if (code) {
870!
7363
    tlen = code;
×
7364
  } else {
7365
    tlen = encoder.pos;
870✔
7366
  }
7367
  tEncoderClear(&encoder);
870✔
7368
  return tlen;
870✔
7369
}
7370

7371
int32_t tDeserializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
632✔
7372
  SDecoder decoder = {0};
632✔
7373
  int32_t  code = 0;
632✔
7374
  int32_t  lino;
7375
  tDecoderInit(&decoder, buf, bufLen);
632✔
7376

7377
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
632!
7378
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
1,264!
7379
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
1,264!
7380
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
1,264!
7381
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
1,264!
7382
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
1,264!
7383
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
1,263!
7384
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
1,262!
7385
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
1,262!
7386
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
1,263!
7387
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
1,264!
7388
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
1,264!
7389
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
1,264!
7390
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
1,263!
7391
  for (int32_t i = 0; i < 7; ++i) {
5,048✔
7392
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
8,833!
7393
  }
7394

7395
  // 1st modification
7396
  if (tDecodeIsEnd(&decoder)) {
632!
7397
    pReq->sttTrigger = -1;
×
7398
    pReq->minRows = -1;
×
7399
  } else {
7400
    TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sttTrigger));
1,264!
7401
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
1,264!
7402
  }
7403

7404
  // 2n modification
7405
  if (tDecodeIsEnd(&decoder)) {
632!
7406
    pReq->walRetentionPeriod = -1;
×
7407
    pReq->walRetentionSize = -1;
×
7408
  } else {
7409
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
1,264!
7410
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
1,264!
7411
  }
7412
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
632✔
7413
  if (!tDecodeIsEnd(&decoder)) {
632!
7414
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
1,264!
7415
  }
7416

7417
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
632✔
7418
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
632✔
7419
  if (!tDecodeIsEnd(&decoder)) {
632!
7420
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal) < 0);
1,264!
7421
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact) < 0);
1,264!
7422
  }
7423

7424
  tEndDecode(&decoder);
632✔
7425

7426
_exit:
632✔
7427
  tDecoderClear(&decoder);
632✔
7428
  return code;
632✔
7429
}
7430

7431
int32_t tSerializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
2,720✔
7432
  SEncoder encoder = {0};
2,720✔
7433
  int32_t  code = 0;
2,720✔
7434
  int32_t  lino;
7435
  int32_t  tlen;
7436
  tEncoderInit(&encoder, buf, bufLen);
2,720✔
7437

7438
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,720!
7439
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
5,440!
7440
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
5,440!
7441
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
5,440!
7442
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
5,440!
7443
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
16,320✔
7444
    SReplica *pReplica = &pReq->replicas[i];
13,600✔
7445
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
13,600!
7446
  }
7447
  for (int32_t i = 0; i < 8; ++i) {
24,480✔
7448
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
43,520!
7449
  }
7450
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
5,440!
7451
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
5,440!
7452
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
29,920✔
7453
    SReplica *pReplica = &pReq->learnerReplicas[i];
27,200✔
7454
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
27,200!
7455
  }
7456
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
5,440!
7457
  tEndEncode(&encoder);
2,720✔
7458

7459
_exit:
2,720✔
7460
  if (code) {
2,720!
7461
    tlen = code;
×
7462
  } else {
7463
    tlen = encoder.pos;
2,720✔
7464
  }
7465
  tEncoderClear(&encoder);
2,720✔
7466
  return tlen;
2,720✔
7467
}
7468

7469
int32_t tDeserializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
4,910✔
7470
  SDecoder decoder = {0};
4,910✔
7471
  int32_t  code = 0;
4,910✔
7472
  int32_t  lino;
7473
  tDecoderInit(&decoder, buf, bufLen);
4,910✔
7474

7475
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,910!
7476
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
9,820!
7477
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
9,820!
7478
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
9,820!
7479
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
9,820!
7480
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
29,460✔
7481
    SReplica *pReplica = &pReq->replicas[i];
24,550✔
7482
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
24,550!
7483
  }
7484
  for (int32_t i = 0; i < 8; ++i) {
44,190✔
7485
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
78,560!
7486
  }
7487
  if (!tDecodeIsEnd(&decoder)) {
4,910!
7488
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
9,820!
7489
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
9,820!
7490
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
54,010✔
7491
      SReplica *pReplica = &pReq->learnerReplicas[i];
49,100✔
7492
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
49,100!
7493
    }
7494
  }
7495
  if (!tDecodeIsEnd(&decoder)) {
4,910!
7496
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
9,820!
7497
  }
7498

7499
  tEndDecode(&decoder);
4,910✔
7500
_exit:
4,910✔
7501
  tDecoderClear(&decoder);
4,910✔
7502
  return code;
4,910✔
7503
}
7504

7505
int32_t tSerializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
108✔
7506
  SEncoder encoder = {0};
108✔
7507
  int32_t  code = 0;
108✔
7508
  int32_t  lino;
7509
  int32_t  tlen;
7510
  tEncoderInit(&encoder, buf, bufLen);
108✔
7511

7512
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
108!
7513
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
216!
7514
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->disable));
216!
7515

7516
  tEndEncode(&encoder);
108✔
7517

7518
_exit:
108✔
7519
  if (code) {
108!
7520
    tlen = code;
×
7521
  } else {
7522
    tlen = encoder.pos;
108✔
7523
  }
7524
  tEncoderClear(&encoder);
108✔
7525
  return tlen;
108✔
7526
}
7527

7528
int32_t tDeserializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
32✔
7529
  SDecoder decoder = {0};
32✔
7530
  int32_t  code = 0;
32✔
7531
  int32_t  lino;
7532
  tDecoderInit(&decoder, buf, bufLen);
32✔
7533

7534
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
32!
7535
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
64!
7536
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->disable));
64!
7537

7538
  tEndDecode(&decoder);
32✔
7539
_exit:
32✔
7540
  tDecoderClear(&decoder);
32✔
7541
  return code;
32✔
7542
}
7543

7544
int32_t tSerializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
108✔
7545
  SEncoder encoder = {0};
108✔
7546
  int32_t  code = 0;
108✔
7547
  int32_t  lino;
7548
  int32_t  tlen;
7549
  tEncoderInit(&encoder, buf, bufLen);
108✔
7550

7551
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
108!
7552
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->srcVgId));
216!
7553
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
216!
7554
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashBegin));
216!
7555
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashEnd));
216!
7556
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
216!
7557
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
216!
7558

7559
  tEndEncode(&encoder);
108✔
7560

7561
_exit:
108✔
7562
  if (code) {
108!
7563
    tlen = code;
×
7564
  } else {
7565
    tlen = encoder.pos;
108✔
7566
  }
7567
  tEncoderClear(&encoder);
108✔
7568
  return tlen;
108✔
7569
}
7570

7571
int32_t tDeserializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
32✔
7572
  SDecoder decoder = {0};
32✔
7573
  int32_t  code = 0;
32✔
7574
  int32_t  lino;
7575
  tDecoderInit(&decoder, buf, bufLen);
32✔
7576

7577
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
32!
7578
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->srcVgId));
64!
7579
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
64!
7580
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashBegin));
64!
7581
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashEnd));
64!
7582
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
64!
7583
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
64!
7584

7585
  tEndDecode(&decoder);
32✔
7586
_exit:
32✔
7587
  tDecoderClear(&decoder);
32✔
7588
  return code;
32✔
7589
}
7590

7591
int32_t tSerializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
8✔
7592
  SEncoder encoder = {0};
8✔
7593
  int32_t  code = 0;
8✔
7594
  int32_t  lino;
7595
  int32_t  tlen;
7596
  tEncoderInit(&encoder, buf, bufLen);
8✔
7597

7598
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
7599
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->queryStrId));
16!
7600
  tEndEncode(&encoder);
8✔
7601

7602
_exit:
8✔
7603
  if (code) {
8!
7604
    tlen = code;
×
7605
  } else {
7606
    tlen = encoder.pos;
8✔
7607
  }
7608
  tEncoderClear(&encoder);
8✔
7609
  return tlen;
8✔
7610
}
7611

7612
int32_t tDeserializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
4✔
7613
  SDecoder decoder = {0};
4✔
7614
  int32_t  code = 0;
4✔
7615
  int32_t  lino;
7616
  tDecoderInit(&decoder, buf, bufLen);
4✔
7617

7618
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
7619
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->queryStrId));
4!
7620
  tEndDecode(&decoder);
4✔
7621

7622
_exit:
4✔
7623
  tDecoderClear(&decoder);
4✔
7624
  return code;
4✔
7625
}
7626

7627
int32_t tSerializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
10✔
7628
  SEncoder encoder = {0};
10✔
7629
  int32_t  code = 0;
10✔
7630
  int32_t  lino;
7631
  int32_t  tlen;
7632
  tEncoderInit(&encoder, buf, bufLen);
10✔
7633

7634
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
7635
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->connId));
20!
7636
  tEndEncode(&encoder);
10✔
7637

7638
_exit:
10✔
7639
  if (code) {
10!
7640
    tlen = code;
×
7641
  } else {
7642
    tlen = encoder.pos;
10✔
7643
  }
7644
  tEncoderClear(&encoder);
10✔
7645
  return tlen;
10✔
7646
}
7647

7648
int32_t tDeserializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
5✔
7649
  SDecoder decoder = {0};
5✔
7650
  int32_t  code = 0;
5✔
7651
  int32_t  lino;
7652
  tDecoderInit(&decoder, buf, bufLen);
5✔
7653

7654
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5!
7655
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->connId));
10!
7656
  tEndDecode(&decoder);
5✔
7657

7658
_exit:
5✔
7659
  tDecoderClear(&decoder);
5✔
7660
  return code;
5✔
7661
}
7662

7663
int32_t tSerializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
2✔
7664
  SEncoder encoder = {0};
2✔
7665
  int32_t  code = 0;
2✔
7666
  int32_t  lino;
7667
  int32_t  tlen;
7668
  tEncoderInit(&encoder, buf, bufLen);
2✔
7669

7670
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
7671
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->transId));
4!
7672
  tEndEncode(&encoder);
2✔
7673

7674
_exit:
2✔
7675
  if (code) {
2!
7676
    tlen = code;
×
7677
  } else {
7678
    tlen = encoder.pos;
2✔
7679
  }
7680
  tEncoderClear(&encoder);
2✔
7681
  return tlen;
2✔
7682
}
7683

7684
int32_t tDeserializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
1✔
7685
  SDecoder decoder = {0};
1✔
7686
  int32_t  code = 0;
1✔
7687
  int32_t  lino;
7688
  tDecoderInit(&decoder, buf, bufLen);
1✔
7689

7690
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
7691
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->transId));
2!
7692
  tEndDecode(&decoder);
1✔
7693

7694
_exit:
1✔
7695
  tDecoderClear(&decoder);
1✔
7696
  return code;
1✔
7697
}
7698

7699
int32_t tSerializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
70✔
7700
  SEncoder encoder = {0};
70✔
7701
  int32_t  code = 0;
70✔
7702
  int32_t  lino;
7703
  int32_t  tlen;
7704
  tEncoderInit(&encoder, buf, bufLen);
70✔
7705

7706
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
70!
7707
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
140!
7708
  ENCODESQL();
210!
7709
  tEndEncode(&encoder);
70✔
7710

7711
_exit:
70✔
7712
  if (code) {
70!
7713
    tlen = code;
×
7714
  } else {
7715
    tlen = encoder.pos;
70✔
7716
  }
7717
  tEncoderClear(&encoder);
70✔
7718
  return tlen;
70✔
7719
}
7720

7721
int32_t tDeserializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
27✔
7722
  SDecoder decoder = {0};
27✔
7723
  int32_t  code = 0;
27✔
7724
  int32_t  lino;
7725
  tDecoderInit(&decoder, buf, bufLen);
27✔
7726

7727
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
27!
7728
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
54!
7729
  DECODESQL();
81!
7730
  tEndDecode(&decoder);
27✔
7731

7732
_exit:
27✔
7733
  tDecoderClear(&decoder);
27✔
7734
  return code;
27✔
7735
}
7736

7737
void tFreeSBalanceVgroupReq(SBalanceVgroupReq *pReq) { FREESQL(); }
62!
7738

7739
int32_t tSerializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
2✔
7740
  SEncoder encoder = {0};
2✔
7741
  int32_t  code = 0;
2✔
7742
  int32_t  lino;
7743
  int32_t  tlen;
7744
  tEncoderInit(&encoder, buf, bufLen);
2✔
7745

7746
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
7747
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
4!
7748
  ENCODESQL();
6!
7749
  tEndEncode(&encoder);
2✔
7750

7751
_exit:
2✔
7752
  if (code) {
2!
7753
    tlen = code;
×
7754
  } else {
7755
    tlen = encoder.pos;
2✔
7756
  }
7757
  tEncoderClear(&encoder);
2✔
7758
  return tlen;
2✔
7759
}
7760

7761
int32_t tDeserializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
×
7762
  SDecoder decoder = {0};
×
7763
  int32_t  code = 0;
×
7764
  int32_t  lino;
7765
  tDecoderInit(&decoder, buf, bufLen);
×
7766

7767
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7768
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
×
7769
  DECODESQL();
×
7770
  tEndDecode(&decoder);
×
7771

7772
_exit:
×
7773
  tDecoderClear(&decoder);
×
7774
  return code;
×
7775
}
7776

7777
void tFreeSAssignLeaderReq(SAssignLeaderReq *pReq) { FREESQL(); }
1!
7778

7779
int32_t tSerializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
46✔
7780
  SEncoder encoder = {0};
46✔
7781
  int32_t  code = 0;
46✔
7782
  int32_t  lino;
7783
  int32_t  tlen;
7784
  tEncoderInit(&encoder, buf, bufLen);
46✔
7785

7786
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
46!
7787
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
92!
7788
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
92!
7789
  ENCODESQL();
138!
7790
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
92!
7791

7792
  tEndEncode(&encoder);
46✔
7793

7794
_exit:
46✔
7795
  if (code) {
46!
7796
    tlen = code;
×
7797
  } else {
7798
    tlen = encoder.pos;
46✔
7799
  }
7800
  tEncoderClear(&encoder);
46✔
7801
  return tlen;
46✔
7802
}
7803

7804
int32_t tDeserializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
13✔
7805
  SDecoder decoder = {0};
13✔
7806
  int32_t  code = 0;
13✔
7807
  int32_t  lino;
7808
  tDecoderInit(&decoder, buf, bufLen);
13✔
7809

7810
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
13!
7811
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
26!
7812
  if (!tDecodeIsEnd(&decoder)) {
13!
7813
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
26!
7814
  }
7815
  DECODESQL();
39!
7816
  if (!tDecodeIsEnd(&decoder)) {
13!
7817
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
13!
7818
  }
7819

7820
  tEndDecode(&decoder);
13✔
7821

7822
_exit:
13✔
7823
  tDecoderClear(&decoder);
13✔
7824
  return code;
13✔
7825
}
7826

7827
void tFreeSBalanceVgroupLeaderReq(SBalanceVgroupLeaderReq *pReq) { FREESQL(); }
36!
7828

7829
int32_t tSerializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
32✔
7830
  SEncoder encoder = {0};
32✔
7831
  int32_t  code = 0;
32✔
7832
  int32_t  lino;
7833
  int32_t  tlen;
7834
  tEncoderInit(&encoder, buf, bufLen);
32✔
7835

7836
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
7837
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId1));
64!
7838
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId2));
64!
7839
  tEndEncode(&encoder);
32✔
7840

7841
_exit:
32✔
7842
  if (code) {
32!
7843
    tlen = code;
×
7844
  } else {
7845
    tlen = encoder.pos;
32✔
7846
  }
7847
  tEncoderClear(&encoder);
32✔
7848
  return tlen;
32✔
7849
}
7850

7851
int32_t tDeserializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
8✔
7852
  SDecoder decoder = {0};
8✔
7853
  int32_t  code = 0;
8✔
7854
  int32_t  lino;
7855
  tDecoderInit(&decoder, buf, bufLen);
8✔
7856

7857
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
7858
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId1));
16!
7859
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId2));
16!
7860
  tEndDecode(&decoder);
8✔
7861

7862
_exit:
8✔
7863
  tDecoderClear(&decoder);
8✔
7864
  return code;
8✔
7865
}
7866

7867
int32_t tSerializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
222✔
7868
  SEncoder encoder = {0};
222✔
7869
  int32_t  code = 0;
222✔
7870
  int32_t  lino;
7871
  int32_t  tlen;
7872
  tEncoderInit(&encoder, buf, bufLen);
222✔
7873

7874
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
222!
7875
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
444!
7876
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId1));
444!
7877
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId2));
444!
7878
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId3));
444!
7879
  ENCODESQL();
666!
7880
  tEndEncode(&encoder);
222✔
7881

7882
_exit:
222✔
7883
  if (code) {
222!
7884
    tlen = code;
×
7885
  } else {
7886
    tlen = encoder.pos;
222✔
7887
  }
7888
  tEncoderClear(&encoder);
222✔
7889
  return tlen;
222✔
7890
}
7891

7892
int32_t tDeserializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
100✔
7893
  SDecoder decoder = {0};
100✔
7894
  int32_t  code = 0;
100✔
7895
  int32_t  lino;
7896
  tDecoderInit(&decoder, buf, bufLen);
100✔
7897

7898
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
100!
7899
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
200!
7900
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId1));
200!
7901
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId2));
200!
7902
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId3));
200!
7903
  DECODESQL();
300!
7904
  tEndDecode(&decoder);
100✔
7905

7906
_exit:
100✔
7907
  tDecoderClear(&decoder);
100✔
7908
  return code;
100✔
7909
}
7910

7911
void tFreeSRedistributeVgroupReq(SRedistributeVgroupReq *pReq) { FREESQL(); }
211!
7912

7913
int32_t tSerializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
90✔
7914
  SEncoder encoder = {0};
90✔
7915
  int32_t  code = 0;
90✔
7916
  int32_t  lino;
7917
  int32_t  tlen;
7918
  tEncoderInit(&encoder, buf, bufLen);
90✔
7919

7920
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
90!
7921
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
180!
7922
  tEndEncode(&encoder);
90✔
7923

7924
_exit:
90✔
7925
  if (code) {
90!
7926
    tlen = code;
×
7927
  } else {
7928
    tlen = encoder.pos;
90✔
7929
  }
7930
  tEncoderClear(&encoder);
90✔
7931
  return tlen;
90✔
7932
}
7933

7934
int32_t tDeserializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
36✔
7935
  SDecoder decoder = {0};
36✔
7936
  int32_t  code = 0;
36✔
7937
  int32_t  lino;
7938
  tDecoderInit(&decoder, buf, bufLen);
36✔
7939

7940
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
36!
7941
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
72!
7942
  tEndDecode(&decoder);
36✔
7943

7944
_exit:
36✔
7945
  tDecoderClear(&decoder);
36✔
7946
  return code;
36✔
7947
}
7948

7949
int32_t tSerializeSForceBecomeFollowerReq(void *buf, int32_t bufLen, SForceBecomeFollowerReq *pReq) {
24✔
7950
  SEncoder encoder = {0};
24✔
7951
  int32_t  code = 0;
24✔
7952
  int32_t  lino;
7953
  int32_t  tlen;
7954
  tEncoderInit(&encoder, buf, bufLen);
24✔
7955

7956
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
24!
7957
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
48!
7958
  tEndEncode(&encoder);
24✔
7959

7960
_exit:
24✔
7961
  if (code) {
24!
7962
    tlen = code;
×
7963
  } else {
7964
    tlen = encoder.pos;
24✔
7965
  }
7966
  tEncoderClear(&encoder);
24✔
7967
  return tlen;
24✔
7968
}
7969

7970
int32_t tSerializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
352✔
7971
  SEncoder encoder = {0};
352✔
7972
  int32_t  code = 0;
352✔
7973
  int32_t  lino;
7974
  int32_t  tlen;
7975
  tEncoderInit(&encoder, buf, bufLen);
352✔
7976

7977
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
352!
7978
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
704!
7979
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
2,112✔
7980
    SReplica *pReplica = &pReq->replicas[i];
1,760✔
7981
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
1,760!
7982
  }
7983
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
704!
7984
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
3,872✔
7985
    SReplica *pReplica = &pReq->learnerReplicas[i];
3,520✔
7986
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
3,520!
7987
  }
7988
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastIndex));
704!
7989
  tEndEncode(&encoder);
352✔
7990

7991
_exit:
352✔
7992
  if (code) {
352!
7993
    tlen = code;
×
7994
  } else {
7995
    tlen = encoder.pos;
352✔
7996
  }
7997
  tEncoderClear(&encoder);
352✔
7998
  return tlen;
352✔
7999
}
8000

8001
int32_t tDeserializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
174✔
8002
  SDecoder decoder = {0};
174✔
8003
  int32_t  code = 0;
174✔
8004
  int32_t  lino;
8005
  tDecoderInit(&decoder, buf, bufLen);
174✔
8006

8007
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
174!
8008
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
348!
8009
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
1,044✔
8010
    SReplica *pReplica = &pReq->replicas[i];
870✔
8011
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
870!
8012
  }
8013
  if (!tDecodeIsEnd(&decoder)) {
174!
8014
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
348!
8015
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
1,914✔
8016
      SReplica *pReplica = &pReq->learnerReplicas[i];
1,740✔
8017
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
1,740!
8018
    }
8019
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastIndex));
348!
8020
  }
8021
  tEndDecode(&decoder);
174✔
8022

8023
_exit:
174✔
8024
  tDecoderClear(&decoder);
174✔
8025
  return code;
174✔
8026
}
8027

8028
int32_t tSerializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
128✔
8029
  SEncoder encoder = {0};
128✔
8030
  int32_t  code = 0;
128✔
8031
  int32_t  lino;
8032
  int32_t  tlen;
8033
  tEncoderInit(&encoder, buf, bufLen);
128✔
8034

8035
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
128!
8036
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
256!
8037
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
256!
8038
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
256!
8039

8040
  int32_t size = taosArrayGetSize(pReq->hbMembers);
128✔
8041
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
128!
8042
  for (int32_t i = 0; i < size; i++) {
300✔
8043
    SVArbHbReqMember *pMember = taosArrayGet(pReq->hbMembers, i);
172✔
8044
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
344!
8045
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
344!
8046
  }
8047

8048
  tEndEncode(&encoder);
128✔
8049

8050
_exit:
128✔
8051
  if (code) {
128!
8052
    tlen = code;
×
8053
  } else {
8054
    tlen = encoder.pos;
128✔
8055
  }
8056
  tEncoderClear(&encoder);
128✔
8057
  return tlen;
128✔
8058
}
8059

8060
int32_t tDeserializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
77✔
8061
  SDecoder decoder = {0};
77✔
8062
  int32_t  code = 0;
77✔
8063
  int32_t  lino;
8064
  tDecoderInit(&decoder, buf, bufLen);
77✔
8065

8066
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
77!
8067
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
154!
8068
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
77!
8069
    TAOS_CHECK_EXIT(terrno);
×
8070
  }
8071
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
77!
8072
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
154!
8073

8074
  if ((pReq->hbMembers = taosArrayInit(16, sizeof(SVArbHbReqMember))) == NULL) {
77!
8075
    TAOS_CHECK_EXIT(terrno);
×
8076
  }
8077
  int32_t size = 0;
77✔
8078
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
77!
8079
  for (int32_t i = 0; i < size; i++) {
176✔
8080
    SVArbHbReqMember member = {0};
99✔
8081
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.vgId));
99!
8082
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.hbSeq));
99!
8083
    if (taosArrayPush(pReq->hbMembers, &member) == NULL) {
198!
8084
      TAOS_CHECK_EXIT(terrno);
×
8085
    }
8086
  }
8087

8088
  tEndDecode(&decoder);
77✔
8089

8090
_exit:
77✔
8091
  tDecoderClear(&decoder);
77✔
8092
  return code;
77✔
8093
}
8094

8095
void tFreeSVArbHeartBeatReq(SVArbHeartBeatReq *pReq) {
77✔
8096
  if (!pReq) return;
77!
8097
  taosMemoryFree(pReq->arbToken);
77!
8098
  taosArrayDestroy(pReq->hbMembers);
77✔
8099
}
8100

8101
int32_t tSerializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
154✔
8102
  SEncoder encoder = {0};
154✔
8103
  int32_t  code = 0;
154✔
8104
  int32_t  lino;
8105
  int32_t  tlen;
8106
  tEncoderInit(&encoder, buf, bufLen);
154✔
8107

8108
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
154!
8109
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
308!
8110
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeId));
308!
8111
  int32_t sz = taosArrayGetSize(pRsp->hbMembers);
154✔
8112
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
154!
8113
  for (int32_t i = 0; i < sz; i++) {
352✔
8114
    SVArbHbRspMember *pMember = taosArrayGet(pRsp->hbMembers, i);
198✔
8115
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
396!
8116
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
396!
8117
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pMember->memberToken));
396!
8118
  }
8119
  tEndEncode(&encoder);
154✔
8120

8121
_exit:
154✔
8122
  if (code) {
154!
8123
    tlen = code;
×
8124
  } else {
8125
    tlen = encoder.pos;
154✔
8126
  }
8127
  tEncoderClear(&encoder);
154✔
8128
  return tlen;
154✔
8129
}
8130

8131
int32_t tDeserializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
64✔
8132
  SDecoder decoder = {0};
64✔
8133
  int32_t  code = 0;
64✔
8134
  int32_t  lino;
8135
  tDecoderInit(&decoder, buf, bufLen);
64✔
8136

8137
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
64!
8138
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
64!
8139
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeId));
128!
8140
  int32_t sz = 0;
64✔
8141
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
64!
8142
  if ((pRsp->hbMembers = taosArrayInit(sz, sizeof(SVArbHbRspMember))) == NULL) {
64!
8143
    TAOS_CHECK_EXIT(terrno);
×
8144
  }
8145
  for (int32_t i = 0; i < sz; i++) {
150✔
8146
    SVArbHbRspMember hbMember = {0};
86✔
8147
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.vgId));
86!
8148
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.hbSeq));
86!
8149
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, hbMember.memberToken));
86!
8150
    if (taosArrayPush(pRsp->hbMembers, &hbMember) == NULL) {
172!
8151
      TAOS_CHECK_EXIT(terrno);
×
8152
    }
8153
  }
8154
  tEndDecode(&decoder);
64✔
8155

8156
_exit:
64✔
8157
  tDecoderClear(&decoder);
64✔
8158
  return code;
64✔
8159
}
8160

8161
void tFreeSVArbHeartBeatRsp(SVArbHeartBeatRsp *pRsp) {
141✔
8162
  if (NULL == pRsp) {
141!
8163
    return;
×
8164
  }
8165
  taosArrayDestroy(pRsp->hbMembers);
141✔
8166
}
8167

8168
int32_t tSerializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
48✔
8169
  SEncoder encoder = {0};
48✔
8170
  int32_t  code = 0;
48✔
8171
  int32_t  lino;
8172
  int32_t  tlen;
8173
  tEncoderInit(&encoder, buf, bufLen);
48✔
8174

8175
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
48!
8176
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
96!
8177
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
96!
8178
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member0Token));
96!
8179
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member1Token));
96!
8180

8181
  tEndEncode(&encoder);
48✔
8182

8183
_exit:
48✔
8184
  if (code) {
48!
8185
    tlen = code;
×
8186
  } else {
8187
    tlen = encoder.pos;
48✔
8188
  }
8189
  tEncoderClear(&encoder);
48✔
8190
  return tlen;
48✔
8191
}
8192

8193
int32_t tDeserializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
48✔
8194
  SDecoder decoder = {0};
48✔
8195
  int32_t  code = 0;
48✔
8196
  int32_t  lino;
8197
  tDecoderInit(&decoder, buf, bufLen);
48✔
8198

8199
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
48!
8200
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
48!
8201
    TAOS_CHECK_EXIT(terrno);
×
8202
  }
8203
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
48!
8204
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
96!
8205
  if ((pReq->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
48!
8206
    TAOS_CHECK_EXIT(terrno);
×
8207
  }
8208
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member0Token));
48!
8209
  if ((pReq->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
48!
8210
    TAOS_CHECK_EXIT(terrno);
×
8211
  }
8212
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member1Token));
48!
8213

8214
  tEndDecode(&decoder);
48✔
8215

8216
_exit:
48✔
8217
  tDecoderClear(&decoder);
48✔
8218
  return code;
48✔
8219
}
8220

8221
void tFreeSVArbCheckSyncReq(SVArbCheckSyncReq *pRsp) {
48✔
8222
  if (NULL == pRsp) {
48!
8223
    return;
×
8224
  }
8225
  taosMemoryFreeClear(pRsp->arbToken);
48!
8226
  taosMemoryFreeClear(pRsp->member0Token);
48!
8227
  taosMemoryFreeClear(pRsp->member1Token);
48!
8228
}
8229

8230
int32_t tSerializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
30✔
8231
  SEncoder encoder = {0};
30✔
8232
  int32_t  code = 0;
30✔
8233
  int32_t  lino;
8234
  int32_t  tlen;
8235
  tEncoderInit(&encoder, buf, bufLen);
30✔
8236

8237
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30!
8238
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
60!
8239
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member0Token));
60!
8240
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member1Token));
60!
8241
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
60!
8242
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->errCode));
60!
8243

8244
  tEndEncode(&encoder);
30✔
8245

8246
_exit:
30✔
8247
  if (code) {
30!
8248
    tlen = code;
×
8249
  } else {
8250
    tlen = encoder.pos;
30✔
8251
  }
8252
  tEncoderClear(&encoder);
30✔
8253
  return tlen;
30✔
8254
}
8255

8256
int32_t tDeserializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
6✔
8257
  SDecoder decoder = {0};
6✔
8258
  int32_t  code = 0;
6✔
8259
  int32_t  lino;
8260
  tDecoderInit(&decoder, buf, bufLen);
6✔
8261

8262
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
8263
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
6!
8264
    TAOS_CHECK_EXIT(terrno);
×
8265
  }
8266
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
6!
8267
  if ((pRsp->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
6!
8268
    TAOS_CHECK_EXIT(terrno);
×
8269
  }
8270
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member0Token));
6!
8271
  if ((pRsp->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
6!
8272
    TAOS_CHECK_EXIT(terrno);
×
8273
  }
8274
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member1Token));
6!
8275
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
12!
8276
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->errCode));
12!
8277

8278
  tEndDecode(&decoder);
6✔
8279

8280
_exit:
6✔
8281
  tDecoderClear(&decoder);
6✔
8282
  return code;
6✔
8283
}
8284

8285
void tFreeSVArbCheckSyncRsp(SVArbCheckSyncRsp *pRsp) {
6✔
8286
  if (NULL == pRsp) {
6!
8287
    return;
×
8288
  }
8289
  taosMemoryFreeClear(pRsp->arbToken);
6!
8290
  taosMemoryFreeClear(pRsp->member0Token);
6!
8291
  taosMemoryFreeClear(pRsp->member1Token);
6!
8292
}
8293

8294
int32_t tSerializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
8295
  SEncoder encoder = {0};
×
8296
  int32_t  code = 0;
×
8297
  int32_t  lino;
8298
  int32_t  tlen;
8299
  tEncoderInit(&encoder, buf, bufLen);
×
8300

8301
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8302
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
×
8303
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
×
8304
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->memberToken));
×
8305
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
×
8306

8307
  tEndEncode(&encoder);
×
8308

8309
_exit:
×
8310
  if (code) {
×
8311
    tlen = code;
×
8312
  } else {
8313
    tlen = encoder.pos;
×
8314
  }
8315
  tEncoderClear(&encoder);
×
8316
  return tlen;
×
8317
}
8318

8319
int32_t tDeserializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
8320
  SDecoder decoder = {0};
×
8321
  int32_t  code = 0;
×
8322
  int32_t  lino;
8323
  tDecoderInit(&decoder, buf, bufLen);
×
8324

8325
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8326
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8327
    TAOS_CHECK_EXIT(terrno);
×
8328
  }
8329
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
×
8330
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
×
8331
  if ((pReq->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8332
    TAOS_CHECK_EXIT(terrno);
×
8333
  }
8334
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->memberToken));
×
8335
  if (!tDecodeIsEnd(&decoder)) {
×
8336
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
×
8337
  }
8338

8339
  tEndDecode(&decoder);
×
8340

8341
_exit:
×
8342
  tDecoderClear(&decoder);
×
8343
  return code;
×
8344
}
8345

8346
void tFreeSVArbSetAssignedLeaderReq(SVArbSetAssignedLeaderReq *pReq) {
×
8347
  if (NULL == pReq) {
×
8348
    return;
×
8349
  }
8350
  taosMemoryFreeClear(pReq->arbToken);
×
8351
  taosMemoryFreeClear(pReq->memberToken);
×
8352
}
8353

8354
int32_t tSerializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
8355
  SEncoder encoder = {0};
×
8356
  int32_t  code = 0;
×
8357
  int32_t  lino;
8358
  int32_t  tlen;
8359
  tEncoderInit(&encoder, buf, bufLen);
×
8360

8361
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8362
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
×
8363
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->memberToken));
×
8364
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
×
8365

8366
  tEndEncode(&encoder);
×
8367

8368
_exit:
×
8369
  if (code) {
×
8370
    tlen = code;
×
8371
  } else {
8372
    tlen = encoder.pos;
×
8373
  }
8374
  tEncoderClear(&encoder);
×
8375
  return tlen;
×
8376
}
8377

8378
int32_t tDeserializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
8379
  SDecoder decoder = {0};
×
8380
  int32_t  code = 0;
×
8381
  int32_t  lino;
8382
  tDecoderInit(&decoder, buf, bufLen);
×
8383

8384
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8385
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8386
    TAOS_CHECK_EXIT(terrno);
×
8387
  }
8388
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
×
8389
  if ((pRsp->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8390
    TAOS_CHECK_EXIT(terrno);
×
8391
  }
8392
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->memberToken));
×
8393
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
×
8394

8395
  tEndDecode(&decoder);
×
8396

8397
_exit:
×
8398
  tDecoderClear(&decoder);
×
8399
  return code;
×
8400
}
8401

8402
void tFreeSVArbSetAssignedLeaderRsp(SVArbSetAssignedLeaderRsp *pRsp) {
×
8403
  if (NULL == pRsp) {
×
8404
    return;
×
8405
  }
8406
  taosMemoryFreeClear(pRsp->arbToken);
×
8407
  taosMemoryFreeClear(pRsp->memberToken);
×
8408
}
8409

8410
int32_t tSerializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
20✔
8411
  SEncoder encoder = {0};
20✔
8412
  int32_t  code = 0;
20✔
8413
  int32_t  lino;
8414
  int32_t  tlen;
8415
  tEncoderInit(&encoder, buf, bufLen);
20✔
8416

8417
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
8418

8419
  int32_t sz = taosArrayGetSize(pReq->updateArray);
20✔
8420
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
20!
8421

8422
  for (int32_t i = 0; i < sz; i++) {
44✔
8423
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
24✔
8424
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->vgId));
48!
8425
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->dbUid));
48!
8426
    for (int i = 0; i < TSDB_ARB_GROUP_MEMBER_NUM; i++) {
72✔
8427
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->members[i].dnodeId));
96!
8428
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->members[i].token));
96!
8429
    }
8430
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->isSync));
48!
8431
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->assignedLeader.dnodeId));
48!
8432
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->assignedLeader.token));
48!
8433
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->version));
48!
8434
  }
8435

8436
  for (int32_t i = 0; i < sz; i++) {
44✔
8437
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
24✔
8438
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->assignedLeader.acked));
48!
8439
  }
8440

8441
  for (int32_t i = 0; i < sz; i++) {
44✔
8442
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
24✔
8443
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->code));
48!
8444
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->updateTimeMs));
48!
8445
  }
8446

8447
  tEndEncode(&encoder);
20✔
8448

8449
_exit:
20✔
8450
  if (code) {
20!
8451
    tlen = code;
×
8452
  } else {
8453
    tlen = encoder.pos;
20✔
8454
  }
8455
  tEncoderClear(&encoder);
20✔
8456
  return tlen;
20✔
8457
}
8458

8459
int32_t tDeserializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
10✔
8460
  SDecoder decoder = {0};
10✔
8461
  int32_t  code = 0;
10✔
8462
  int32_t  lino;
8463
  tDecoderInit(&decoder, buf, bufLen);
10✔
8464

8465
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
8466
  int32_t sz = 0;
10✔
8467
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
10!
8468

8469
  SArray *updateArray = taosArrayInit(sz, sizeof(SMArbUpdateGroup));
10✔
8470
  if (!updateArray) {
10!
8471
    TAOS_CHECK_EXIT(terrno);
×
8472
  }
8473

8474
  for (int32_t i = 0; i < sz; i++) {
22✔
8475
    SMArbUpdateGroup group = {0};
12✔
8476
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.vgId));
12!
8477
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.dbUid));
12!
8478
    for (int i = 0; i < TSDB_ARB_GROUP_MEMBER_NUM; i++) {
36✔
8479
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.members[i].dnodeId));
48!
8480
      if ((group.members[i].token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
24!
8481
        TAOS_CHECK_EXIT(terrno);
×
8482
      }
8483
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.members[i].token));
24!
8484
    }
8485
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &group.isSync));
12!
8486
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.assignedLeader.dnodeId));
12!
8487
    if ((group.assignedLeader.token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
12!
8488
      TAOS_CHECK_EXIT(terrno);
×
8489
    }
8490
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.assignedLeader.token));
12!
8491
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.version));
12!
8492
    group.assignedLeader.acked = false;
12✔
8493

8494
    if (taosArrayPush(updateArray, &group) == NULL) {
12!
8495
      TAOS_CHECK_EXIT(terrno);
×
8496
    }
8497
  }
8498

8499
  if (!tDecodeIsEnd(&decoder)) {
10!
8500
    for (int32_t i = 0; i < sz; i++) {
22✔
8501
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
12✔
8502
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pGroup->assignedLeader.acked));
24!
8503
    }
8504
  }
8505

8506
  if (!tDecodeIsEnd(&decoder)) {
10!
8507
    for (int32_t i = 0; i < sz; i++) {
22✔
8508
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
12✔
8509
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pGroup->code));
24!
8510
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pGroup->updateTimeMs));
24!
8511
    }
8512
  }
8513

8514
  pReq->updateArray = updateArray;
10✔
8515

8516
  tEndDecode(&decoder);
10✔
8517

8518
_exit:
10✔
8519
  tDecoderClear(&decoder);
10✔
8520
  return code;
10✔
8521
}
8522

8523
void tFreeSMArbUpdateGroupBatchReq(SMArbUpdateGroupBatchReq *pReq) {
10✔
8524
  if (NULL == pReq || NULL == pReq->updateArray) {
10!
8525
    return;
×
8526
  }
8527

8528
  int32_t sz = taosArrayGetSize(pReq->updateArray);
10✔
8529
  for (int32_t i = 0; i < sz; i++) {
22✔
8530
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
12✔
8531
    for (int i = 0; i < TSDB_ARB_GROUP_MEMBER_NUM; i++) {
36✔
8532
      taosMemoryFreeClear(pGroup->members[i].token);
24!
8533
    }
8534
    taosMemoryFreeClear(pGroup->assignedLeader.token);
12!
8535
  }
8536
  taosArrayDestroy(pReq->updateArray);
10✔
8537
}
8538

8539
int32_t tSerializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
6✔
8540
  SEncoder encoder = {0};
6✔
8541
  int32_t  code = 0;
6✔
8542
  int32_t  lino;
8543
  int32_t  tlen;
8544
  tEncoderInit(&encoder, buf, bufLen);
6✔
8545

8546
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
8547
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusCode));
12!
8548
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->details));
12!
8549

8550
  tEndEncode(&encoder);
6✔
8551

8552
_exit:
6✔
8553
  if (code) {
6!
8554
    tlen = code;
×
8555
  } else {
8556
    tlen = encoder.pos;
6✔
8557
  }
8558
  tEncoderClear(&encoder);
6✔
8559
  return tlen;
6✔
8560
}
8561

8562
int32_t tDeserializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
4✔
8563
  SDecoder decoder = {0};
4✔
8564
  int32_t  code = 0;
4✔
8565
  int32_t  lino;
8566
  tDecoderInit(&decoder, buf, bufLen);
4✔
8567

8568
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
8569
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusCode));
8!
8570
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->details));
4!
8571

8572
  tEndDecode(&decoder);
4✔
8573
_exit:
4✔
8574
  tDecoderClear(&decoder);
4✔
8575
  return code;
4✔
8576
}
8577

8578
int32_t tSerializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
1,119,370✔
8579
  SEncoder encoder = {0};
1,119,370✔
8580
  int32_t  code = 0;
1,119,370✔
8581
  int32_t  lino;
8582
  int32_t  tlen;
8583
  tEncoderInit(&encoder, buf, bufLen);
1,119,370✔
8584

8585
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,119,517!
8586
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfPlans));
2,238,972!
8587
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
3,755,200✔
8588
    SExplainExecInfo *info = &pRsp->subplanInfo[i];
2,635,714✔
8589
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->startupCost));
5,271,428!
8590
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->totalCost));
5,271,428!
8591
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, info->numOfRows));
5,271,428!
8592
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, info->verboseLen));
5,271,428!
8593
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, info->verboseInfo, info->verboseLen));
5,271,428!
8594
  }
8595

8596
  tEndEncode(&encoder);
1,119,486✔
8597

8598
_exit:
1,119,415✔
8599
  if (code) {
1,119,415!
8600
    tlen = code;
×
8601
  } else {
8602
    tlen = encoder.pos;
1,119,415✔
8603
  }
8604
  tEncoderClear(&encoder);
1,119,415✔
8605
  return tlen;
1,119,459✔
8606
}
8607

8608
int32_t tDeserializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
18,998✔
8609
  SDecoder decoder = {0};
18,998✔
8610
  int32_t  code = 0;
18,998✔
8611
  int32_t  lino;
8612
  tDecoderInit(&decoder, buf, bufLen);
18,998✔
8613

8614
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
18,998✔
8615
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfPlans));
37,896!
8616
  if (pRsp->numOfPlans > 0) {
18,948!
8617
    pRsp->subplanInfo = taosMemoryCalloc(pRsp->numOfPlans, sizeof(SExplainExecInfo));
18,948!
8618
    if (pRsp->subplanInfo == NULL) {
18,948!
8619
      TAOS_CHECK_EXIT(terrno);
×
8620
    }
8621
  }
8622
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
58,870✔
8623
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].startupCost));
79,846!
8624
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].totalCost));
79,845!
8625
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->subplanInfo[i].numOfRows));
79,844!
8626
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->subplanInfo[i].verboseLen));
79,844!
8627
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &pRsp->subplanInfo[i].verboseInfo, NULL));
79,844!
8628
  }
8629

8630
  tEndDecode(&decoder);
18,947✔
8631

8632
_exit:
18,998✔
8633
  tDecoderClear(&decoder);
18,998✔
8634
  return code;
18,998✔
8635
}
8636

8637
void tFreeSExplainRsp(SExplainRsp *pRsp) {
20,174✔
8638
  if (NULL == pRsp) {
20,174!
8639
    return;
×
8640
  }
8641

8642
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
61,261✔
8643
    SExplainExecInfo *pExec = pRsp->subplanInfo + i;
41,087✔
8644
    taosMemoryFree(pExec->verboseInfo);
41,087!
8645
  }
8646

8647
  taosMemoryFreeClear(pRsp->subplanInfo);
20,174!
8648
}
8649

8650
int32_t tSerializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
271,245✔
8651
  int32_t code = 0;
271,245✔
8652
  int32_t lino;
8653
  int32_t headLen = sizeof(SMsgHead);
271,245✔
8654
  if (buf != NULL) {
271,245✔
8655
    buf = (char *)buf + headLen;
135,633✔
8656
    bufLen -= headLen;
135,633✔
8657
  }
8658

8659
  SEncoder encoder = {0};
271,245✔
8660
  tEncoderInit(&encoder, buf, bufLen);
271,245✔
8661
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
271,256!
8662

8663
  int32_t num = taosArrayGetSize(pReq->pMsgs);
271,263✔
8664
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
271,261!
8665
  for (int32_t i = 0; i < num; ++i) {
644,850✔
8666
    SBatchMsg *pMsg = taosArrayGet(pReq->pMsgs, i);
373,594✔
8667
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
747,178!
8668
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgType));
747,178!
8669
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
747,178!
8670
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
747,178!
8671
  }
8672

8673
  tEndEncode(&encoder);
271,256✔
8674

8675
_exit:
271,259✔
8676
  if (code) {
271,259!
8677
    tEncoderClear(&encoder);
×
8678
    return code;
×
8679
  } else {
8680
    int32_t tlen = encoder.pos;
271,259✔
8681
    tEncoderClear(&encoder);
271,259✔
8682

8683
    if (buf != NULL) {
271,256✔
8684
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
135,632✔
8685
      pHead->vgId = htonl(pReq->header.vgId);
135,632✔
8686
      pHead->contLen = htonl(tlen + headLen);
135,632✔
8687
    }
8688

8689
    return tlen + headLen;
271,256✔
8690
  }
8691
}
8692

8693
int32_t tDeserializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
3,009,596✔
8694
  int32_t   headLen = sizeof(SMsgHead);
3,009,596✔
8695
  int32_t   code = 0;
3,009,596✔
8696
  int32_t   lino;
8697
  SMsgHead *pHead = buf;
3,009,596✔
8698
  pHead->vgId = pReq->header.vgId;
3,009,596✔
8699
  pHead->contLen = pReq->header.contLen;
3,009,596✔
8700

8701
  SDecoder decoder = {0};
3,009,596✔
8702
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
3,009,596✔
8703

8704
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,009,041!
8705

8706
  int32_t num = 0;
3,010,396✔
8707
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
3,010,367!
8708
  if (num <= 0) {
3,010,367!
8709
    pReq->pMsgs = NULL;
×
8710
    tEndDecode(&decoder);
×
8711
    tDecoderClear(&decoder);
×
8712
    return 0;
528✔
8713
  }
8714

8715
  pReq->pMsgs = taosArrayInit(num, sizeof(SBatchMsg));
3,010,367✔
8716
  if (NULL == pReq->pMsgs) {
3,009,879!
8717
    TAOS_CHECK_EXIT(terrno);
×
8718
  }
8719
  for (int32_t i = 0; i < num; ++i) {
10,059,370✔
8720
    SBatchMsg msg = {0};
7,050,017✔
8721
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
7,049,717!
8722
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgType));
7,050,114!
8723
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
7,049,987!
8724
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
7,049,692!
8725
    if (NULL == taosArrayPush(pReq->pMsgs, &msg)) {
14,099,156!
8726
      TAOS_CHECK_EXIT(terrno);
×
8727
    }
8728
  }
8729

8730
  tEndDecode(&decoder);
3,009,353✔
8731

8732
_exit:
3,009,491✔
8733
  tDecoderClear(&decoder);
3,009,491✔
8734
  return code;
3,009,913✔
8735
}
8736

8737
int32_t tSerializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
6,019,222✔
8738
  SEncoder encoder = {0};
6,019,222✔
8739
  int32_t  code = 0;
6,019,222✔
8740
  int32_t  lino;
8741
  int32_t  tlen;
8742
  tEncoderInit(&encoder, buf, bufLen);
6,019,222✔
8743
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,019,717!
8744

8745
  int32_t num = taosArrayGetSize(pRsp->pRsps);
6,020,192✔
8746
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
6,019,040!
8747
  for (int32_t i = 0; i < num; ++i) {
20,115,788✔
8748
    SBatchRspMsg *pMsg = taosArrayGet(pRsp->pRsps, i);
14,100,172✔
8749
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->reqType));
28,193,496!
8750
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
28,193,496!
8751
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
28,193,496!
8752
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->rspCode));
28,193,496!
8753
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
28,193,496!
8754
  }
8755

8756
  tEndEncode(&encoder);
6,015,616✔
8757

8758
_exit:
6,020,157✔
8759
  if (code) {
6,020,157!
8760
    tlen = code;
×
8761
  } else {
8762
    tlen = encoder.pos;
6,020,157✔
8763
  }
8764
  tEncoderClear(&encoder);
6,020,157✔
8765
  return tlen;
6,020,390✔
8766
}
8767

8768
int32_t tDeserializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
135,364✔
8769
  SDecoder decoder = {0};
135,364✔
8770
  int32_t  code = 0;
135,364✔
8771
  int32_t  lino;
8772
  tDecoderInit(&decoder, (char *)buf, bufLen);
135,364✔
8773

8774
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
135,363!
8775

8776
  int32_t num = 0;
135,371✔
8777
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
135,369!
8778
  if (num <= 0) {
135,369!
8779
    pRsp->pRsps = NULL;
×
8780
    tEndDecode(&decoder);
×
8781

8782
    tDecoderClear(&decoder);
×
8783
    return 0;
1✔
8784
  }
8785

8786
  pRsp->pRsps = taosArrayInit(num, sizeof(SBatchRspMsg));
135,369✔
8787
  if (NULL == pRsp->pRsps) {
135,369!
8788
    TAOS_CHECK_EXIT(terrno);
×
8789
  }
8790
  for (int32_t i = 0; i < num; ++i) {
321,899✔
8791
    SBatchRspMsg msg = {0};
186,527✔
8792
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.reqType));
186,526!
8793
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
186,528!
8794
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
186,525!
8795
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.rspCode));
186,519!
8796
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
186,522!
8797
    if (NULL == taosArrayPush(pRsp->pRsps, &msg)) {
373,050!
8798
      TAOS_CHECK_EXIT(terrno);
×
8799
    }
8800
  }
8801

8802
  tEndDecode(&decoder);
135,372✔
8803

8804
_exit:
135,370✔
8805
  tDecoderClear(&decoder);
135,370✔
8806
  return code;
135,366✔
8807
}
8808

8809
int32_t tSerializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
1,239,706✔
8810
  SEncoder encoder = {0};
1,239,706✔
8811
  int32_t  code = 0;
1,239,706✔
8812
  int32_t  lino;
8813
  int32_t  tlen;
8814
  tEncoderInit(&encoder, buf, bufLen);
1,239,706✔
8815

8816
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,239,706!
8817
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
2,479,412!
8818
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
2,479,412!
8819
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
2,479,412!
8820

8821
  tEndEncode(&encoder);
1,239,706✔
8822

8823
_exit:
1,239,706✔
8824
  if (code) {
1,239,706!
8825
    tlen = code;
×
8826
  } else {
8827
    tlen = encoder.pos;
1,239,706✔
8828
  }
8829
  tEncoderClear(&encoder);
1,239,706✔
8830
  return tlen;
1,239,705✔
8831
}
8832

8833
int32_t tDeserializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
620,941✔
8834
  SDecoder decoder = {0};
620,941✔
8835
  int32_t  code = 0;
620,941✔
8836
  int32_t  lino;
8837
  tDecoderInit(&decoder, (char *)buf, bufLen);
620,941✔
8838

8839
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
620,941!
8840

8841
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
1,241,884!
8842
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
1,241,884!
8843
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
620,942!
8844

8845
  tEndDecode(&decoder);
620,942✔
8846

8847
_exit:
620,942✔
8848
  tDecoderClear(&decoder);
620,942✔
8849
  return code;
620,941✔
8850
}
8851

8852
void tDestroySMqHbRsp(SMqHbRsp *pRsp) { taosArrayDestroy(pRsp->topicPrivileges); }
5,241✔
8853

8854
int32_t tSerializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
5,432✔
8855
  SEncoder encoder = {0};
5,432✔
8856
  int32_t  code = 0;
5,432✔
8857
  int32_t  lino;
8858
  int32_t  tlen;
8859
  tEncoderInit(&encoder, buf, bufLen);
5,432✔
8860
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,432!
8861

8862
  int32_t sz = taosArrayGetSize(pRsp->topicPrivileges);
5,432✔
8863
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
5,432!
8864
  for (int32_t i = 0; i < sz; ++i) {
10,404✔
8865
    STopicPrivilege *privilege = (STopicPrivilege *)taosArrayGet(pRsp->topicPrivileges, i);
4,972✔
8866
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, privilege->topic));
9,944!
8867
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, privilege->noPrivilege));
9,944!
8868
  }
8869

8870
  if (tEncodeI32(&encoder, pRsp->debugFlag) < 0) return -1;
10,864!
8871
  tEndEncode(&encoder);
5,432✔
8872

8873
_exit:
5,432✔
8874
  if (code) {
5,432!
8875
    tlen = code;
×
8876
  } else {
8877
    tlen = encoder.pos;
5,432✔
8878
  }
8879
  tEncoderClear(&encoder);
5,432✔
8880
  return tlen;
5,432✔
8881
}
8882

8883
int32_t tDeserializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
2,512✔
8884
  SDecoder decoder = {0};
2,512✔
8885
  int32_t  code = 0;
2,512✔
8886
  int32_t  lino;
8887
  tDecoderInit(&decoder, (char *)buf, bufLen);
2,512✔
8888

8889
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,512!
8890

8891
  int32_t sz = 0;
2,512✔
8892
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
2,512!
8893
  if (sz > 0) {
2,512✔
8894
    pRsp->topicPrivileges = taosArrayInit(sz, sizeof(STopicPrivilege));
2,100✔
8895
    if (NULL == pRsp->topicPrivileges) {
2,100!
8896
      TAOS_CHECK_EXIT(terrno);
×
8897
    }
8898
    for (int32_t i = 0; i < sz; ++i) {
4,397✔
8899
      STopicPrivilege *data = taosArrayReserve(pRsp->topicPrivileges, 1);
2,297✔
8900
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topic));
2,297!
8901
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &data->noPrivilege));
4,594!
8902
    }
8903
  }
8904

8905
  if (!tDecodeIsEnd(&decoder)) {
2,512!
8906
    if (tDecodeI32(&decoder, &pRsp->debugFlag) < 0) return -1;
5,024!
8907
  }
8908
  tEndDecode(&decoder);
2,512✔
8909

8910
_exit:
2,512✔
8911
  tDecoderClear(&decoder);
2,512✔
8912
  return code;
2,512✔
8913
}
8914

8915
void tDestroySMqHbReq(SMqHbReq *pReq) {
5,263✔
8916
  for (int i = 0; i < taosArrayGetSize(pReq->topics); i++) {
10,036✔
8917
    TopicOffsetRows *vgs = taosArrayGet(pReq->topics, i);
4,773✔
8918
    if (vgs) taosArrayDestroy(vgs->offsetRows);
4,773!
8919
  }
8920
  taosArrayDestroy(pReq->topics);
5,263✔
8921
}
5,263✔
8922

8923
int32_t tSerializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
5,068✔
8924
  SEncoder encoder = {0};
5,068✔
8925
  int32_t  code = 0;
5,068✔
8926
  int32_t  lino;
8927
  int32_t  tlen;
8928
  tEncoderInit(&encoder, buf, bufLen);
5,068✔
8929
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,068!
8930

8931
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
10,136!
8932
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
10,136!
8933

8934
  int32_t sz = taosArrayGetSize(pReq->topics);
5,068✔
8935
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
5,068!
8936
  for (int32_t i = 0; i < sz; ++i) {
9,760✔
8937
    TopicOffsetRows *vgs = (TopicOffsetRows *)taosArrayGet(pReq->topics, i);
4,692✔
8938
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, vgs->topicName));
9,384!
8939
    int32_t szVgs = taosArrayGetSize(vgs->offsetRows);
4,692✔
8940
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, szVgs));
4,692!
8941
    for (int32_t j = 0; j < szVgs; ++j) {
15,916✔
8942
      OffsetRows *offRows = taosArrayGet(vgs->offsetRows, j);
11,224✔
8943
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, offRows->vgId));
22,448!
8944
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->rows));
22,448!
8945
      TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &offRows->offset));
11,224!
8946
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->ever));
22,448!
8947
    }
8948
  }
8949

8950
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->pollFlag));
10,136!
8951
  tEndEncode(&encoder);
5,068✔
8952

8953
_exit:
5,068✔
8954
  if (code) {
5,068!
8955
    tlen = code;
×
8956
  } else {
8957
    tlen = encoder.pos;
5,068✔
8958
  }
8959
  tEncoderClear(&encoder);
5,068✔
8960
  return tlen;
5,068✔
8961
}
8962

8963
int32_t tDeserializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
2,729✔
8964
  int32_t  code = 0;
2,729✔
8965
  int32_t  lino;
8966
  SDecoder decoder = {0};
2,729✔
8967
  tDecoderInit(&decoder, (char *)buf, bufLen);
2,729✔
8968

8969
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,729!
8970

8971
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
5,458!
8972
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
5,458!
8973
  int32_t sz = 0;
2,729✔
8974
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
2,729!
8975
  if (sz > 0) {
2,729✔
8976
    pReq->topics = taosArrayInit(sz, sizeof(TopicOffsetRows));
2,228✔
8977
    if (NULL == pReq->topics) {
2,228!
8978
      TAOS_CHECK_EXIT(terrno);
×
8979
    }
8980
    for (int32_t i = 0; i < sz; ++i) {
4,655✔
8981
      TopicOffsetRows *data = taosArrayReserve(pReq->topics, 1);
2,427✔
8982
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topicName));
2,427!
8983
      int32_t szVgs = 0;
2,427✔
8984
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &szVgs));
2,427!
8985
      if (szVgs > 0) {
2,427✔
8986
        data->offsetRows = taosArrayInit(szVgs, sizeof(OffsetRows));
2,388✔
8987
        if (NULL == data->offsetRows) {
2,388!
8988
          TAOS_CHECK_EXIT(terrno);
×
8989
        }
8990
        for (int32_t j = 0; j < szVgs; ++j) {
7,948✔
8991
          OffsetRows *offRows = taosArrayReserve(data->offsetRows, 1);
5,560✔
8992
          TAOS_CHECK_EXIT(tDecodeI32(&decoder, &offRows->vgId));
11,120!
8993
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->rows));
11,120!
8994
          TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &offRows->offset));
5,560!
8995
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->ever));
11,120!
8996
        }
8997
      }
8998
    }
8999
  }
9000
  if (!tDecodeIsEnd(&decoder)) {
2,729!
9001
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->pollFlag));
5,458!
9002
  }
9003
  tEndDecode(&decoder);
2,729✔
9004

9005
_exit:
2,729✔
9006
  tDecoderClear(&decoder);
2,729✔
9007
  return code;
2,729✔
9008
}
9009

9010
int32_t tSerializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
20✔
9011
  int32_t code = 0;
20✔
9012
  int32_t lino;
9013
  int32_t headLen = sizeof(SMsgHead);
20✔
9014
  if (buf != NULL) {
20✔
9015
    buf = (char *)buf + headLen;
10✔
9016
    bufLen -= headLen;
10✔
9017
  }
9018
  SEncoder encoder = {0};
20✔
9019
  tEncoderInit(&encoder, buf, bufLen);
20✔
9020
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
9021
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
40!
9022
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
40!
9023
  tEndEncode(&encoder);
20✔
9024

9025
_exit:
20✔
9026
  if (code) {
20!
9027
    tEncoderClear(&encoder);
×
9028
    return code;
×
9029
  } else {
9030
    int32_t tlen = encoder.pos;
20✔
9031
    tEncoderClear(&encoder);
20✔
9032

9033
    if (buf != NULL) {
20✔
9034
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
10✔
9035
      pHead->vgId = htonl(pReq->head.vgId);
10✔
9036
      pHead->contLen = htonl(tlen + headLen);
10✔
9037
    }
9038

9039
    return tlen + headLen;
20✔
9040
  }
9041
}
9042

9043
int32_t tDeserializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
32✔
9044
  int32_t  code = 0;
32✔
9045
  int32_t  lino;
9046
  int32_t  headLen = sizeof(SMsgHead);
32✔
9047
  SDecoder decoder = {0};
32✔
9048
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
32✔
9049

9050
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
32!
9051
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
64!
9052
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
32!
9053

9054
  tEndDecode(&decoder);
32✔
9055

9056
_exit:
32✔
9057
  tDecoderClear(&decoder);
32✔
9058
  return code;
32✔
9059
}
9060

9061
int32_t tSerializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
3,280,456✔
9062
  int32_t code = 0;
3,280,456✔
9063
  int32_t lino;
9064
  int32_t headLen = sizeof(SMsgHead);
3,280,456✔
9065
  if (buf != NULL) {
3,280,456✔
9066
    buf = (char *)buf + headLen;
1,641,088✔
9067
    bufLen -= headLen;
1,641,088✔
9068
  }
9069

9070
  SEncoder encoder = {0};
3,280,456✔
9071
  tEncoderInit(&encoder, buf, bufLen);
3,280,456✔
9072
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,281,343!
9073

9074
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
6,564,908!
9075
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
6,564,908!
9076
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
6,564,908!
9077
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
6,564,908!
9078
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
6,564,908!
9079
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->msgMask));
6,564,908!
9080
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->taskType));
6,564,908!
9081
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->explain));
6,564,908!
9082
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->needFetch));
6,564,908!
9083
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compress));
6,564,908!
9084
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
6,564,908!
9085
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->sql, pReq->sqlLen));
6,564,908!
9086
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->msgLen));
6,564,908!
9087
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (uint8_t *)pReq->msg, pReq->msgLen));
6,564,908!
9088
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
6,564,908!
9089

9090
  tEndEncode(&encoder);
3,282,454✔
9091

9092
_exit:
3,281,833✔
9093
  if (code) {
3,281,833!
9094
    tEncoderClear(&encoder);
×
9095
    return code;
×
9096
  } else {
9097
    int32_t tlen = encoder.pos;
3,281,833✔
9098
    tEncoderClear(&encoder);
3,281,833✔
9099

9100
    if (buf != NULL) {
3,282,002✔
9101
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
1,641,844✔
9102
      pHead->vgId = htonl(pReq->header.vgId);
1,641,844✔
9103
      pHead->contLen = htonl(tlen + headLen);
1,641,844✔
9104
    }
9105

9106
    return tlen + headLen;
3,282,002✔
9107
  }
9108
}
9109

9110
int32_t tDeserializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
15,951,189✔
9111
  int32_t   code = 0;
15,951,189✔
9112
  int32_t   lino;
9113
  int32_t   headLen = sizeof(SMsgHead);
15,951,189✔
9114
  SMsgHead *pHead = buf;
15,951,189✔
9115
  pHead->vgId = pReq->header.vgId;
15,951,189✔
9116
  pHead->contLen = pReq->header.contLen;
15,951,189✔
9117

9118
  SDecoder decoder = {0};
15,951,189✔
9119
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
15,951,189✔
9120

9121
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
15,946,297!
9122

9123
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
31,935,395!
9124
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
31,931,870!
9125
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
31,916,686!
9126
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
31,909,016!
9127
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
31,909,902!
9128
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->msgMask));
31,909,662!
9129
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->taskType));
31,909,271!
9130
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->explain));
31,907,580!
9131
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->needFetch));
31,909,105!
9132
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compress));
31,909,482!
9133
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
31,901,267!
9134
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
31,919,565!
9135
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->msgLen));
31,924,410!
9136
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, NULL));
31,925,229!
9137
  if (!tDecodeIsEnd(&decoder)) {
15,975,026✔
9138
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
31,906,900!
9139
  } else {
9140
    pReq->clientId = 0;
26,637✔
9141
  }
9142

9143
  tEndDecode(&decoder);
15,985,148✔
9144

9145
_exit:
15,957,937✔
9146
  tDecoderClear(&decoder);
15,957,937✔
9147
  return code;
15,967,272✔
9148
}
9149

9150
void tFreeSSubQueryMsg(SSubQueryMsg *pReq) {
15,959,802✔
9151
  if (NULL == pReq) {
15,959,802!
9152
    return;
×
9153
  }
9154

9155
  taosMemoryFreeClear(pReq->sql);
15,959,802!
9156
  taosMemoryFreeClear(pReq->msg);
15,962,040!
9157
}
9158

9159
int32_t tSerializeSOperatorParam(SEncoder *pEncoder, SOperatorParam *pOpParam) {
1,996✔
9160
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->opType));
3,992!
9161
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->downstreamIdx));
3,992!
9162
  switch (pOpParam->opType) {
1,996!
9163
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
1,996✔
9164
      STableScanOperatorParam *pScan = (STableScanOperatorParam *)pOpParam->value;
1,996✔
9165
      TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pScan->tableSeq));
3,992!
9166
      int32_t uidNum = taosArrayGetSize(pScan->pUidList);
1,996✔
9167
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, uidNum));
1,996!
9168
      for (int32_t m = 0; m < uidNum; ++m) {
86,006✔
9169
        int64_t *pUid = taosArrayGet(pScan->pUidList, m);
84,010✔
9170
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, *pUid));
168,020!
9171
      }
9172
      break;
1,996✔
9173
    }
9174
    default:
×
9175
      return TSDB_CODE_INVALID_PARA;
×
9176
  }
9177

9178
  int32_t n = taosArrayGetSize(pOpParam->pChildren);
1,996✔
9179
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, n));
1,996!
9180
  for (int32_t i = 0; i < n; ++i) {
1,996!
9181
    SOperatorParam *pChild = *(SOperatorParam **)taosArrayGet(pOpParam->pChildren, i);
×
9182
    TAOS_CHECK_RETURN(tSerializeSOperatorParam(pEncoder, pChild));
×
9183
  }
9184

9185
  return 0;
1,996✔
9186
}
9187

9188
int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam *pOpParam) {
998✔
9189
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->opType));
1,995!
9190
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->downstreamIdx));
1,993!
9191
  switch (pOpParam->opType) {
996!
9192
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
996✔
9193
      STableScanOperatorParam *pScan = taosMemoryMalloc(sizeof(STableScanOperatorParam));
996!
9194
      if (NULL == pScan) {
997!
9195
        TAOS_CHECK_RETURN(terrno);
×
9196
      }
9197
      TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&pScan->tableSeq));
1,994!
9198
      int32_t uidNum = 0;
997✔
9199
      int64_t uid = 0;
997✔
9200
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &uidNum));
997!
9201
      if (uidNum > 0) {
997!
9202
        pScan->pUidList = taosArrayInit(uidNum, sizeof(int64_t));
997✔
9203
        if (NULL == pScan->pUidList) {
995!
9204
          TAOS_CHECK_RETURN(terrno);
×
9205
        }
9206

9207
        for (int32_t m = 0; m < uidNum; ++m) {
38,745✔
9208
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &uid));
37,878!
9209
          if (taosArrayPush(pScan->pUidList, &uid) == NULL) {
75,757!
9210
            TAOS_CHECK_RETURN(terrno);
×
9211
          }
9212
        }
9213
      } else {
9214
        pScan->pUidList = NULL;
×
9215
      }
9216
      pOpParam->value = pScan;
868✔
9217
      break;
868✔
9218
    }
9219
    default:
×
9220
      return TSDB_CODE_INVALID_PARA;
×
9221
  }
9222

9223
  int32_t childrenNum = 0;
868✔
9224
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &childrenNum));
996!
9225

9226
  if (childrenNum > 0) {
996!
9227
    pOpParam->pChildren = taosArrayInit(childrenNum, POINTER_BYTES);
×
9228
    if (NULL == pOpParam->pChildren) {
×
9229
      TAOS_CHECK_RETURN(terrno);
×
9230
    }
9231
    for (int32_t i = 0; i < childrenNum; ++i) {
×
9232
      SOperatorParam *pChild = taosMemoryCalloc(1, sizeof(SOperatorParam));
×
9233
      if (NULL == pChild) {
×
9234
        TAOS_CHECK_RETURN(terrno);
×
9235
      }
9236
      TAOS_CHECK_RETURN(tDeserializeSOperatorParam(pDecoder, pChild));
×
9237
      if (taosArrayPush(pOpParam->pChildren, &pChild) == NULL) {
×
9238
        TAOS_CHECK_RETURN(terrno);
×
9239
      }
9240
    }
9241
  } else {
9242
    pOpParam->pChildren = NULL;
996✔
9243
  }
9244

9245
  return 0;
996✔
9246
}
9247

9248
int32_t tSerializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
12,234,253✔
9249
  int32_t code = 0;
12,234,253✔
9250
  int32_t lino;
9251
  int32_t headLen = sizeof(SMsgHead);
12,234,253✔
9252
  if (buf != NULL) {
12,234,253✔
9253
    buf = (char *)buf + headLen;
6,117,585✔
9254
    bufLen -= headLen;
6,117,585✔
9255
  }
9256

9257
  SEncoder encoder = {0};
12,234,253✔
9258
  tEncoderInit(&encoder, buf, bufLen);
12,234,253✔
9259
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12,234,415!
9260

9261
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
24,468,848!
9262
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
24,468,848!
9263
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
24,468,848!
9264
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
24,468,848!
9265
  if (pReq->pOpParam) {
12,234,424✔
9266
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 1));
1,996!
9267
    TAOS_CHECK_EXIT(tSerializeSOperatorParam(&encoder, pReq->pOpParam));
1,996!
9268
  } else {
9269
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
12,232,428!
9270
  }
9271
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
24,468,848!
9272

9273
  tEndEncode(&encoder);
12,234,424✔
9274

9275
_exit:
12,234,597✔
9276
  if (code) {
12,234,597!
9277
    tEncoderClear(&encoder);
×
9278
    return code;
×
9279
  } else {
9280
    int32_t tlen = encoder.pos;
12,234,597✔
9281
    tEncoderClear(&encoder);
12,234,597✔
9282

9283
    if (buf != NULL) {
12,233,376✔
9284
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
6,117,304✔
9285
      pHead->vgId = htonl(pReq->header.vgId);
6,117,304✔
9286
      pHead->contLen = htonl(tlen + headLen);
6,117,304✔
9287
    }
9288

9289
    return tlen + headLen;
12,233,376✔
9290
  }
9291
}
9292

9293
int32_t tDeserializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
10,168,032✔
9294
  int32_t code = 0;
10,168,032✔
9295
  int32_t lino;
9296
  int32_t headLen = sizeof(SMsgHead);
10,168,032✔
9297

9298
  SMsgHead *pHead = buf;
10,168,032✔
9299
  pHead->vgId = pReq->header.vgId;
10,168,032✔
9300
  pHead->contLen = pReq->header.contLen;
10,168,032✔
9301

9302
  SDecoder decoder = {0};
10,168,032✔
9303
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
10,168,032✔
9304

9305
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,159,916!
9306

9307
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
20,341,406!
9308
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
20,341,554!
9309
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
20,340,375!
9310
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
20,338,251!
9311

9312
  int32_t paramNum = 0;
10,168,635✔
9313
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &paramNum));
10,167,171!
9314
  if (paramNum > 0) {
10,167,171✔
9315
    pReq->pOpParam = taosMemoryMalloc(sizeof(*pReq->pOpParam));
997!
9316
    if (NULL == pReq->pOpParam) {
997!
9317
      TAOS_CHECK_EXIT(terrno);
×
9318
    }
9319
    TAOS_CHECK_EXIT(tDeserializeSOperatorParam(&decoder, pReq->pOpParam));
997!
9320
  }
9321
  if (!tDecodeIsEnd(&decoder)) {
10,167,169✔
9322
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
20,331,014!
9323
  } else {
9324
    pReq->clientId = 0;
2,460✔
9325
  }
9326

9327
  tEndDecode(&decoder);
10,168,765✔
9328

9329
_exit:
10,164,593✔
9330
  tDecoderClear(&decoder);
10,164,593✔
9331
  return code;
10,165,040✔
9332
}
9333

9334
int32_t tSerializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
6,873,956✔
9335
  int32_t headLen = sizeof(SMsgHead);
6,873,956✔
9336
  int32_t code = 0;
6,873,956✔
9337
  int32_t lino;
9338
  if (buf != NULL) {
6,873,956✔
9339
    buf = (char *)buf + headLen;
3,437,018✔
9340
    bufLen -= headLen;
3,437,018✔
9341
  }
9342

9343
  SEncoder encoder = {0};
6,873,956✔
9344
  tEncoderInit(&encoder, buf, bufLen);
6,873,956✔
9345
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,873,895!
9346

9347
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
13,747,860!
9348
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withTbName));
13,747,860!
9349
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->useSnapshot));
13,747,860!
9350
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
13,747,860!
9351
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->reqId));
13,747,860!
9352
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
13,747,860!
9353
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeout));
13,747,860!
9354
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &pReq->reqOffset));
6,873,930!
9355
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableReplay));
13,747,866!
9356
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sourceExcluded));
13,747,866!
9357
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableBatchMeta));
13,747,866!
9358
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->rawData));
13,747,866!
9359
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minPollRows));
13,747,866!
9360

9361
  tEndEncode(&encoder);
6,873,933✔
9362

9363
_exit:
6,873,911✔
9364
  if (code) {
6,873,911!
9365
    tEncoderClear(&encoder);
×
9366
    return code;
×
9367
  } else {
9368
    int32_t tlen = encoder.pos;
6,873,911✔
9369
    tEncoderClear(&encoder);
6,873,911✔
9370

9371
    if (buf != NULL) {
6,873,918✔
9372
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
3,437,016✔
9373
      pHead->vgId = htonl(pReq->head.vgId);
3,437,016✔
9374
      pHead->contLen = htonl(tlen + headLen);
3,437,016✔
9375
    }
9376

9377
    return tlen + headLen;
6,873,918✔
9378
  }
9379
}
9380

9381
int32_t tDeserializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
2,847,887✔
9382
  int32_t  code = 0;
2,847,887✔
9383
  int32_t  lino;
9384
  int32_t  headLen = sizeof(SMsgHead);
2,847,887✔
9385
  SDecoder decoder = {0};
2,847,887✔
9386
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
2,847,887✔
9387

9388
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,847,895!
9389

9390
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
2,848,458!
9391
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withTbName));
5,696,751!
9392
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->useSnapshot));
5,695,583!
9393
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
5,695,368!
9394
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->reqId));
5,696,164!
9395
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
5,695,906!
9396
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeout));
5,695,631!
9397
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &pReq->reqOffset));
2,847,787!
9398

9399
  if (!tDecodeIsEnd(&decoder)) {
2,847,407!
9400
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableReplay));
5,695,677!
9401
  }
9402

9403
  if (!tDecodeIsEnd(&decoder)) {
2,847,306!
9404
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sourceExcluded));
5,695,319!
9405
  }
9406

9407
  if (!tDecodeIsEnd(&decoder)) {
2,846,927!
9408
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableBatchMeta));
5,695,134!
9409
  } else {
9410
    pReq->enableBatchMeta = false;
×
9411
  }
9412

9413
  if (!tDecodeIsEnd(&decoder)) {
2,846,759!
9414
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->rawData));
5,694,940!
9415
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minPollRows));
5,694,529!
9416
  }
9417

9418
  tEndDecode(&decoder);
2,846,348✔
9419

9420
_exit:
2,846,375✔
9421
  tDecoderClear(&decoder);
2,846,375✔
9422
  return code;
2,846,422✔
9423
}
9424

9425
void    tDestroySMqPollReq(SMqPollReq *pReq) {
2,845,452✔
9426
  tOffsetDestroy(&pReq->reqOffset);
2,845,452✔
9427
  if (pReq->uidHash != NULL) {
2,845,443✔
9428
    taosHashCleanup(pReq->uidHash);
19,966✔
9429
    pReq->uidHash = NULL;
19,965✔
9430
  }
9431
}
2,845,442✔
9432
int32_t tSerializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
19,232,100✔
9433
  int32_t code = 0;
19,232,100✔
9434
  int32_t lino;
9435
  int32_t tlen;
9436
  int32_t headLen = sizeof(SMsgHead);
19,232,100✔
9437
  if (buf != NULL) {
19,232,100✔
9438
    buf = (char *)buf + headLen;
9,620,624✔
9439
    bufLen -= headLen;
9,620,624✔
9440
  }
9441

9442
  SEncoder encoder = {0};
19,232,100✔
9443
  tEncoderInit(&encoder, buf, bufLen);
19,232,100✔
9444
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
19,233,078!
9445

9446
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
38,474,612!
9447
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
38,474,612!
9448
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
38,474,612!
9449
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
38,474,612!
9450
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
38,474,612!
9451
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
38,474,612!
9452

9453
  tEndEncode(&encoder);
19,237,306✔
9454

9455
_exit:
19,232,130✔
9456
  if (code) {
19,232,130!
9457
    tEncoderClear(&encoder);
×
9458
    return code;
×
9459
  } else {
9460
    tlen = encoder.pos;
19,232,130✔
9461
    tEncoderClear(&encoder);
19,232,130✔
9462

9463
    if (buf != NULL) {
19,234,758✔
9464
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
9,621,449✔
9465
      pHead->vgId = htonl(pReq->header.vgId);
9,621,449✔
9466
      pHead->contLen = htonl(tlen + headLen);
9,621,449✔
9467
    }
9468

9469
    return tlen + headLen;
19,234,758✔
9470
  }
9471
}
9472

9473
int32_t tDeserializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
7,980,150✔
9474
  int32_t headLen = sizeof(SMsgHead);
7,980,150✔
9475
  int32_t code = 0;
7,980,150✔
9476
  int32_t lino;
9477

9478
  SMsgHead *pHead = buf;
7,980,150✔
9479
  pHead->vgId = pReq->header.vgId;
7,980,150✔
9480
  pHead->contLen = pReq->header.contLen;
7,980,150✔
9481

9482
  SDecoder decoder = {0};
7,980,150✔
9483
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
7,980,150✔
9484

9485
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,972,224!
9486

9487
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
15,965,745!
9488
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
15,964,868!
9489
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
15,962,342!
9490
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
15,959,663!
9491
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
15,957,541!
9492
  if (!tDecodeIsEnd(&decoder)) {
7,978,249!
9493
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
15,959,067!
9494
  } else {
9495
    pReq->clientId = 0;
×
9496
  }
9497

9498
  tEndDecode(&decoder);
7,976,728✔
9499

9500
_exit:
7,977,063✔
9501
  tDecoderClear(&decoder);
7,977,063✔
9502
  return code;
7,979,467✔
9503
}
9504

9505
int32_t tSerializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
52✔
9506
  int32_t code = 0;
52✔
9507
  int32_t lino;
9508
  int32_t tlen;
9509
  int32_t headLen = sizeof(SMsgHead);
52✔
9510
  if (buf != NULL) {
52✔
9511
    buf = (char *)buf + headLen;
26✔
9512
    bufLen -= headLen;
26✔
9513
  }
9514

9515
  SEncoder encoder = {0};
52✔
9516
  tEncoderInit(&encoder, buf, bufLen);
52✔
9517
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
52!
9518

9519
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
104!
9520
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
104!
9521
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
104!
9522
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
104!
9523
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
104!
9524
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
104!
9525
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
104!
9526

9527
  tEndEncode(&encoder);
52✔
9528

9529
_exit:
52✔
9530
  if (code) {
52!
9531
    tEncoderClear(&encoder);
×
9532
    return code;
×
9533
  } else {
9534
    tlen = encoder.pos;
52✔
9535
    tEncoderClear(&encoder);
52✔
9536

9537
    if (buf != NULL) {
52✔
9538
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
26✔
9539
      pHead->vgId = htonl(pReq->header.vgId);
26✔
9540
      pHead->contLen = htonl(tlen + headLen);
26✔
9541
    }
9542

9543
    return tlen + headLen;
52✔
9544
  }
9545
}
9546

9547
int32_t tDeserializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
48✔
9548
  int32_t headLen = sizeof(SMsgHead);
48✔
9549
  int32_t code = 0;
48✔
9550
  int32_t lino;
9551

9552
  SMsgHead *pHead = buf;
48✔
9553
  pHead->vgId = pReq->header.vgId;
48✔
9554
  pHead->contLen = pReq->header.contLen;
48✔
9555

9556
  SDecoder decoder = {0};
48✔
9557
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
48✔
9558

9559
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
48!
9560

9561
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
96!
9562
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
96!
9563
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
96!
9564
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
96!
9565
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
96!
9566
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, (int32_t *)&pReq->type));
96!
9567
  if (!tDecodeIsEnd(&decoder)) {
48!
9568
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
96!
9569
  } else {
9570
    pReq->clientId = 0;
×
9571
  }
9572

9573
  tEndDecode(&decoder);
48✔
9574

9575
_exit:
48✔
9576
  tDecoderClear(&decoder);
48✔
9577
  return code;
48✔
9578
}
9579

9580
int32_t tSerializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
15,950,549✔
9581
  SEncoder encoder = {0};
15,950,549✔
9582
  int32_t  code = 0;
15,950,549✔
9583
  int32_t  lino;
9584
  int32_t  tlen;
9585
  tEncoderInit(&encoder, buf, bufLen);
15,950,549✔
9586
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
15,953,389!
9587

9588
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->code));
31,903,704!
9589
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->affectedRows));
31,903,704!
9590
  int32_t tbNum = taosArrayGetSize(pRsp->tbVerInfo);
15,951,852✔
9591
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, tbNum));
15,952,149!
9592
  if (tbNum > 0) {
15,952,149✔
9593
    for (int32_t i = 0; i < tbNum; ++i) {
18,813,473✔
9594
      STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
9,406,988✔
9595
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pVer->tbFName));
18,810,494!
9596
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->sversion));
18,810,494!
9597
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->tversion));
18,810,494!
9598
    }
9599
  }
9600

9601
  tEndEncode(&encoder);
15,950,408✔
9602

9603
_exit:
15,953,545✔
9604
  if (code) {
15,953,545!
9605
    tlen = code;
×
9606
  } else {
9607
    tlen = encoder.pos;
15,953,545✔
9608
  }
9609
  tEncoderClear(&encoder);
15,953,545✔
9610
  return tlen;
15,954,916✔
9611
}
9612

9613
int32_t tDeserializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
1,636,154✔
9614
  SDecoder decoder = {0};
1,636,154✔
9615
  int32_t  code = 0;
1,636,154✔
9616
  int32_t  lino;
9617
  tDecoderInit(&decoder, (char *)buf, bufLen);
1,636,154✔
9618

9619
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,636,137✔
9620

9621
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->code));
3,272,542!
9622
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->affectedRows));
3,272,457!
9623
  int32_t tbNum = 0;
1,636,222✔
9624
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbNum));
1,636,097!
9625
  if (tbNum > 0) {
1,636,097✔
9626
    pRsp->tbVerInfo = taosArrayInit(tbNum, sizeof(STbVerInfo));
1,149,457✔
9627
    if (NULL == pRsp->tbVerInfo) {
1,149,449!
9628
      TAOS_CHECK_EXIT(terrno);
×
9629
    }
9630
    STbVerInfo tbVer;
9631
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tbVer.tbFName));
1,149,449!
9632
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.sversion));
1,149,473!
9633
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.tversion));
1,149,466!
9634
    if (NULL == taosArrayPush(pRsp->tbVerInfo, &tbVer)) {
2,298,941!
9635
      TAOS_CHECK_EXIT(terrno);
×
9636
    }
9637
  }
9638

9639
  tEndDecode(&decoder);
1,636,115✔
9640

9641
_exit:
1,636,224✔
9642
  tDecoderClear(&decoder);
1,636,224✔
9643
  return code;
1,636,298✔
9644
}
9645

9646
int32_t tSerializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
5,652,217✔
9647
  int32_t code = 0;
5,652,217✔
9648
  int32_t lino;
9649
  int32_t tlen;
9650
  int32_t headLen = sizeof(SMsgHead);
5,652,217✔
9651
  if (buf != NULL) {
5,652,217✔
9652
    buf = (char *)buf + headLen;
2,826,835✔
9653
    bufLen -= headLen;
2,826,835✔
9654
  }
9655

9656
  SEncoder encoder = {0};
5,652,217✔
9657
  tEncoderInit(&encoder, buf, bufLen);
5,652,217✔
9658

9659
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,652,491!
9660
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
11,306,076!
9661
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epId.nodeId));
11,306,076!
9662
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pReq->epId.ep.port));
11,306,076!
9663
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->epId.ep.fqdn));
11,306,076!
9664
  if (pReq->taskAction) {
5,653,038!
9665
    int32_t num = taosArrayGetSize(pReq->taskAction);
×
9666
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
9667
    for (int32_t i = 0; i < num; ++i) {
×
9668
      STaskAction *action = taosArrayGet(pReq->taskAction, i);
×
9669
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->queryId));
×
9670
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->taskId));
×
9671
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, action->action));
×
9672
    }
9673
  } else {
9674
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
5,653,038!
9675
  }
9676
  tEndEncode(&encoder);
5,653,038✔
9677

9678
_exit:
5,652,709✔
9679
  if (code) {
5,652,709!
9680
    tEncoderClear(&encoder);
×
9681
    return code;
×
9682
  } else {
9683
    tlen = encoder.pos;
5,652,709✔
9684
    tEncoderClear(&encoder);
5,652,709✔
9685

9686
    if (buf != NULL) {
5,652,865✔
9687
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
2,827,236✔
9688
      pHead->vgId = htonl(pReq->header.vgId);
2,827,236✔
9689
      pHead->contLen = htonl(tlen + headLen);
2,827,236✔
9690
    }
9691
    return tlen + headLen;
5,652,865✔
9692
  }
9693
}
9694

9695
int32_t tDeserializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
1,944,477✔
9696
  int32_t   headLen = sizeof(SMsgHead);
1,944,477✔
9697
  SMsgHead *pHead = buf;
1,944,477✔
9698
  pHead->vgId = pReq->header.vgId;
1,944,477✔
9699
  pHead->contLen = pReq->header.contLen;
1,944,477✔
9700
  int32_t code = 0;
1,944,477✔
9701
  int32_t lino;
9702

9703
  SDecoder decoder = {0};
1,944,477✔
9704
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
1,944,477✔
9705

9706
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,943,799!
9707
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
3,889,600!
9708
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epId.nodeId));
3,889,560!
9709
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pReq->epId.ep.port));
3,889,065!
9710
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->epId.ep.fqdn));
1,944,301!
9711
  int32_t num = 0;
1,944,577✔
9712
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1,944,650!
9713
  if (num > 0) {
1,944,650!
9714
    pReq->taskAction = taosArrayInit(num, sizeof(STaskStatus));
×
9715
    if (NULL == pReq->taskAction) {
×
9716
      TAOS_CHECK_EXIT(terrno);
×
9717
    }
9718
    for (int32_t i = 0; i < num; ++i) {
×
9719
      STaskAction action = {0};
×
9720
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.queryId));
×
9721
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.taskId));
×
9722
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &action.action));
×
9723
      if (taosArrayPush(pReq->taskAction, &action) == NULL) {
×
9724
        TAOS_CHECK_EXIT(terrno);
×
9725
      }
9726
    }
9727
  } else {
9728
    pReq->taskAction = NULL;
1,944,650✔
9729
  }
9730
  tEndDecode(&decoder);
1,944,650✔
9731

9732
_exit:
1,944,001✔
9733
  tDecoderClear(&decoder);
1,944,001✔
9734
  return code;
1,944,264✔
9735
}
9736

9737
void tFreeSSchedulerHbReq(SSchedulerHbReq *pReq) { taosArrayDestroy(pReq->taskAction); }
×
9738

9739
int32_t tSerializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
4,455,062✔
9740
  SEncoder encoder = {0};
4,455,062✔
9741
  int32_t  code = 0;
4,455,062✔
9742
  int32_t  lino;
9743
  int32_t  tlen;
9744
  tEncoderInit(&encoder, buf, bufLen);
4,455,062✔
9745

9746
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,455,254!
9747
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->epId.nodeId));
8,910,786!
9748
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pRsp->epId.ep.port));
8,910,786!
9749
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->epId.ep.fqdn));
8,910,786!
9750
  if (pRsp->taskStatus) {
4,455,393✔
9751
    int32_t num = taosArrayGetSize(pRsp->taskStatus);
570,190✔
9752
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
570,190!
9753
    for (int32_t i = 0; i < num; ++i) {
1,024,944✔
9754
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
454,754✔
9755
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->queryId));
909,508!
9756
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->taskId));
909,508!
9757
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, status->refId));
909,508!
9758
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, status->execId));
909,508!
9759
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, status->status));
909,508!
9760
    }
9761
    for (int32_t i = 0; i < num; ++i) {
1,024,944✔
9762
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
454,754✔
9763
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->clientId));
909,508!
9764
    }
9765
  } else {
9766
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
3,885,203!
9767
  }
9768
  tEndEncode(&encoder);
4,455,393✔
9769

9770
_exit:
4,455,632✔
9771
  if (code) {
4,455,632!
9772
    tlen = code;
×
9773
  } else {
9774
    tlen = encoder.pos;
4,455,632✔
9775
  }
9776
  tEncoderClear(&encoder);
4,455,632✔
9777
  return tlen;
4,455,329✔
9778
}
9779

9780
int32_t tDeserializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
909,342✔
9781
  SDecoder decoder = {0};
909,342✔
9782
  int32_t  code = 0;
909,342✔
9783
  int32_t  lino;
9784
  tDecoderInit(&decoder, buf, bufLen);
909,342✔
9785

9786
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
909,335✔
9787
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->epId.nodeId));
1,818,721!
9788
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pRsp->epId.ep.port));
1,818,705!
9789
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->epId.ep.fqdn));
909,357!
9790
  int32_t num = 0;
909,271✔
9791
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
909,347!
9792
  if (num > 0) {
909,347✔
9793
    pRsp->taskStatus = taosArrayInit(num, sizeof(STaskStatus));
6,402✔
9794
    if (NULL == pRsp->taskStatus) {
6,403!
9795
      TAOS_CHECK_EXIT(terrno);
×
9796
    }
9797
    for (int32_t i = 0; i < num; ++i) {
18,806✔
9798
      STaskStatus status = {0};
12,404✔
9799
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.queryId));
12,404!
9800
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.taskId));
12,404!
9801
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &status.refId));
12,404!
9802
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &status.execId));
12,404!
9803
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &status.status));
12,404!
9804
      if (taosArrayPush(pRsp->taskStatus, &status) == NULL) {
24,807!
9805
        TAOS_CHECK_EXIT(terrno);
×
9806
      }
9807
    }
9808
    if (!tDecodeIsEnd(&decoder)) {
6,402!
9809
      for (int32_t i = 0; i < num; ++i) {
18,805✔
9810
        STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
12,403✔
9811
        TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status->clientId));
24,806!
9812
      }
9813
    }
9814
  } else {
9815
    pRsp->taskStatus = NULL;
902,945✔
9816
  }
9817
  tEndDecode(&decoder);
909,347✔
9818

9819
_exit:
909,300✔
9820
  tDecoderClear(&decoder);
909,300✔
9821
  return code;
909,305✔
9822
}
9823

9824
void tFreeSSchedulerHbRsp(SSchedulerHbRsp *pRsp) { taosArrayDestroy(pRsp->taskStatus); }
1,195,091✔
9825

9826
int tEncodeSVCreateTbBatchRsp(SEncoder *pCoder, const SVCreateTbBatchRsp *pRsp) {
133,892✔
9827
  int32_t        nRsps = taosArrayGetSize(pRsp->pArray);
133,892✔
9828
  SVCreateTbRsp *pCreateRsp;
9829

9830
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
133,897!
9831
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
133,902!
9832
  for (int32_t i = 0; i < nRsps; i++) {
347,223✔
9833
    pCreateRsp = taosArrayGet(pRsp->pArray, i);
213,325✔
9834
    TAOS_CHECK_RETURN(tEncodeSVCreateTbRsp(pCoder, pCreateRsp));
213,324!
9835
  }
9836

9837
  tEndEncode(pCoder);
133,898✔
9838
  return 0;
133,897✔
9839
}
9840

9841
int tDecodeSVCreateTbBatchRsp(SDecoder *pCoder, SVCreateTbBatchRsp *pRsp) {
64,439✔
9842
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
64,439!
9843
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
128,946!
9844
  pRsp->pRsps = (SVCreateTbRsp *)tDecoderMalloc(pCoder, sizeof(*pRsp->pRsps) * pRsp->nRsps);
64,469!
9845
  if (pRsp->pRsps == NULL) {
64,474!
9846
    TAOS_CHECK_RETURN(terrno);
×
9847
  }
9848
  for (int32_t i = 0; i < pRsp->nRsps; i++) {
154,512✔
9849
    TAOS_CHECK_RETURN(tDecodeSVCreateTbRsp(pCoder, pRsp->pRsps + i));
90,070!
9850
  }
9851

9852
  tEndDecode(pCoder);
64,442✔
9853
  return 0;
64,462✔
9854
}
9855

9856
int32_t tEncodeTSma(SEncoder *pCoder, const STSma *pSma) {
104✔
9857
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->version));
208!
9858
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->intervalUnit));
208!
9859
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->slidingUnit));
208!
9860
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->timezoneInt));
208!
9861
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->dstVgId));
208!
9862
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->indexName));
208!
9863
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->exprLen));
208!
9864
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->tagsFilterLen));
208!
9865
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->indexUid));
208!
9866
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->tableUid));
208!
9867
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->dstTbUid));
208!
9868
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->dstTbName));
208!
9869
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->interval));
208!
9870
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->offset));
208!
9871
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->sliding));
208!
9872
  if (pSma->exprLen > 0) {
104!
9873
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->expr));
208!
9874
  }
9875
  if (pSma->tagsFilterLen > 0) {
104!
9876
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->tagsFilter));
×
9877
  }
9878

9879
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaRow));
208!
9880
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaTag));
208!
9881

9882
  return 0;
104✔
9883
}
9884

9885
int32_t tDecodeTSma(SDecoder *pCoder, STSma *pSma, bool deepCopy) {
54✔
9886
  int32_t code = 0;
54✔
9887
  int32_t lino;
9888

9889
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->version));
108!
9890
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->intervalUnit));
108!
9891
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->slidingUnit));
108!
9892
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->timezoneInt));
108!
9893
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->dstVgId));
108!
9894
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pSma->indexName));
54!
9895
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->exprLen));
108!
9896
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->tagsFilterLen));
108!
9897
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->indexUid));
108!
9898
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->tableUid));
108!
9899
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->dstTbUid));
108!
9900
  if (deepCopy) {
54✔
9901
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->dstTbName));
4!
9902
  } else {
9903
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->dstTbName));
104!
9904
  }
9905

9906
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->interval));
108!
9907
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->offset));
108!
9908
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->sliding));
108!
9909
  if (pSma->exprLen > 0) {
54!
9910
    if (deepCopy) {
54✔
9911
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->expr));
4!
9912
    } else {
9913
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->expr));
104!
9914
    }
9915
  } else {
9916
    pSma->expr = NULL;
×
9917
  }
9918
  if (pSma->tagsFilterLen > 0) {
54!
9919
    if (deepCopy) {
×
9920
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->tagsFilter));
×
9921
    } else {
9922
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->tagsFilter));
×
9923
    }
9924
  } else {
9925
    pSma->tagsFilter = NULL;
54✔
9926
  }
9927
  // only needed in dstVgroup
9928
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaRow));
108!
9929
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaTag));
108!
9930

9931
_exit:
54✔
9932
  return code;
54✔
9933
}
9934

9935
int32_t tEncodeSVCreateTSmaReq(SEncoder *pCoder, const SVCreateTSmaReq *pReq) {
52✔
9936
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
52!
9937
  TAOS_CHECK_RETURN(tEncodeTSma(pCoder, pReq));
52!
9938
  tEndEncode(pCoder);
52✔
9939
  return 0;
52✔
9940
}
9941

9942
int32_t tDecodeSVCreateTSmaReq(SDecoder *pCoder, SVCreateTSmaReq *pReq) {
52✔
9943
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
52!
9944
  TAOS_CHECK_RETURN(tDecodeTSma(pCoder, pReq, false));
52!
9945
  tEndDecode(pCoder);
52✔
9946
  return 0;
52✔
9947
}
9948

9949
int32_t tEncodeSVDropTSmaReq(SEncoder *pCoder, const SVDropTSmaReq *pReq) {
×
9950
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
9951
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->indexUid));
×
9952
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->indexName));
×
9953

9954
  tEndEncode(pCoder);
×
9955
  return 0;
×
9956
}
9957

9958
int32_t tSerializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
123,274✔
9959
  int32_t code = 0;
123,274✔
9960
  int32_t lino;
9961
  int32_t headLen = sizeof(SMsgHead);
123,274✔
9962
  if (buf != NULL) {
123,274✔
9963
    buf = (char *)buf + headLen;
61,640✔
9964
    bufLen -= headLen;
61,640✔
9965
  }
9966

9967
  SEncoder encoder = {0};
123,274✔
9968
  tEncoderInit(&encoder, buf, bufLen);
123,274✔
9969

9970
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
123,279!
9971
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
246,554!
9972
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
246,554!
9973
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
246,554!
9974
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
246,554!
9975
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
246,554!
9976
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->msg, pReq->phyLen));
246,554!
9977
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
246,554!
9978
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
246,554!
9979
  tEndEncode(&encoder);
123,277✔
9980

9981
_exit:
123,277✔
9982
  if (code) {
123,277!
9983
    tEncoderClear(&encoder);
×
9984
    return code;
×
9985
  } else {
9986
    int32_t tlen = encoder.pos;
123,277✔
9987
    tEncoderClear(&encoder);
123,277✔
9988

9989
    if (buf != NULL) {
123,278✔
9990
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
61,642✔
9991
      pHead->vgId = htonl(pReq->header.vgId);
61,642✔
9992
      pHead->contLen = htonl(tlen + headLen);
61,642✔
9993
    }
9994

9995
    return tlen + headLen;
123,278✔
9996
  }
9997
}
9998

9999
int32_t tDeserializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
64,440✔
10000
  int32_t   code = 0;
64,440✔
10001
  int32_t   lino;
10002
  int32_t   headLen = sizeof(SMsgHead);
64,440✔
10003
  SMsgHead *pHead = buf;
64,440✔
10004
  pHead->vgId = pReq->header.vgId;
64,440✔
10005
  pHead->contLen = pReq->header.contLen;
64,440✔
10006

10007
  SDecoder decoder = {0};
64,440✔
10008
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
64,440✔
10009

10010
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
64,439!
10011
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
128,882!
10012
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
128,884!
10013
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
128,881!
10014
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
128,879!
10015
  pReq->sql = taosMemoryCalloc(1, pReq->sqlLen + 1);
64,440!
10016
  if (NULL == pReq->sql) {
64,441!
10017
    TAOS_CHECK_EXIT(terrno);
×
10018
  }
10019
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
64,441!
10020
  uint64_t msgLen = 0;
64,440✔
10021
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, &msgLen));
128,881!
10022
  pReq->phyLen = msgLen;
64,441✔
10023

10024
  if (!tDecodeIsEnd(&decoder)) {
64,441!
10025
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
128,884!
10026
  }
10027
  if (!tDecodeIsEnd(&decoder)) {
64,441!
10028
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
128,884!
10029
  } else {
10030
    pReq->clientId = 0;
×
10031
  }
10032
  tEndDecode(&decoder);
64,441✔
10033

10034
_exit:
64,442✔
10035
  tDecoderClear(&decoder);
64,442✔
10036
  return 0;
64,442✔
10037
}
10038

10039
int32_t tEncodeSVDeleteRsp(SEncoder *pCoder, const SVDeleteRsp *pReq) {
131,277✔
10040
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
131,277✔
10041
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->affectedRows));
262,556!
10042
  tEndEncode(pCoder);
131,278✔
10043
  return 0;
131,276✔
10044
}
10045

10046
int32_t tDecodeSVDeleteRsp(SDecoder *pCoder, SVDeleteRsp *pReq) {
61,693✔
10047
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
61,693✔
10048
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->affectedRows));
123,286!
10049
  tEndDecode(pCoder);
61,643✔
10050
  return 0;
61,643✔
10051
}
10052

10053
int32_t tSerializeSCMCreateStreamReq(void *buf, int32_t bufLen, const SCMCreateStreamReq *pReq) {
2,688✔
10054
  int32_t sqlLen = 0;
2,688✔
10055
  int32_t astLen = 0;
2,688✔
10056
  if (pReq->sql != NULL) sqlLen = (int32_t)strlen(pReq->sql);
2,688!
10057
  if (pReq->ast != NULL) astLen = (int32_t)strlen(pReq->ast);
2,688!
10058

10059
  SEncoder encoder = {0};
2,688✔
10060
  tEncoderInit(&encoder, buf, bufLen);
2,688✔
10061
  int32_t code = 0;
2,688✔
10062
  int32_t lino;
10063

10064
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,688!
10065
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
5,376!
10066
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sourceDB));
5,376!
10067
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->targetStbFullName));
5,376!
10068
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
5,376!
10069
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fillHistory));
5,376!
10070
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sqlLen));
2,688!
10071
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, astLen));
2,688!
10072
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->triggerType));
5,376!
10073
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->maxDelay));
5,376!
10074
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark));
5,376!
10075
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExpired));
5,376!
10076
  if (sqlLen > 0) {
2,688!
10077
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
5,376!
10078
  }
10079
  if (astLen > 0) {
2,688!
10080
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
5,376!
10081
  }
10082
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTags));
5,376!
10083
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
6,014✔
10084
    SField *pField = taosArrayGet(pReq->pTags, i);
3,326✔
10085
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
6,652!
10086
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
6,652!
10087
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
6,652!
10088
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
6,652!
10089
  }
10090

10091
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createStb));
5,376!
10092
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->targetStbUid));
5,376!
10093

10094
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->fillNullCols)));
5,376!
10095
  for (int32_t i = 0; i < taosArrayGetSize(pReq->fillNullCols); ++i) {
2,880✔
10096
    SColLocation *pCol = taosArrayGet(pReq->fillNullCols, i);
192✔
10097
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->slotId));
384!
10098
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->colId));
384!
10099
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pCol->type));
384!
10100
  }
10101

10102
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark));
5,376!
10103
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUpdate));
5,376!
10104
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastTs));
5,376!
10105

10106
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->pVgroupVerList)));
5,376!
10107

10108
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
4,922✔
10109
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
2,234✔
10110
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
4,468!
10111
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
4,468!
10112
  }
10113

10114
  int32_t colSize = taosArrayGetSize(pReq->pCols);
2,688✔
10115
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, colSize));
2,688!
10116
  for (int32_t i = 0; i < colSize; ++i) {
105,464✔
10117
    SFieldWithOptions *pField = taosArrayGet(pReq->pCols, i);
102,776✔
10118
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
205,552!
10119
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
205,552!
10120
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
205,552!
10121
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
205,552!
10122
  }
10123

10124
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->smaId));
5,376!
10125

10126
  int32_t addrSize = taosArrayGetSize(pReq->pNotifyAddrUrls);
2,688✔
10127
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, addrSize));
2,688!
10128
  for (int32_t i = 0; i < addrSize; ++i) {
2,688!
10129
    const char *url = taosArrayGetP(pReq->pNotifyAddrUrls, i);
×
10130
    TAOS_CHECK_EXIT((tEncodeCStr(&encoder, url)));
×
10131
  }
10132
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->notifyEventTypes));
5,376!
10133
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->notifyErrorHandle));
5,376!
10134
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->notifyHistory));
5,376!
10135
  tEndEncode(&encoder);
2,688✔
10136

10137
_exit:
2,688✔
10138
  if (code) {
2,688!
10139
    tEncoderClear(&encoder);
×
10140
    return code;
×
10141
  } else {
10142
    int32_t tlen = encoder.pos;
2,688✔
10143
    tEncoderClear(&encoder);
2,688✔
10144
    return tlen;
2,688✔
10145
  }
10146
}
10147

10148
int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStreamReq *pReq) {
1,817✔
10149
  int32_t sqlLen = 0;
1,817✔
10150
  int32_t astLen = 0;
1,817✔
10151
  int32_t numOfFillNullCols = 0;
1,817✔
10152
  int32_t numOfVgVer = 0;
1,817✔
10153

10154
  SDecoder decoder = {0};
1,817✔
10155
  tDecoderInit(&decoder, buf, bufLen);
1,817✔
10156
  int32_t code = 0;
1,817✔
10157
  int32_t lino;
10158

10159
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,817!
10160
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,817!
10161
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sourceDB));
1,817!
10162
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->targetStbFullName));
1,817!
10163
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
3,634!
10164
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->fillHistory));
3,634!
10165
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
1,817!
10166
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
1,817!
10167
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->triggerType));
3,634!
10168
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
3,634!
10169
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
3,634!
10170
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExpired));
3,634!
10171

10172
  if (sqlLen > 0) {
1,817!
10173
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
1,817!
10174
    if (pReq->sql == NULL) {
1,817!
10175
      TAOS_CHECK_EXIT(terrno);
×
10176
    }
10177
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
1,817!
10178
  }
10179

10180
  if (astLen > 0) {
1,817!
10181
    pReq->ast = taosMemoryCalloc(1, astLen + 1);
1,817!
10182
    if (pReq->ast == NULL) {
1,817!
10183
      TAOS_CHECK_EXIT(terrno);
×
10184
    }
10185
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
1,817!
10186
  }
10187

10188
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
3,634!
10189
  if (pReq->numOfTags > 0) {
1,817✔
10190
    pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField));
296✔
10191
    if (pReq->pTags == NULL) {
296!
10192
      TAOS_CHECK_EXIT(terrno);
×
10193
    }
10194

10195
    for (int32_t i = 0; i < pReq->numOfTags; ++i) {
1,912✔
10196
      SField field = {0};
1,616✔
10197
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
1,616!
10198
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
1,616!
10199
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
1,616!
10200
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
1,616!
10201
      if (taosArrayPush(pReq->pTags, &field) == NULL) {
3,232!
10202
        TAOS_CHECK_EXIT(terrno);
×
10203
      }
10204
    }
10205
  }
10206
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createStb));
3,634!
10207
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->targetStbUid));
3,634!
10208
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFillNullCols));
1,817!
10209
  if (numOfFillNullCols > 0) {
1,817✔
10210
    pReq->fillNullCols = taosArrayInit(numOfFillNullCols, sizeof(SColLocation));
26✔
10211
    if (pReq->fillNullCols == NULL) {
26!
10212
      TAOS_CHECK_EXIT(terrno);
×
10213
    }
10214

10215
    for (int32_t i = 0; i < numOfFillNullCols; ++i) {
253✔
10216
      SColLocation col = {0};
227✔
10217
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.slotId));
227!
10218
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.colId));
227!
10219
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &col.type));
227!
10220
      if (taosArrayPush(pReq->fillNullCols, &col) == NULL) {
454!
10221
        TAOS_CHECK_EXIT(terrno);
×
10222
      }
10223
    }
10224
  }
10225

10226
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
3,634!
10227
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUpdate));
3,634!
10228
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
3,634!
10229

10230
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
1,817!
10231
  if (numOfVgVer > 0) {
1,817✔
10232
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
757✔
10233
    if (pReq->pVgroupVerList == NULL) {
757!
10234
      TAOS_CHECK_EXIT(terrno);
×
10235
    }
10236

10237
    for (int32_t i = 0; i < numOfVgVer; ++i) {
2,158✔
10238
      SVgroupVer v = {0};
1,401✔
10239
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
1,401!
10240
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
1,401!
10241
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
2,802!
10242
        TAOS_CHECK_EXIT(terrno);
×
10243
      }
10244
    }
10245
  }
10246
  int32_t colSize = 0;
1,817✔
10247
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &colSize));
1,817!
10248
  if (colSize > 0) {
1,817!
10249
    pReq->pCols = taosArrayInit(colSize, sizeof(SField));
1,817✔
10250
    if (pReq->pCols == NULL) {
1,817!
10251
      TAOS_CHECK_EXIT(terrno);
×
10252
    }
10253

10254
    for (int32_t i = 0; i < colSize; ++i) {
62,652✔
10255
      SField field = {0};
60,835✔
10256
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
60,835!
10257
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
60,835!
10258
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
60,835!
10259
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
60,835!
10260
      if (taosArrayPush(pReq->pCols, &field) == NULL) {
121,670!
10261
        TAOS_CHECK_EXIT(terrno);
×
10262
      }
10263
    }
10264
  }
10265
  if (!tDecodeIsEnd(&decoder)) {
1,817!
10266
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->smaId));
3,634!
10267
  }
10268

10269
  if (!tDecodeIsEnd(&decoder)) {
1,817!
10270
    int32_t addrSize = 0;
1,817✔
10271
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &addrSize));
1,817!
10272
    pReq->pNotifyAddrUrls = taosArrayInit(addrSize, POINTER_BYTES);
1,817✔
10273
    if (pReq->pNotifyAddrUrls == NULL) {
1,817!
10274
      TAOS_CHECK_EXIT(terrno);
×
10275
    }
10276
    for (int32_t i = 0; i < addrSize; ++i) {
1,817!
10277
      char *url = NULL;
×
10278
      TAOS_CHECK_EXIT(tDecodeCStr(&decoder, &url));
×
10279
      url = taosStrndup(url, TSDB_STREAM_NOTIFY_URL_LEN);
×
10280
      if (url == NULL) {
×
10281
        TAOS_CHECK_EXIT(terrno);
×
10282
      }
10283
      if (taosArrayPush(pReq->pNotifyAddrUrls, &url) == NULL) {
×
10284
        taosMemoryFree(url);
×
10285
        TAOS_CHECK_EXIT(terrno);
×
10286
      }
10287
    }
10288
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->notifyEventTypes));
3,634!
10289
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->notifyErrorHandle));
3,634!
10290
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->notifyHistory));
3,634!
10291
  }
10292

10293
  tEndDecode(&decoder);
1,817✔
10294
_exit:
1,817✔
10295
  tDecoderClear(&decoder);
1,817✔
10296
  return code;
1,817✔
10297
}
10298

10299
int32_t tSerializeSMDropStreamReq(void *buf, int32_t bufLen, const SMDropStreamReq *pReq) {
2,270✔
10300
  int32_t  code = 0;
2,270✔
10301
  int32_t  lino;
10302
  int32_t  tlen;
10303
  SEncoder encoder = {0};
2,270✔
10304
  tEncoderInit(&encoder, buf, bufLen);
2,270✔
10305

10306
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,270!
10307
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,540!
10308
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
4,540!
10309

10310
  ENCODESQL();
6,810!
10311

10312
  tEndEncode(&encoder);
2,270✔
10313

10314
_exit:
2,270✔
10315
  if (code) {
2,270!
10316
    tlen = code;
×
10317
  } else {
10318
    tlen = encoder.pos;
2,270✔
10319
  }
10320
  tEncoderClear(&encoder);
2,270✔
10321
  return tlen;
2,270✔
10322
}
10323

10324
int32_t tDeserializeSMDropStreamReq(void *buf, int32_t bufLen, SMDropStreamReq *pReq) {
1,425✔
10325
  SDecoder decoder = {0};
1,425✔
10326
  int32_t  code = 0;
1,425✔
10327
  int32_t  lino;
10328
  tDecoderInit(&decoder, buf, bufLen);
1,425✔
10329

10330
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,425!
10331
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,425!
10332
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,850!
10333

10334
  DECODESQL();
4,275!
10335

10336
  tEndDecode(&decoder);
1,425✔
10337

10338
_exit:
1,425✔
10339
  tDecoderClear(&decoder);
1,425✔
10340
  return code;
1,425✔
10341
}
10342

10343
void tFreeMDropStreamReq(SMDropStreamReq *pReq) { FREESQL(); }
2,560!
10344

10345
void tFreeSCMCreateStreamReq(SCMCreateStreamReq *pReq) {
5,412✔
10346
  if (NULL == pReq) {
5,412✔
10347
    return;
1,699✔
10348
  }
10349
  taosMemoryFreeClear(pReq->sql);
3,713!
10350
  taosMemoryFreeClear(pReq->ast);
3,713!
10351
  taosArrayDestroy(pReq->pTags);
3,713✔
10352
  taosArrayDestroy(pReq->fillNullCols);
3,713✔
10353
  taosArrayDestroy(pReq->pVgroupVerList);
3,713✔
10354
  taosArrayDestroy(pReq->pCols);
3,713✔
10355
  taosArrayDestroyP(pReq->pNotifyAddrUrls, NULL);
3,713✔
10356
}
10357

10358
int32_t tEncodeSRSmaParam(SEncoder *pCoder, const SRSmaParam *pRSmaParam) {
22✔
10359
  int32_t code = 0;
22✔
10360
  int32_t lino;
10361
  for (int32_t i = 0; i < 2; ++i) {
66✔
10362
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->maxdelay[i]));
88!
10363
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->watermark[i]));
88!
10364
    TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRSmaParam->qmsgLen[i]));
88!
10365
    if (pRSmaParam->qmsgLen[i] > 0) {
44!
10366
      TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pRSmaParam->qmsg[i], (uint64_t)pRSmaParam->qmsgLen[i]));
88!
10367
    }
10368
  }
10369

10370
_exit:
22✔
10371
  return code;
22✔
10372
}
10373

10374
int32_t tDecodeSRSmaParam(SDecoder *pCoder, SRSmaParam *pRSmaParam) {
269✔
10375
  int32_t code = 0;
269✔
10376
  int32_t lino;
10377
  for (int32_t i = 0; i < 2; ++i) {
807✔
10378
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->maxdelay[i]));
1,076!
10379
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->watermark[i]));
1,076!
10380
    TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pRSmaParam->qmsgLen[i]));
1,076!
10381
    if (pRSmaParam->qmsgLen[i] > 0) {
538!
10382
      TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pRSmaParam->qmsg[i], NULL));  // qmsgLen contains len of '\0'
1,076!
10383
    } else {
10384
      pRSmaParam->qmsg[i] = NULL;
×
10385
    }
10386
  }
10387

10388
_exit:
269✔
10389
  return code;
269✔
10390
}
10391

10392
int32_t tEncodeSColCmprWrapper(SEncoder *pCoder, const SColCmprWrapper *pWrapper) {
88,216✔
10393
  int32_t code = 0;
88,216✔
10394
  int32_t lino;
10395

10396
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
176,432!
10397
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
176,432!
10398
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
5,487,738✔
10399
    SColCmpr *p = &pWrapper->pColCmpr[i];
5,399,522✔
10400
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
10,799,044!
10401
    TAOS_CHECK_EXIT(tEncodeU32(pCoder, p->alg));
10,799,044!
10402
  }
10403

10404
_exit:
88,216✔
10405
  return code;
88,216✔
10406
}
10407

10408
int32_t tDecodeSColCmprWrapperEx(SDecoder *pDecoder, SColCmprWrapper *pWrapper) {
48,524✔
10409
  int32_t code = 0;
48,524✔
10410
  int32_t lino;
10411

10412
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
97,070!
10413
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
97,099!
10414

10415
  pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr));
48,553✔
10416
  if (pWrapper->pColCmpr == NULL) {
48,606!
10417
    TAOS_CHECK_EXIT(terrno);
×
10418
  }
10419

10420
  for (int i = 0; i < pWrapper->nCols; i++) {
2,706,872✔
10421
    SColCmpr *p = &pWrapper->pColCmpr[i];
2,658,314✔
10422
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
5,314,729!
10423
    TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &p->alg));
5,314,681!
10424
  }
10425

10426
_exit:
48,558✔
10427
  if (code) {
48,558!
10428
    taosMemoryFree(pWrapper->pColCmpr);
×
10429
  }
10430
  return code;
48,557✔
10431
}
10432

10433
int tEncodeSVCreateStbReq(SEncoder *pCoder, const SVCreateStbReq *pReq) {
57,006✔
10434
  int32_t code = 0;
57,006✔
10435
  int32_t lino;
10436

10437
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
57,006!
10438

10439
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
114,012!
10440
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->suid));
114,012!
10441
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->rollup));
114,012!
10442
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaRow));
114,012!
10443
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaTag));
114,012!
10444
  if (pReq->rollup) {
57,006✔
10445
    TAOS_CHECK_EXIT(tEncodeSRSmaParam(pCoder, &pReq->rsmaParam));
8!
10446
  }
10447

10448
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->alterOriDataLen));
114,012!
10449
  if (pReq->alterOriDataLen > 0) {
57,006✔
10450
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->alterOriData, pReq->alterOriDataLen));
23,844!
10451
  }
10452
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->source));
114,012!
10453

10454
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->colCmpred));
114,012!
10455
  TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
57,006!
10456
  tEndEncode(pCoder);
57,006✔
10457

10458
_exit:
57,006✔
10459
  return code;
57,006✔
10460
}
10461

10462
int tDecodeSVCreateStbReq(SDecoder *pCoder, SVCreateStbReq *pReq) {
34,077✔
10463
  int32_t code = 0;
34,077✔
10464
  int32_t lino;
10465

10466
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
34,077!
10467

10468
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
68,269!
10469
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
68,263!
10470
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->rollup));
68,271!
10471
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaRow));
68,136!
10472
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaTag));
68,082!
10473
  if (pReq->rollup) {
34,080✔
10474
    TAOS_CHECK_EXIT(tDecodeSRSmaParam(pCoder, &pReq->rsmaParam));
7!
10475
  }
10476

10477
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->alterOriDataLen));
68,186!
10478
  if (pReq->alterOriDataLen > 0) {
34,106✔
10479
    TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pReq->alterOriData, NULL));
12,727!
10480
  }
10481
  if (!tDecodeIsEnd(pCoder)) {
34,107✔
10482
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->source));
68,134!
10483

10484
    if (!tDecodeIsEnd(pCoder)) {
34,072!
10485
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->colCmpred));
68,173!
10486
    }
10487
    if (!tDecodeIsEnd(pCoder)) {
34,071!
10488
      TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
34,096!
10489
    }
10490
  }
10491
  tEndDecode(pCoder);
34,115✔
10492

10493
_exit:
34,079✔
10494
  return code;
34,079✔
10495
}
10496

10497
int tEncodeSVCreateTbReq(SEncoder *pCoder, const SVCreateTbReq *pReq) {
358,719✔
10498
  int32_t code = 0;
358,719✔
10499
  int32_t lino;
10500

10501
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
358,719!
10502

10503
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pReq->flags));
717,474!
10504
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
717,474!
10505
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->uid));
717,474!
10506
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->btime));
717,474!
10507
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->ttl));
717,474!
10508
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->type));
717,474!
10509
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->commentLen));
717,474!
10510
  if (pReq->commentLen > 0) {
358,737✔
10511
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->comment));
76!
10512
  }
10513

10514
  if (pReq->type == TSDB_CHILD_TABLE) {
358,737✔
10515
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->ctb.stbName));
655,062!
10516
    TAOS_CHECK_EXIT(tEncodeU8(pCoder, pReq->ctb.tagNum));
655,062!
10517
    TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->ctb.suid));
655,062!
10518
    TAOS_CHECK_EXIT(tEncodeTag(pCoder, (const STag *)pReq->ctb.pTag));
327,531!
10519
    int32_t len = taosArrayGetSize(pReq->ctb.tagName);
327,547✔
10520
    TAOS_CHECK_EXIT(tEncodeI32(pCoder, len));
327,538!
10521
    for (int32_t i = 0; i < len; i++) {
1,688,486✔
10522
      char *name = taosArrayGet(pReq->ctb.tagName, i);
1,360,936✔
10523
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, name));
1,360,948!
10524
    }
10525
  } else if (pReq->type == TSDB_NORMAL_TABLE) {
31,206!
10526
    TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->ntb.schemaRow));
62,420!
10527
  } else {
10528
    return TSDB_CODE_INVALID_MSG;
×
10529
  }
10530
  // ENCODESQL
10531

10532
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->sqlLen));
717,520!
10533
  if (pReq->sqlLen > 0) {
358,760!
10534
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->sql, pReq->sqlLen));
×
10535
  }
10536
  // Encode Column Options: encode compress level
10537
  if (pReq->type == TSDB_SUPER_TABLE || pReq->type == TSDB_NORMAL_TABLE) {
358,760✔
10538
    TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
31,261!
10539
  }
10540

10541
  tEndEncode(pCoder);
358,709✔
10542
_exit:
358,720✔
10543
  return code;
358,720✔
10544
}
10545

10546
int tDecodeSVCreateTbReq(SDecoder *pCoder, SVCreateTbReq *pReq) {
174,810✔
10547
  int32_t code = 0;
174,810✔
10548
  int32_t lino;
10549

10550
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
174,810!
10551

10552
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pReq->flags));
349,646!
10553
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
349,609!
10554
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->uid));
349,555!
10555
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->btime));
349,472!
10556
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->ttl));
349,385!
10557
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->type));
349,324!
10558
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->commentLen));
349,298!
10559
  if (pReq->commentLen > 0) {
174,646✔
10560
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
3!
10561
    if (pReq->comment == NULL) {
3!
10562
      TAOS_CHECK_EXIT(terrno);
×
10563
    }
10564
    TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->comment));
3!
10565
  }
10566

10567
  if (pReq->type == TSDB_CHILD_TABLE) {
174,646✔
10568
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->ctb.stbName));
320,372!
10569
    TAOS_CHECK_EXIT(tDecodeU8(pCoder, &pReq->ctb.tagNum));
320,385!
10570
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->ctb.suid));
320,385!
10571
    TAOS_CHECK_EXIT(tDecodeTag(pCoder, (STag **)&pReq->ctb.pTag));
160,198!
10572
    int32_t len = 0;
160,203✔
10573
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &len));
160,195!
10574
    pReq->ctb.tagName = taosArrayInit(len, TSDB_COL_NAME_LEN);
160,195✔
10575
    if (pReq->ctb.tagName == NULL) {
160,311✔
10576
      TAOS_CHECK_EXIT(terrno);
1!
10577
    }
10578
    for (int32_t i = 0; i < len; i++) {
611,821✔
10579
      char  name[TSDB_COL_NAME_LEN] = {0};
451,263✔
10580
      char *tmp = NULL;
451,263✔
10581
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &tmp));
451,089!
10582
      tstrncpy(name, tmp, TSDB_COL_NAME_LEN);
451,089✔
10583
      if (taosArrayPush(pReq->ctb.tagName, name) == NULL) {
902,600!
10584
        TAOS_CHECK_EXIT(terrno);
×
10585
      }
10586
    }
10587
  } else if (pReq->type == TSDB_NORMAL_TABLE) {
14,472✔
10588
    TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->ntb.schemaRow));
28,918!
10589
  } else {
10590
    return TSDB_CODE_INVALID_MSG;
13✔
10591
  }
10592

10593
  // DECODESQL
10594
  if (!tDecodeIsEnd(pCoder)) {
175,017✔
10595
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->sqlLen));
349,636!
10596
    if (pReq->sqlLen > 0) {
174,813!
10597
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pCoder, (void **)&pReq->sql, NULL));
×
10598
    }
10599
    if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_SUPER_TABLE)
174,813!
10600
      if (!tDecodeIsEnd(pCoder)) {
14,459!
10601
        TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
14,459!
10602
      }
10603
  }
10604

10605
  tEndDecode(pCoder);
175,008✔
10606
_exit:
174,791✔
10607
  return code;
174,791✔
10608
}
10609

10610
void tDestroySVCreateTbReq(SVCreateTbReq *pReq, int32_t flags) {
67,647✔
10611
  if (pReq == NULL) return;
67,647!
10612

10613
  if (flags & TSDB_MSG_FLG_ENCODE) {
67,647!
10614
    // TODO
10615
  } else if (flags & TSDB_MSG_FLG_DECODE) {
67,647!
10616
    if (pReq->comment) {
67,648!
10617
      pReq->comment = NULL;
×
10618
      taosMemoryFree(pReq->comment);
×
10619
    }
10620

10621
    if (pReq->type == TSDB_CHILD_TABLE) {
67,648!
10622
      if (pReq->ctb.tagName) taosArrayDestroy(pReq->ctb.tagName);
67,648✔
10623
    } else if (pReq->type == TSDB_NORMAL_TABLE) {
×
10624
      if (pReq->ntb.schemaRow.pSchema) taosMemoryFree(pReq->ntb.schemaRow.pSchema);
×
10625
    }
10626
  }
10627

10628
  if (pReq->colCmpr.pColCmpr) taosMemoryFree(pReq->colCmpr.pColCmpr);
67,647!
10629
  pReq->colCmpr.pColCmpr = NULL;
67,647✔
10630

10631
  if (pReq->sql != NULL) {
67,647!
10632
    taosMemoryFree(pReq->sql);
×
10633
  }
10634
  pReq->sql = NULL;
67,646✔
10635
}
10636

10637
int tEncodeSVCreateTbBatchReq(SEncoder *pCoder, const SVCreateTbBatchReq *pReq) {
142,824✔
10638
  int32_t nReq = taosArrayGetSize(pReq->pArray);
142,824✔
10639

10640
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
142,833!
10641
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReq));
142,834!
10642
  for (int iReq = 0; iReq < nReq; iReq++) {
336,991✔
10643
    TAOS_CHECK_RETURN(tEncodeSVCreateTbReq(pCoder, (SVCreateTbReq *)taosArrayGet(pReq->pArray, iReq)));
194,168!
10644
  }
10645

10646
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->source));
285,646!
10647

10648
  tEndEncode(pCoder);
142,823✔
10649
  return 0;
142,831✔
10650
}
10651

10652
int tDecodeSVCreateTbBatchReq(SDecoder *pCoder, SVCreateTbBatchReq *pReq) {
67,381✔
10653
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
67,381!
10654

10655
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
134,811!
10656
  pReq->pReqs = (SVCreateTbReq *)tDecoderMalloc(pCoder, sizeof(SVCreateTbReq) * pReq->nReqs);
67,407!
10657
  if (pReq->pReqs == NULL) {
67,412!
10658
    TAOS_CHECK_RETURN(terrno);
×
10659
  }
10660
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
174,538✔
10661
    TAOS_CHECK_RETURN(tDecodeSVCreateTbReq(pCoder, pReq->pReqs + iReq));
107,149!
10662
  }
10663

10664
  if (!tDecodeIsEnd(pCoder)) {
67,389!
10665
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->source));
134,824!
10666
  }
10667

10668
  tEndDecode(pCoder);
67,385✔
10669
  return 0;
67,413✔
10670
}
10671

10672
void tDeleteSVCreateTbBatchReq(SVCreateTbBatchReq *pReq) {
67,418✔
10673
  for (int32_t iReq = 0; iReq < pReq->nReqs; iReq++) {
174,618✔
10674
    SVCreateTbReq *pCreateReq = pReq->pReqs + iReq;
107,200✔
10675
    taosMemoryFreeClear(pCreateReq->sql);
107,200!
10676
    taosMemoryFreeClear(pCreateReq->comment);
107,200!
10677
    if (pCreateReq->type == TSDB_CHILD_TABLE) {
107,200✔
10678
      taosArrayDestroy(pCreateReq->ctb.tagName);
92,741✔
10679
      pCreateReq->ctb.tagName = NULL;
92,741✔
10680
    }
10681
  }
10682
}
67,418✔
10683

10684
int tEncodeSVCreateTbRsp(SEncoder *pCoder, const SVCreateTbRsp *pRsp) {
300,070✔
10685
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
300,070!
10686

10687
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->code));
600,114!
10688
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->pMeta ? 1 : 0));
600,114!
10689
  if (pRsp->pMeta) {
300,057✔
10690
    TAOS_CHECK_RETURN(tEncodeSTableMetaRsp(pCoder, pRsp->pMeta));
284,138!
10691
  }
10692

10693
  tEndEncode(pCoder);
300,080✔
10694
  return 0;
300,068✔
10695
}
10696

10697
int tDecodeSVCreateTbRsp(SDecoder *pCoder, SVCreateTbRsp *pRsp) {
161,268✔
10698
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
161,268!
10699

10700
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pRsp->code));
322,650!
10701

10702
  int32_t meta = 0;
161,320✔
10703
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &meta));
161,307!
10704
  if (meta) {
161,307✔
10705
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
120,357!
10706
    if (NULL == pRsp->pMeta) {
120,348!
10707
      TAOS_CHECK_RETURN(terrno);
×
10708
    }
10709
    TAOS_CHECK_RETURN(tDecodeSTableMetaRsp(pCoder, pRsp->pMeta));
120,348!
10710
  } else {
10711
    pRsp->pMeta = NULL;
40,950✔
10712
  }
10713

10714
  tEndDecode(pCoder);
161,246✔
10715
  return 0;
161,245✔
10716
}
10717

10718
void tFreeSVCreateTbRsp(void *param) {
106,637✔
10719
  if (NULL == param) {
106,637!
10720
    return;
×
10721
  }
10722

10723
  SVCreateTbRsp *pRsp = (SVCreateTbRsp *)param;
106,637✔
10724
  if (pRsp->pMeta) {
106,637✔
10725
    taosMemoryFree(pRsp->pMeta->pSchemas);
105,245!
10726
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
105,245!
10727
    taosMemoryFree(pRsp->pMeta);
105,245!
10728
  }
10729
}
10730

10731
// TDMT_VND_DROP_TABLE =================
10732
static int32_t tEncodeSVDropTbReq(SEncoder *pCoder, const SVDropTbReq *pReq) {
9,034✔
10733
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
9,034!
10734
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
18,068!
10735
  TAOS_CHECK_RETURN(tEncodeU64(pCoder, pReq->suid));
18,068!
10736
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->uid));
18,068!
10737
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->igNotExists));
18,068!
10738

10739
  tEndEncode(pCoder);
9,034✔
10740
  return 0;
9,034✔
10741
}
10742

10743
static int32_t tDecodeSVDropTbReq(SDecoder *pCoder, SVDropTbReq *pReq) {
4,334✔
10744
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
4,334!
10745
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
8,670!
10746
  TAOS_CHECK_RETURN(tDecodeU64(pCoder, &pReq->suid));
8,670!
10747
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->uid));
8,669!
10748
  TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->igNotExists));
8,669!
10749

10750
  tEndDecode(pCoder);
4,335✔
10751
  return 0;
4,334✔
10752
}
10753

10754
static int32_t tEncodeSVDropTbRsp(SEncoder *pCoder, const SVDropTbRsp *pReq) {
4,090✔
10755
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
4,090!
10756
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->code));
8,180!
10757
  tEndEncode(pCoder);
4,090✔
10758
  return 0;
4,090✔
10759
}
10760

10761
static int32_t tDecodeSVDropTbRsp(SDecoder *pCoder, SVDropTbRsp *pReq) {
2,289✔
10762
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
2,289!
10763
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pReq->code));
4,578!
10764
  tEndDecode(pCoder);
2,289✔
10765
  return 0;
2,289✔
10766
}
10767

10768
int32_t tEncodeSVDropTbBatchReq(SEncoder *pCoder, const SVDropTbBatchReq *pReq) {
8,096✔
10769
  int32_t      nReqs = taosArrayGetSize(pReq->pArray);
8,096✔
10770
  SVDropTbReq *pDropTbReq;
10771

10772
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
8,096!
10773
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReqs));
8,096!
10774
  for (int iReq = 0; iReq < nReqs; iReq++) {
17,072✔
10775
    pDropTbReq = (SVDropTbReq *)taosArrayGet(pReq->pArray, iReq);
8,976✔
10776
    TAOS_CHECK_RETURN(tEncodeSVDropTbReq(pCoder, pDropTbReq));
8,976!
10777
  }
10778

10779
  tEndEncode(pCoder);
8,096✔
10780
  return 0;
8,096✔
10781
}
10782

10783
int32_t tDecodeSVDropTbBatchReq(SDecoder *pCoder, SVDropTbBatchReq *pReq) {
4,267✔
10784
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
4,267!
10785
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
8,536!
10786
  pReq->pReqs = (SVDropTbReq *)tDecoderMalloc(pCoder, sizeof(SVDropTbReq) * pReq->nReqs);
4,268!
10787
  if (pReq->pReqs == NULL) {
4,268!
10788
    TAOS_CHECK_RETURN(terrno);
×
10789
  }
10790
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
8,567✔
10791
    TAOS_CHECK_RETURN(tDecodeSVDropTbReq(pCoder, pReq->pReqs + iReq));
4,299!
10792
  }
10793

10794
  tEndDecode(pCoder);
4,268✔
10795
  return 0;
4,268✔
10796
}
10797

10798
int32_t tEncodeSVDropTbBatchRsp(SEncoder *pCoder, const SVDropTbBatchRsp *pRsp) {
4,070✔
10799
  int32_t nRsps = taosArrayGetSize(pRsp->pArray);
4,070✔
10800
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
4,070!
10801
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
4,070!
10802
  for (int iRsp = 0; iRsp < nRsps; iRsp++) {
8,160✔
10803
    TAOS_CHECK_RETURN(tEncodeSVDropTbRsp(pCoder, (SVDropTbRsp *)taosArrayGet(pRsp->pArray, iRsp)));
4,090!
10804
  }
10805

10806
  tEndEncode(pCoder);
4,070✔
10807
  return 0;
4,070✔
10808
}
10809

10810
int32_t tDecodeSVDropTbBatchRsp(SDecoder *pCoder, SVDropTbBatchRsp *pRsp) {
1,891✔
10811
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
1,891!
10812
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
3,782!
10813
  pRsp->pRsps = (SVDropTbRsp *)tDecoderMalloc(pCoder, sizeof(SVDropTbRsp) * pRsp->nRsps);
1,891!
10814
  if (pRsp->pRsps == NULL) {
1,891!
10815
    TAOS_CHECK_RETURN(terrno);
×
10816
  }
10817
  for (int iRsp = 0; iRsp < pRsp->nRsps; iRsp++) {
4,180✔
10818
    TAOS_CHECK_RETURN(tDecodeSVDropTbRsp(pCoder, pRsp->pRsps + iRsp));
2,289!
10819
  }
10820

10821
  tEndDecode(pCoder);
1,891✔
10822
  return 0;
1,891✔
10823
}
10824

10825
int32_t tEncodeSVDropStbReq(SEncoder *pCoder, const SVDropStbReq *pReq) {
47,488✔
10826
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
47,488!
10827
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
94,976!
10828
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
94,976!
10829
  tEndEncode(pCoder);
47,488✔
10830
  return 0;
47,488✔
10831
}
10832

10833
int32_t tDecodeSVDropStbReq(SDecoder *pCoder, SVDropStbReq *pReq) {
2,457✔
10834
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
2,457!
10835
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
4,918!
10836
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->suid));
4,916!
10837
  tEndDecode(pCoder);
2,457✔
10838
  return 0;
2,459✔
10839
}
10840

10841
static int32_t tEncodeSSubmitBlkRsp(SEncoder *pEncoder, const SSubmitBlkRsp *pBlock) {
×
10842
  int32_t code = 0;
×
10843
  int32_t lino;
10844
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
×
10845

10846
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->code));
×
10847
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pBlock->uid));
×
10848
  if (pBlock->tblFName) {
×
10849
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pBlock->tblFName));
×
10850
  } else {
10851
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, ""));
×
10852
  }
10853
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->numOfRows));
×
10854
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->affectedRows));
×
10855
  TAOS_CHECK_EXIT(tEncodeI64v(pEncoder, pBlock->sver));
×
10856
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->pMeta ? 1 : 0));
×
10857
  if (pBlock->pMeta) {
×
10858
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pBlock->pMeta));
×
10859
  }
10860

10861
  tEndEncode(pEncoder);
×
10862
_exit:
×
10863
  return code;
×
10864
}
10865

10866
void tFreeSSubmitRsp(SSubmitRsp *pRsp) {
115,737✔
10867
  if (NULL == pRsp) return;
115,737!
10868

10869
  if (pRsp->pBlocks) {
×
10870
    for (int32_t i = 0; i < pRsp->nBlocks; ++i) {
×
10871
      SSubmitBlkRsp *sRsp = pRsp->pBlocks + i;
×
10872
      taosMemoryFree(sRsp->tblFName);
×
10873
      tFreeSTableMetaRsp(sRsp->pMeta);
×
10874
      taosMemoryFree(sRsp->pMeta);
×
10875
    }
10876

10877
    taosMemoryFree(pRsp->pBlocks);
×
10878
  }
10879

10880
  taosMemoryFree(pRsp);
×
10881
}
10882

10883
int32_t tEncodeSVAlterTbReq(SEncoder *pEncoder, const SVAlterTbReq *pReq) {
2,082✔
10884
  int32_t code = 0;
2,082✔
10885
  int32_t lino;
10886

10887
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
2,082!
10888

10889
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tbName));
4,164!
10890
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->action));
4,164!
10891
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->colId));
4,164!
10892
  switch (pReq->action) {
2,082!
10893
    case TSDB_ALTER_TABLE_ADD_COLUMN:
182✔
10894
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
364!
10895
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
364!
10896
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
364!
10897
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
364!
10898
      break;
182✔
10899
    case TSDB_ALTER_TABLE_DROP_COLUMN:
178✔
10900
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
356!
10901
      break;
178✔
10902
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
100✔
10903
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
200!
10904
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->colModType));
200!
10905
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->colModBytes));
200!
10906
      break;
100✔
10907
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
96✔
10908
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
192!
10909
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colNewName));
192!
10910
      break;
96✔
10911
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
1,334✔
10912
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tagName));
2,668!
10913
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->isNull));
2,668!
10914
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->tagType));
2,668!
10915
      if (!pReq->isNull) {
1,334✔
10916
        TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pReq->pTagVal, pReq->nTagVal));
2,480!
10917
      }
10918
      break;
1,334✔
10919
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
10✔
10920
      int32_t nTags = taosArrayGetSize(pReq->pMultiTag);
10✔
10921
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, nTags));
10!
10922
      for (int32_t i = 0; i < nTags; i++) {
70✔
10923
        SMultiTagUpateVal *pTag = taosArrayGet(pReq->pMultiTag, i);
60✔
10924
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pTag->colId));
120!
10925
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTag->tagName));
120!
10926
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->isNull));
120!
10927
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->tagType));
120!
10928
        if (!pTag->isNull) {
60✔
10929
          TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pTag->pTagVal, pTag->nTagVal));
96!
10930
        }
10931
      }
10932
      break;
10✔
10933
    }
10934
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
170✔
10935
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->updateTTL));
340!
10936
      if (pReq->updateTTL) {
170✔
10937
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newTTL));
136!
10938
      }
10939
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newCommentLen));
340!
10940
      if (pReq->newCommentLen > 0) {
170✔
10941
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->newComment));
180!
10942
      }
10943
      break;
170✔
10944
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
10✔
10945
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
20!
10946
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
20!
10947
      break;
10✔
10948
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
2✔
10949
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
4!
10950
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
4!
10951
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
4!
10952
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
4!
10953
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
4!
10954
      break;
2✔
10955
    default:
×
10956
      break;
×
10957
  }
10958
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
4,164!
10959
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->source));
4,164!
10960

10961
  tEndEncode(pEncoder);
2,082✔
10962
_exit:
2,082✔
10963
  return code;
2,082✔
10964
}
10965

10966
static int32_t tDecodeSVAlterTbReqCommon(SDecoder *pDecoder, SVAlterTbReq *pReq) {
2,055✔
10967
  int32_t code = 0;
2,055✔
10968
  int32_t lino;
10969

10970
  TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tbName));
4,110!
10971
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->action));
4,110!
10972
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->colId));
4,110!
10973
  switch (pReq->action) {
2,055!
10974
    case TSDB_ALTER_TABLE_ADD_COLUMN:
188✔
10975
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
376!
10976
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
376!
10977
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
376!
10978
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
376!
10979
      break;
188✔
10980
    case TSDB_ALTER_TABLE_DROP_COLUMN:
172✔
10981
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
344!
10982
      break;
172✔
10983
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
106✔
10984
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
212!
10985
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->colModType));
212!
10986
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->colModBytes));
212!
10987
      break;
106✔
10988
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
90✔
10989
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
180!
10990
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colNewName));
180!
10991
      break;
90✔
10992
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
1,335✔
10993
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tagName));
2,670!
10994
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->isNull));
2,670!
10995
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->tagType));
2,670!
10996
      if (!pReq->isNull) {
1,335✔
10997
        TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &pReq->pTagVal, &pReq->nTagVal));
2,482!
10998
      }
10999
      break;
1,335✔
11000
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
13✔
11001
      int32_t nTags;
11002
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &nTags));
13!
11003
      pReq->pMultiTag = taosArrayInit(nTags, sizeof(SMultiTagUpateVal));
13✔
11004
      if (pReq->pMultiTag == NULL) {
13!
11005
        TAOS_CHECK_EXIT(terrno);
×
11006
      }
11007
      for (int32_t i = 0; i < nTags; i++) {
82✔
11008
        SMultiTagUpateVal tag;
11009
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &tag.colId));
69!
11010
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &tag.tagName));
69!
11011
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.isNull));
69!
11012
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.tagType));
69!
11013
        if (!tag.isNull) {
69✔
11014
          TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &tag.pTagVal, &tag.nTagVal));
57!
11015
        }
11016
        if (taosArrayPush(pReq->pMultiTag, &tag) == NULL) {
138!
11017
          TAOS_CHECK_EXIT(terrno);
×
11018
        }
11019
      }
11020
      break;
13✔
11021
    }
11022
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
139✔
11023
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->updateTTL));
278!
11024
      if (pReq->updateTTL) {
139✔
11025
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newTTL));
92!
11026
      }
11027
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newCommentLen));
278!
11028
      if (pReq->newCommentLen > 0) {
139✔
11029
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->newComment));
162!
11030
      }
11031
      break;
139✔
11032
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
10✔
11033
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
20!
11034
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
20!
11035
      break;
10✔
11036
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
2✔
11037
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
4!
11038
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
4!
11039
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
4!
11040
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
4!
11041
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
4!
11042
    default:
11043
      break;
2✔
11044
  }
11045
_exit:
2,055✔
11046
  return code;
2,055✔
11047
}
11048

11049
int32_t tDecodeSVAlterTbReq(SDecoder *pDecoder, SVAlterTbReq *pReq) {
1,116✔
11050
  int32_t code = 0;
1,116✔
11051
  int32_t lino;
11052

11053
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
1,116!
11054
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
1,116!
11055

11056
  pReq->ctimeMs = 0;
1,116✔
11057
  if (!tDecodeIsEnd(pDecoder)) {
1,116!
11058
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
2,232!
11059
  }
11060
  if (!tDecodeIsEnd(pDecoder)) {
1,116!
11061
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->source));
2,232!
11062
  }
11063

11064
  tEndDecode(pDecoder);
1,116✔
11065
_exit:
1,116✔
11066
  return code;
1,116✔
11067
}
11068

11069
int32_t tDecodeSVAlterTbReqSetCtime(SDecoder *pDecoder, SVAlterTbReq *pReq, int64_t ctimeMs) {
939✔
11070
  int32_t code = 0;
939✔
11071
  int32_t lino;
11072

11073
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
939!
11074
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
939!
11075

11076
  pReq->ctimeMs = 0;
939✔
11077
  if (!tDecodeIsEnd(pDecoder)) {
939!
11078
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
939✔
11079
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
1,878!
11080
  }
11081

11082
  tEndDecode(pDecoder);
939✔
11083
_exit:
939✔
11084
  return code;
939✔
11085
}
11086

11087
void tfreeMultiTagUpateVal(void *val) {
40✔
11088
  SMultiTagUpateVal *pTag = val;
40✔
11089
  taosMemoryFree(pTag->tagName);
40!
11090
  for (int i = 0; i < taosArrayGetSize(pTag->pTagArray); ++i) {
74✔
11091
    STagVal *p = (STagVal *)taosArrayGet(pTag->pTagArray, i);
34✔
11092
    if (IS_VAR_DATA_TYPE(p->type)) {
34!
11093
      taosMemoryFreeClear(p->pData);
4!
11094
    }
11095
  }
11096

11097
  taosArrayDestroy(pTag->pTagArray);
40✔
11098
}
40✔
11099
int32_t tEncodeSVAlterTbRsp(SEncoder *pEncoder, const SVAlterTbRsp *pRsp) {
1,888✔
11100
  int32_t code = 0;
1,888✔
11101
  int32_t lino;
11102

11103
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
1,888!
11104
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->code));
3,776!
11105
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta ? 1 : 0));
3,776!
11106
  if (pRsp->pMeta) {
1,888✔
11107
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
374!
11108
  }
11109
  tEndEncode(pEncoder);
1,888✔
11110
_exit:
1,888✔
11111
  return code;
1,888✔
11112
}
11113

11114
int32_t tDecodeSVAlterTbRsp(SDecoder *pDecoder, SVAlterTbRsp *pRsp) {
928✔
11115
  int32_t meta = 0;
928✔
11116
  int32_t code = 0;
928✔
11117
  int32_t lino;
11118
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
928!
11119
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->code));
1,856!
11120
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
928!
11121
  if (meta) {
928✔
11122
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
181!
11123
    if (NULL == pRsp->pMeta) {
181!
11124
      TAOS_CHECK_EXIT(terrno);
×
11125
    }
11126
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
181!
11127
  }
11128
  tEndDecode(pDecoder);
928✔
11129
_exit:
928✔
11130
  return code;
928✔
11131
}
11132

11133
int32_t tEncodeSMAlterStbRsp(SEncoder *pEncoder, const SMAlterStbRsp *pRsp) {
5,626✔
11134
  int32_t code = 0;
5,626✔
11135
  int32_t lino;
11136

11137
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
5,626!
11138
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
11,252!
11139
  if (pRsp->pMeta->pSchemas) {
5,626!
11140
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
5,626!
11141
  }
11142
  tEndEncode(pEncoder);
5,626✔
11143
_exit:
5,626✔
11144
  return code;
5,626✔
11145
}
11146

11147
int32_t tDecodeSMAlterStbRsp(SDecoder *pDecoder, SMAlterStbRsp *pRsp) {
3,035✔
11148
  int32_t meta = 0;
3,035✔
11149
  int32_t code = 0;
3,035✔
11150
  int32_t lino;
11151

11152
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
3,035!
11153
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
3,035!
11154
  if (meta) {
3,035!
11155
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
3,035!
11156
    if (NULL == pRsp->pMeta) {
3,035!
11157
      TAOS_CHECK_EXIT(terrno);
×
11158
    }
11159
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
3,035!
11160
  }
11161
  tEndDecode(pDecoder);
3,035✔
11162
_exit:
3,035✔
11163
  return code;
3,035✔
11164
}
11165

11166
void tFreeSMAlterStbRsp(SMAlterStbRsp *pRsp) {
2,813✔
11167
  if (NULL == pRsp) {
2,813!
11168
    return;
×
11169
  }
11170

11171
  if (pRsp->pMeta) {
2,813!
11172
    taosMemoryFree(pRsp->pMeta->pSchemas);
2,813!
11173
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
2,813!
11174
    taosMemoryFree(pRsp->pMeta);
2,813!
11175
  }
11176
}
11177

11178
int32_t tEncodeSMCreateStbRsp(SEncoder *pEncoder, const SMCreateStbRsp *pRsp) {
15,044✔
11179
  int32_t code = 0;
15,044✔
11180
  int32_t lino;
11181

11182
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
15,044!
11183
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
30,088!
11184
  if (pRsp->pMeta->pSchemas) {
15,044!
11185
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
15,044!
11186
  }
11187
  tEndEncode(pEncoder);
15,044✔
11188

11189
_exit:
15,044✔
11190
  return code;
15,044✔
11191
}
11192

11193
int32_t tDecodeSMCreateStbRsp(SDecoder *pDecoder, SMCreateStbRsp *pRsp) {
5,653✔
11194
  int32_t meta = 0;
5,653✔
11195
  int32_t code = 0;
5,653✔
11196
  int32_t lino;
11197

11198
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
5,653!
11199
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
5,653!
11200
  if (meta) {
5,653!
11201
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
5,653!
11202
    if (NULL == pRsp->pMeta) {
5,653!
11203
      TAOS_CHECK_EXIT(terrno);
×
11204
    }
11205
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
5,653!
11206
  }
11207
  tEndDecode(pDecoder);
5,653✔
11208

11209
  return code;
5,653✔
11210

11211
_exit:
×
11212
  tFreeSTableMetaRsp(pRsp->pMeta);
×
11213
  taosMemoryFreeClear(pRsp->pMeta);
×
11214
  return code;
×
11215
}
11216

11217
void tFreeSMCreateStbRsp(SMCreateStbRsp *pRsp) {
7,522✔
11218
  if (NULL == pRsp) {
7,522!
11219
    return;
×
11220
  }
11221

11222
  if (pRsp->pMeta) {
7,522!
11223
    taosMemoryFree(pRsp->pMeta->pSchemas);
7,522!
11224
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
7,522!
11225
    taosMemoryFree(pRsp->pMeta);
7,522!
11226
  }
11227
}
11228

11229
int32_t tEncodeSTqOffsetVal(SEncoder *pEncoder, const STqOffsetVal *pOffsetVal) {
16,775,766✔
11230
  int32_t code = 0;
16,775,766✔
11231
  int32_t lino;
11232

11233
  int8_t type = pOffsetVal->type < 0 ? pOffsetVal->type : (TQ_OFFSET_VERSION << 4) | pOffsetVal->type;
16,775,766✔
11234
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, type));
33,551,532!
11235
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
16,775,766!
11236
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->uid));
33,028!
11237
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->ts));
33,028!
11238
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pOffsetVal->primaryKey.type));
33,028!
11239
    if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
16,514!
11240
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pOffsetVal->primaryKey.pData, pOffsetVal->primaryKey.nData));
×
11241
    } else {
11242
      TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->primaryKey.val));
33,184!
11243
    }
11244

11245
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
16,759,252✔
11246
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->version));
32,103,632!
11247
  } else {
11248
    // do nothing
11249
  }
11250
_exit:
707,436✔
11251
  return code;
16,775,766✔
11252
}
11253

11254
int32_t tDecodeSTqOffsetVal(SDecoder *pDecoder, STqOffsetVal *pOffsetVal) {
7,788,167✔
11255
  int32_t code = 0;
7,788,167✔
11256
  int32_t lino;
11257

11258
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->type));
15,576,912!
11259
  int8_t offsetVersion = 0;
7,788,745✔
11260
  if (pOffsetVal->type > 0) {
7,788,745✔
11261
    offsetVersion = (pOffsetVal->type >> 4);
7,447,528✔
11262
    pOffsetVal->type = pOffsetVal->type & 0x0F;
7,447,528✔
11263
  }
11264
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
7,788,745✔
11265
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->uid));
16,232!
11266
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->ts));
16,531!
11267
    if (offsetVersion >= TQ_OFFSET_VERSION) {
8,265!
11268
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->primaryKey.type));
16,531!
11269
      if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
8,266!
11270
        TAOS_CHECK_EXIT(
2!
11271
            tDecodeBinaryAlloc32(pDecoder, (void **)&pOffsetVal->primaryKey.pData, &pOffsetVal->primaryKey.nData));
11272
      } else {
11273
        TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->primaryKey.val));
16,528!
11274
      }
11275
    }
11276
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
7,780,779✔
11277
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->version));
14,876,430!
11278
  } else {
11279
    // do nothing
11280
  }
11281
_exit:
342,991✔
11282
  return code;
7,789,897✔
11283
}
11284

11285
void tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) {
14,604,377✔
11286
  if (pVal->type == TMQ_OFFSET__RESET_NONE) {
14,604,377✔
11287
    (void)snprintf(buf, maxLen, "none");
296,738✔
11288
  } else if (pVal->type == TMQ_OFFSET__RESET_EARLIEST) {
14,307,639✔
11289
    (void)snprintf(buf, maxLen, "earliest");
400,162✔
11290
  } else if (pVal->type == TMQ_OFFSET__RESET_LATEST) {
13,907,477✔
11291
    (void)snprintf(buf, maxLen, "latest");
358✔
11292
  } else if (pVal->type == TMQ_OFFSET__LOG) {
13,907,119✔
11293
    (void)snprintf(buf, maxLen, "wal:%" PRId64, pVal->version);
13,698,837✔
11294
  } else if (pVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pVal->type == TMQ_OFFSET__SNAPSHOT_META) {
208,282!
11295
    if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
208,282!
11296
      char *tmp = taosMemoryCalloc(1, pVal->primaryKey.nData + 1);
×
11297
      if (tmp == NULL) return;
×
11298
      (void)memcpy(tmp, pVal->primaryKey.pData, pVal->primaryKey.nData);
×
11299
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%s", pVal->uid, pVal->ts,
×
11300
                     pVal->primaryKey.type, tmp);
×
11301
      taosMemoryFree(tmp);
×
11302
    } else {
11303
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%" PRId64, pVal->uid, pVal->ts,
208,353✔
11304
                     pVal->primaryKey.type, pVal->primaryKey.val);
208,353✔
11305
    }
11306
  }
11307
}
11308

11309
bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
314,336✔
11310
  if (pLeft->type == pRight->type) {
314,336✔
11311
    if (pLeft->type == TMQ_OFFSET__LOG) {
119,855✔
11312
      return pLeft->version == pRight->version;
111,624✔
11313
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_DATA) {
8,231!
11314
      if (pLeft->primaryKey.type != 0) {
8,234!
11315
        if (pLeft->primaryKey.type != pRight->primaryKey.type) return false;
×
11316
        if (tValueCompare(&pLeft->primaryKey, &pRight->primaryKey) != 0) return false;
×
11317
      }
11318
      return pLeft->uid == pRight->uid && pLeft->ts == pRight->ts;
8,234✔
11319
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_META) {
×
11320
      return pLeft->uid == pRight->uid;
×
11321
    } else {
11322
      uError("offset type:%d", pLeft->type);
×
11323
    }
11324
  }
11325
  return false;
194,486✔
11326
}
11327

11328
void tOffsetCopy(STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
12,833,805✔
11329
  tOffsetDestroy(pLeft);
12,833,805✔
11330
  *pLeft = *pRight;
12,833,846✔
11331
  if (IS_VAR_DATA_TYPE(pRight->primaryKey.type)) {
12,833,846!
11332
    pLeft->primaryKey.pData = taosMemoryMalloc(pRight->primaryKey.nData);
×
11333
    if (pLeft->primaryKey.pData == NULL) {
×
11334
      uError("failed to allocate memory for offset");
×
11335
      return;
×
11336
    }
11337
    (void)memcpy(pLeft->primaryKey.pData, pRight->primaryKey.pData, pRight->primaryKey.nData);
×
11338
  }
11339
}
11340

11341
void tOffsetDestroy(void *param) {
40,977,530✔
11342
  if (param == NULL) return;
40,977,530!
11343
  STqOffsetVal *pVal = (STqOffsetVal *)param;
40,977,530✔
11344
  if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
40,977,530!
11345
    taosMemoryFreeClear(pVal->primaryKey.pData);
×
11346
  }
11347
}
11348

11349
void tDeleteSTqOffset(void *param) {
5,757✔
11350
  if (param == NULL) return;
5,757✔
11351
  STqOffset *pVal = (STqOffset *)param;
5,753✔
11352
  tOffsetDestroy(&pVal->val);
5,753✔
11353
}
11354

11355
int32_t tEncodeSTqOffset(SEncoder *pEncoder, const STqOffset *pOffset) {
6,164✔
11356
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pOffset->val));
6,164!
11357
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pOffset->subKey));
12,328!
11358
  return 0;
6,164✔
11359
}
11360

11361
int32_t tDecodeSTqOffset(SDecoder *pDecoder, STqOffset *pOffset) {
5,771✔
11362
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pOffset->val));
5,771!
11363
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pOffset->subKey));
5,774✔
11364
  return 0;
5,771✔
11365
}
11366

11367
int32_t tEncodeMqVgOffset(SEncoder *pEncoder, const SMqVgOffset *pOffset) {
6,148✔
11368
  TAOS_CHECK_RETURN(tEncodeSTqOffset(pEncoder, &pOffset->offset));
6,148!
11369
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pOffset->consumerId));
12,296!
11370
  return 0;
6,148✔
11371
}
11372

11373
int32_t tDecodeMqVgOffset(SDecoder *pDecoder, SMqVgOffset *pOffset) {
5,556✔
11374
  TAOS_CHECK_RETURN(tDecodeSTqOffset(pDecoder, &pOffset->offset));
5,556!
11375
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pOffset->consumerId));
11,107!
11376
  return 0;
5,551✔
11377
}
11378

11379
int32_t tEncodeSTqCheckInfo(SEncoder *pEncoder, const STqCheckInfo *pInfo) {
204✔
11380
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->topic));
408!
11381
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->ntbUid));
408!
11382
  int32_t sz = taosArrayGetSize(pInfo->colIdList);
204✔
11383
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, sz));
204!
11384
  for (int32_t i = 0; i < sz; i++) {
868✔
11385
    int16_t colId = *(int16_t *)taosArrayGet(pInfo->colIdList, i);
664✔
11386
    TAOS_CHECK_RETURN(tEncodeI16(pEncoder, colId));
1,328!
11387
  }
11388
  return pEncoder->pos;
204✔
11389
}
11390

11391
int32_t tDecodeSTqCheckInfo(SDecoder *pDecoder, STqCheckInfo *pInfo) {
208✔
11392
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->topic));
208!
11393
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->ntbUid));
416!
11394
  int32_t sz = 0;
208✔
11395
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &sz));
208!
11396
  pInfo->colIdList = taosArrayInit(sz, sizeof(int16_t));
208✔
11397
  if (pInfo->colIdList == NULL) {
208!
11398
    TAOS_CHECK_RETURN(terrno);
×
11399
  }
11400
  for (int32_t i = 0; i < sz; i++) {
758✔
11401
    int16_t colId = 0;
550✔
11402
    TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &colId));
550!
11403
    if (taosArrayPush(pInfo->colIdList, &colId) == NULL) {
1,100!
11404
      TAOS_CHECK_RETURN(terrno);
×
11405
    }
11406
  }
11407
  return 0;
208✔
11408
}
11409
void tDeleteSTqCheckInfo(STqCheckInfo *pInfo) { taosArrayDestroy(pInfo->colIdList); }
12,264✔
11410

11411
int32_t tEncodeSMqRebVgReq(SEncoder *pCoder, const SMqRebVgReq *pReq) {
5,420✔
11412
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
5,420!
11413
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->leftForVer));
10,840!
11414
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->vgId));
10,840!
11415
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->oldConsumerId));
10,840!
11416
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->newConsumerId));
10,840!
11417
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->subKey));
10,840!
11418
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->subType));
10,840!
11419
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->withMeta));
10,840!
11420

11421
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
5,420✔
11422
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
8,648!
11423
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
1,096✔
11424
    TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
424!
11425
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
424!
11426
  }
11427
  tEndEncode(pCoder);
5,420✔
11428
  return 0;
5,420✔
11429
}
11430

11431
int32_t tDecodeSMqRebVgReq(SDecoder *pCoder, SMqRebVgReq *pReq) {
3,270✔
11432
  int32_t code = 0;
3,270✔
11433
  int32_t lino;
11434

11435
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
3,270!
11436

11437
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->leftForVer));
6,559!
11438

11439
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->vgId));
6,558!
11440
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->oldConsumerId));
6,557!
11441
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->newConsumerId));
6,554!
11442
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->subKey));
3,276!
11443
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->subType));
6,552!
11444
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->withMeta));
6,551!
11445

11446
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
3,276✔
11447
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
5,162!
11448
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
695✔
11449
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
262!
11450
    if (!tDecodeIsEnd(pCoder)) {
131!
11451
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
262!
11452
    }
11453
  }
11454

11455
  tEndDecode(pCoder);
3,276✔
11456
_exit:
3,271✔
11457
  return code;
3,271✔
11458
}
11459

11460
int32_t tEncodeDeleteRes(SEncoder *pCoder, const SDeleteRes *pRes) {
128,879✔
11461
  int32_t nUid = taosArrayGetSize(pRes->uidList);
128,879✔
11462
  int32_t code = 0;
128,881✔
11463
  int32_t lino;
11464

11465
  TAOS_CHECK_EXIT(tEncodeU64(pCoder, pRes->suid));
257,762!
11466
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, nUid));
128,881!
11467
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
261,817✔
11468
    TAOS_CHECK_EXIT(tEncodeU64(pCoder, *(uint64_t *)taosArrayGet(pRes->uidList, iUid)));
265,874!
11469
  }
11470
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->skey));
257,758!
11471
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ekey));
257,758!
11472
  TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRes->affectedRows));
257,758!
11473

11474
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tableFName));
257,758!
11475
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tsColName));
257,758!
11476
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ctimeMs));
257,758!
11477
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pRes->source));
257,758!
11478

11479
_exit:
128,879✔
11480
  return code;
128,879✔
11481
}
11482

11483
int32_t tDecodeDeleteRes(SDecoder *pCoder, SDeleteRes *pRes) {
74,792✔
11484
  int32_t  nUid;
11485
  uint64_t uid;
11486
  int32_t  code = 0;
74,792✔
11487
  int32_t  lino;
11488

11489
  TAOS_CHECK_EXIT(tDecodeU64(pCoder, &pRes->suid));
149,587!
11490
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &nUid));
74,793!
11491
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
151,598✔
11492
    TAOS_CHECK_EXIT(tDecodeU64(pCoder, &uid));
76,809!
11493
    if (pRes->uidList) {
76,809✔
11494
      if (taosArrayPush(pRes->uidList, &uid) == NULL) {
153,588!
11495
        TAOS_CHECK_EXIT(terrno);
×
11496
      }
11497
    }
11498
  }
11499
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->skey));
149,580!
11500
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ekey));
149,577!
11501
  TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRes->affectedRows));
149,575!
11502

11503
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tableFName));
74,788!
11504
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tsColName));
74,793!
11505

11506
  pRes->ctimeMs = 0;
74,793✔
11507
  if (!tDecodeIsEnd(pCoder)) {
74,793✔
11508
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ctimeMs));
149,580!
11509
  }
11510
  if (!tDecodeIsEnd(pCoder)) {
74,797✔
11511
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pRes->source));
149,584!
11512
  }
11513

11514
_exit:
74,799✔
11515
  return code;
74,799✔
11516
}
11517

11518
int32_t tEncodeMqMetaRsp(SEncoder *pEncoder, const SMqMetaRsp *pRsp) {
762✔
11519
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
762!
11520
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->resMsgType));
1,524!
11521
  TAOS_CHECK_RETURN(tEncodeBinary(pEncoder, pRsp->metaRsp, pRsp->metaRspLen));
1,524!
11522
  return 0;
762✔
11523
}
11524

11525
int32_t tDecodeMqMetaRsp(SDecoder *pDecoder, SMqMetaRsp *pRsp) {
483✔
11526
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
483!
11527
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->resMsgType));
966!
11528
  TAOS_CHECK_RETURN(tDecodeBinaryAlloc(pDecoder, &pRsp->metaRsp, (uint64_t *)&pRsp->metaRspLen));
966!
11529
  return 0;
483✔
11530
}
11531

11532
void tDeleteMqMetaRsp(SMqMetaRsp *pRsp) { taosMemoryFree(pRsp->metaRsp); }
711!
11533

11534
int32_t tEncodeMqDataRspCommon(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
4,941,949✔
11535
  int32_t code = 0;
4,941,949✔
11536
  int32_t lino;
11537

11538
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->reqOffset));
4,941,949!
11539
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
4,941,918!
11540
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->blockNum));
9,883,712!
11541
  if (pRsp->blockNum != 0) {
4,941,856✔
11542
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withTbName));
451,240!
11543
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withSchema));
451,240!
11544

11545
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
1,445,670✔
11546
      int32_t bLen = *(int32_t *)taosArrayGet(pRsp->blockDataLen, i);
1,220,803✔
11547
      void   *data = taosArrayGetP(pRsp->blockData, i);
1,219,383✔
11548
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, (const uint8_t *)data, bLen));
2,440,120!
11549
      if (pRsp->withSchema) {
1,220,060✔
11550
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosArrayGetP(pRsp->blockSchema, i);
240,987✔
11551
        TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pEncoder, pSW));
240,983!
11552
      }
11553
      if (pRsp->withTbName) {
1,220,056✔
11554
        char *tbName = (char *)taosArrayGetP(pRsp->blockTbName, i);
241,045✔
11555
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, tbName));
241,039!
11556
      }
11557
    }
11558
  }
11559

11560
_exit:
4,941,103✔
11561
  return code;
4,941,103✔
11562
}
11563

11564
int32_t tEncodeMqDataRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
4,941,904✔
11565
  TAOS_CHECK_RETURN(tEncodeMqDataRspCommon(pEncoder, pRsp));
4,941,904!
11566
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->sleepTime));
9,883,642!
11567

11568
  return 0;
4,941,821✔
11569
}
11570

11571
int32_t tDecodeMqDataRspCommon(SDecoder *pDecoder, SMqDataRsp *pRsp) {
2,445,240✔
11572
  int32_t code = 0;
2,445,240✔
11573
  int32_t lino;
11574

11575
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
2,445,240!
11576
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
2,445,225!
11577
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
4,890,429!
11578

11579
  if (pRsp->blockNum != 0) {
2,445,213✔
11580
    if ((pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
111,785!
11581
      TAOS_CHECK_EXIT(terrno);
×
11582
    }
11583
    if ((pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(int32_t))) == NULL) {
111,784!
11584
      TAOS_CHECK_EXIT(terrno);
×
11585
    }
11586
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withTbName));
223,567!
11587
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withSchema));
223,568!
11588
    if (pRsp->withTbName) {
111,784✔
11589
      if ((pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
46,855!
11590
        TAOS_CHECK_EXIT(terrno);
×
11591
      }
11592
    }
11593
    if (pRsp->withSchema) {
111,784✔
11594
      if ((pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
46,838!
11595
        TAOS_CHECK_EXIT(terrno);
×
11596
      }
11597
    }
11598

11599
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
464,381✔
11600
      void    *data = NULL;
352,603✔
11601
      uint32_t bLen = 0;
352,603✔
11602
      TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, (uint8_t**)&data, &bLen));
352,600!
11603
      if (taosArrayPush(pRsp->blockData, &data) == NULL) {
705,200!
11604
        TAOS_CHECK_EXIT(terrno);
×
11605
      }
11606
      pRsp->blockDataElementFree = false;
352,600✔
11607

11608
      int32_t len = bLen;
352,600✔
11609
      if (taosArrayPush(pRsp->blockDataLen, &len) == NULL) {
705,198!
11610
        TAOS_CHECK_EXIT(terrno);
×
11611
      }
11612

11613
      if (pRsp->withSchema) {
352,598✔
11614
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosMemoryCalloc(1, sizeof(SSchemaWrapper));
118,703!
11615
        if (pSW == NULL) {
118,703!
11616
          TAOS_CHECK_EXIT(terrno);
×
11617
        }
11618

11619
        if ((code = tDecodeSSchemaWrapper(pDecoder, pSW))) {
237,402!
11620
          taosMemoryFree(pSW);
×
11621
          goto _exit;
×
11622
        }
11623

11624
        if (taosArrayPush(pRsp->blockSchema, &pSW) == NULL) {
237,401!
11625
          taosMemoryFree(pSW);
×
11626
          TAOS_CHECK_EXIT(terrno);
×
11627
        }
11628
      }
11629

11630
      if (pRsp->withTbName) {
352,597✔
11631
        char *tbName;
11632
        TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &tbName));
118,718!
11633
        if (taosArrayPush(pRsp->blockTbName, &tbName) == NULL) {
237,436!
11634
          TAOS_CHECK_EXIT(terrno);
×
11635
        }
11636
      }
11637
    }
11638
  }
11639

11640
_exit:
2,445,206✔
11641
  return code;
2,445,206✔
11642
}
11643

11644
int32_t tDecodeMqDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
2,445,206✔
11645
  TAOS_CHECK_RETURN(tDecodeMqDataRspCommon(pDecoder, pRsp));
2,445,206!
11646
  if (!tDecodeIsEnd(pDecoder)) {
2,445,178!
11647
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->sleepTime));
4,890,336!
11648
  }
11649

11650
  return 0;
2,445,158✔
11651
}
11652

11653
int32_t tDecodeMqRawDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
19,917✔
11654
  int32_t code = 0;
19,917✔
11655
  int32_t lino;
11656

11657
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
19,917!
11658
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
19,917!
11659
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
39,834!
11660
_exit:
19,917✔
11661
  return code;
19,917✔
11662
}
11663

11664
static void tDeleteMqDataRspCommon(SMqDataRsp *pRsp) {
6,226,484✔
11665
  taosArrayDestroy(pRsp->blockDataLen);
6,226,484✔
11666
  pRsp->blockDataLen = NULL;
6,226,469✔
11667
  if (pRsp->blockDataElementFree){
6,226,469✔
11668
    taosArrayDestroyP(pRsp->blockData, NULL);
112,766✔
11669
  } else {
11670
    taosArrayDestroy(pRsp->blockData);
6,113,703✔
11671
  }
11672
  pRsp->blockData = NULL;
6,226,531✔
11673
  taosArrayDestroyP(pRsp->blockSchema, (FDelete)tDeleteSchemaWrapper);
6,226,531✔
11674
  pRsp->blockSchema = NULL;
6,226,552✔
11675
  taosArrayDestroyP(pRsp->blockTbName, NULL);
6,226,552✔
11676
  pRsp->blockTbName = NULL;
6,226,578✔
11677
  tOffsetDestroy(&pRsp->reqOffset);
6,226,578✔
11678
  tOffsetDestroy(&pRsp->rspOffset);
6,226,526✔
11679
  taosMemoryFreeClear(pRsp->data);
6,226,457!
11680
}
6,226,488✔
11681

11682
void tDeleteMqDataRsp(SMqDataRsp *rsp) { tDeleteMqDataRspCommon(rsp); }
3,819,240✔
11683

11684
int32_t tEncodeSTaosxRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
70✔
11685
  int32_t code = 0;
70✔
11686
  int32_t lino;
11687

11688
  TAOS_CHECK_EXIT(tEncodeMqDataRspCommon(pEncoder, pRsp));
70!
11689
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->createTableNum));
140!
11690
  if (pRsp->createTableNum) {
70!
11691
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
192✔
11692
      void   *createTableReq = taosArrayGetP(pRsp->createTableReq, i);
122✔
11693
      int32_t createTableLen = *(int32_t *)taosArrayGet(pRsp->createTableLen, i);
122✔
11694
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, createTableReq, createTableLen));
244!
11695
    }
11696
  }
11697

11698
_exit:
70✔
11699
  return code;
70✔
11700
}
11701

11702
int32_t tDecodeSTaosxRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
35✔
11703
  int32_t code = 0;
35✔
11704
  int32_t lino;
11705

11706
  TAOS_CHECK_EXIT(tDecodeMqDataRspCommon(pDecoder, pRsp));
35!
11707
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->createTableNum));
70!
11708
  if (pRsp->createTableNum) {
35!
11709
    if ((pRsp->createTableLen = taosArrayInit(pRsp->createTableNum, sizeof(int32_t))) == NULL) {
35!
11710
      TAOS_CHECK_EXIT(terrno);
×
11711
    }
11712
    if ((pRsp->createTableReq = taosArrayInit(pRsp->createTableNum, sizeof(void *))) == NULL) {
35!
11713
      TAOS_CHECK_EXIT(terrno);
×
11714
    }
11715
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
96✔
11716
      void    *pCreate = NULL;
61✔
11717
      uint64_t len = 0;
61✔
11718
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
61!
11719
      int32_t l = (int32_t)len;
61✔
11720
      if (taosArrayPush(pRsp->createTableLen, &l) == NULL) {
122!
11721
        TAOS_CHECK_EXIT(terrno);
×
11722
      }
11723
      if (taosArrayPush(pRsp->createTableReq, &pCreate) == NULL) {
122!
11724
        TAOS_CHECK_EXIT(terrno);
×
11725
      }
11726
    }
11727
  }
11728

11729
_exit:
35✔
11730
  return code;
35✔
11731
}
11732

11733
void tDeleteSTaosxRsp(SMqDataRsp *pRsp) {
2,407,260✔
11734
  tDeleteMqDataRspCommon(pRsp);
2,407,260✔
11735

11736
  taosArrayDestroy(pRsp->createTableLen);
2,407,269✔
11737
  pRsp->createTableLen = NULL;
2,407,269✔
11738
  taosArrayDestroyP(pRsp->createTableReq, NULL);
2,407,269✔
11739
  pRsp->createTableReq = NULL;
2,407,264✔
11740
}
2,407,264✔
11741

11742
void tDeleteMqRawDataRsp(SMqDataRsp *pRsp) {
19,937✔
11743
  tOffsetDestroy(&pRsp->reqOffset);
19,937✔
11744
  tOffsetDestroy(&pRsp->rspOffset);
19,937✔
11745
  if (pRsp->rawData != NULL){
19,937✔
11746
    taosMemoryFree(POINTER_SHIFT(pRsp->rawData, - sizeof(SMqRspHead)));
19,900!
11747
  }
11748
}
19,937✔
11749

11750
int32_t tEncodeSSingleDeleteReq(SEncoder *pEncoder, const SSingleDeleteReq *pReq) {
7,153✔
11751
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->tbname));
14,306!
11752
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->startTs));
14,306!
11753
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->endTs));
14,306!
11754
  return 0;
7,153✔
11755
}
11756

11757
int32_t tDecodeSSingleDeleteReq(SDecoder *pDecoder, SSingleDeleteReq *pReq) {
7,149✔
11758
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->tbname));
7,149!
11759
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->startTs));
14,298!
11760
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->endTs));
14,296!
11761
  return 0;
7,148✔
11762
}
11763

11764
int32_t tEncodeSBatchDeleteReq(SEncoder *pEncoder, const SBatchDeleteReq *pReq) {
5,256✔
11765
  int32_t code = 0;
5,256✔
11766
  int32_t lino;
11767

11768
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->suid));
10,512!
11769
  int32_t sz = taosArrayGetSize(pReq->deleteReqs);
5,256✔
11770
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, sz));
5,254!
11771
  for (int32_t i = 0; i < sz; i++) {
12,406✔
11772
    SSingleDeleteReq *pOneReq = taosArrayGet(pReq->deleteReqs, i);
7,153✔
11773
    TAOS_CHECK_EXIT(tEncodeSSingleDeleteReq(pEncoder, pOneReq));
7,153!
11774
  }
11775
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
10,506!
11776
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->level));
10,506!
11777
_exit:
5,253✔
11778
  return code;
5,253✔
11779
}
11780

11781
static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
5,245✔
11782
  int32_t code = 0;
5,245✔
11783
  int32_t lino;
11784

11785
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->suid));
10,502!
11786
  int32_t sz;
11787
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &sz));
5,258!
11788
  pReq->deleteReqs = taosArrayInit(0, sizeof(SSingleDeleteReq));
5,258✔
11789
  if (pReq->deleteReqs == NULL) {
5,255!
11790
    TAOS_CHECK_EXIT(terrno);
×
11791
  }
11792
  for (int32_t i = 0; i < sz; i++) {
12,405✔
11793
    SSingleDeleteReq deleteReq;
11794
    TAOS_CHECK_EXIT(tDecodeSSingleDeleteReq(pDecoder, &deleteReq));
7,149!
11795
    if (taosArrayPush(pReq->deleteReqs, &deleteReq) == NULL) {
14,298!
11796
      TAOS_CHECK_EXIT(terrno);
×
11797
    }
11798
  }
11799
_exit:
5,256✔
11800
  return code;
5,256✔
11801
}
11802

11803
int32_t tDecodeSBatchDeleteReq(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
2,623✔
11804
  int32_t code = 0;
2,623✔
11805
  int32_t lino;
11806

11807
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
2,623!
11808

11809
  pReq->ctimeMs = 0;
2,630✔
11810
  if (!tDecodeIsEnd(pDecoder)) {
2,630!
11811
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
5,259!
11812
  }
11813
  if (!tDecodeIsEnd(pDecoder)) {
2,629!
11814
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->level));
5,259!
11815
  }
11816

11817
_exit:
2,628✔
11818
  return code;
2,628✔
11819
}
11820

11821
int32_t tDecodeSBatchDeleteReqSetCtime(SDecoder *pDecoder, SBatchDeleteReq *pReq, int64_t ctimeMs) {
2,626✔
11822
  int32_t code = 0;
2,626✔
11823
  int32_t lino;
11824

11825
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
2,626!
11826

11827
  pReq->ctimeMs = 0;
2,629✔
11828
  if (!tDecodeIsEnd(pDecoder)) {
2,629!
11829
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
2,630✔
11830
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
5,259!
11831
  }
11832

11833
_exit:
2,628✔
11834
  return code;
2,628✔
11835
}
11836
int32_t transformRawSSubmitTbData(void* data, int64_t suid, int64_t uid, int32_t sver){
17✔
11837
  int32_t code = 0;
17✔
11838
  int32_t lino = 0;
17✔
11839
  SDecoder decoder = {0};
17✔
11840
  tDecoderInit(&decoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t*)data);
17✔
11841

11842
  int32_t flags = 0;
17✔
11843
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &flags));
17!
11844
  flags |= TD_REQ_FROM_TAOX;
17✔
11845
  flags &= ~SUBMIT_REQ_AUTO_CREATE_TABLE;
17✔
11846

11847
  SEncoder encoder = {0};
17✔
11848
  tEncoderInit(&encoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t*)data);
17✔
11849
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, flags));
34!
11850
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, suid));
17!
11851
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, uid));
17!
11852
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, sver));
17!
11853
  _exit:
17✔
11854
  return code;
17✔
11855
}
11856

11857
static int32_t tEncodeSSubmitTbData(SEncoder *pCoder, const SSubmitTbData *pSubmitTbData) {
19,388,945✔
11858
  int32_t code = 0;
19,388,945✔
11859
  int32_t lino;
11860

11861
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
19,388,945!
11862

11863
  int32_t flags = pSubmitTbData->flags | ((SUBMIT_REQUEST_VERSION) << 8);
19,425,859✔
11864
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, flags));
19,425,859!
11865

11866
  // auto create table
11867
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
19,425,859✔
11868
    if (!(pSubmitTbData->pCreateTbReq)) {
164,486!
11869
      return TSDB_CODE_INVALID_MSG;
×
11870
    }
11871
    TAOS_CHECK_EXIT(tEncodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
164,486!
11872
  }
11873

11874
  // submit data
11875
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->suid));
38,851,712!
11876
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->uid));
38,851,712!
11877
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pSubmitTbData->sver));
38,851,712!
11878

11879
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
19,425,856✔
11880
    uint64_t  nColData = TARRAY_SIZE(pSubmitTbData->aCol);
185,476✔
11881
    SColData *aColData = (SColData *)TARRAY_DATA(pSubmitTbData->aCol);
185,476✔
11882

11883
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, nColData));
185,476!
11884

11885
    for (uint64_t i = 0; i < nColData; i++) {
1,796,616✔
11886
      TAOS_CHECK_EXIT(tEncodeColData(SUBMIT_REQUEST_VERSION, pCoder, &aColData[i]));
1,611,134!
11887
    }
11888
  } else {
11889
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, TARRAY_SIZE(pSubmitTbData->aRowP)));
38,480,760!
11890

11891
    SRow **rows = (SRow **)TARRAY_DATA(pSubmitTbData->aRowP);
19,240,380✔
11892
    for (int32_t iRow = 0; iRow < TARRAY_SIZE(pSubmitTbData->aRowP); ++iRow) {
1,529,336,440✔
11893
      TAOS_CHECK_EXIT(tEncodeRow(pCoder, rows[iRow]));
1,510,095,417!
11894
    }
11895
  }
11896
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->ctimeMs));
38,853,010!
11897

11898
  tEndEncode(pCoder);
19,426,505✔
11899
_exit:
19,439,268✔
11900
  return code;
19,439,268✔
11901
}
11902

11903
static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbData, void* rawData) {
13,330,015✔
11904
  int32_t code = 0;
13,330,015✔
11905
  int32_t lino;
11906
  int32_t flags;
11907
  uint8_t version;
11908

11909
  uint8_t*      dataAfterCreate = NULL;
13,330,015✔
11910
  uint8_t*      dataStart = pCoder->data + pCoder->pos;
13,330,015✔
11911
  uint32_t      posAfterCreate = 0;
13,330,015✔
11912

11913
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
13,330,015!
11914
  uint32_t      pos = pCoder->pos;
13,351,925✔
11915
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &flags));
13,346,632!
11916
  uint32_t flagsLen = pCoder->pos - pos;
13,346,632✔
11917

11918
  pSubmitTbData->flags = flags & 0xff;
13,346,632✔
11919
  version = (flags >> 8) & 0xff;
13,346,632✔
11920

11921
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
13,346,632✔
11922
    pSubmitTbData->pCreateTbReq = taosMemoryCalloc(1, sizeof(SVCreateTbReq));
67,605!
11923
    if (pSubmitTbData->pCreateTbReq == NULL) {
67,633!
11924
      TAOS_CHECK_EXIT(terrno);
×
11925
    }
11926

11927
    TAOS_CHECK_EXIT(tDecodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
67,633!
11928
    dataAfterCreate = pCoder->data + pCoder->pos;
67,615✔
11929
    posAfterCreate = pCoder->pos;
67,615✔
11930
  }
11931

11932
  // submit data
11933
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->suid));
26,680,695!
11934
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->uid));
26,663,443!
11935
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pSubmitTbData->sver));
26,646,399!
11936

11937
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
13,317,009✔
11938
    uint64_t nColData = 0;
612✔
11939

11940
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nColData));
612!
11941

11942
    pSubmitTbData->aCol = taosArrayInit(nColData, sizeof(SColData));
612✔
11943
    if (pSubmitTbData->aCol == NULL) {
614!
11944
      TAOS_CHECK_EXIT(terrno);
×
11945
    }
11946

11947
    for (int32_t i = 0; i < nColData; ++i) {
3,044✔
11948
      TAOS_CHECK_EXIT(tDecodeColData(version, pCoder, taosArrayReserve(pSubmitTbData->aCol, 1)));
2,433!
11949
    }
11950
  } else {
11951
    uint64_t nRow = 0;
13,316,397✔
11952
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nRow));
13,320,504!
11953

11954
    pSubmitTbData->aRowP = taosArrayInit(nRow, sizeof(SRow *));
13,320,504✔
11955
    if (pSubmitTbData->aRowP == NULL) {
13,340,449✔
11956
      TAOS_CHECK_EXIT(terrno);
82!
11957
    }
11958

11959
    for (int32_t iRow = 0; iRow < nRow; ++iRow) {
842,701,303✔
11960
      SRow **ppRow = taosArrayReserve(pSubmitTbData->aRowP, 1);
829,438,352✔
11961
      if (ppRow == NULL) {
829,349,524!
11962
        TAOS_CHECK_EXIT(terrno);
×
11963
      }
11964

11965
      TAOS_CHECK_EXIT(tDecodeRow(pCoder, ppRow));
829,349,524!
11966
    }
11967
  }
11968

11969
  pSubmitTbData->ctimeMs = 0;
13,263,562✔
11970
  if (!tDecodeIsEnd(pCoder)) {
13,263,562!
11971
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->ctimeMs));
26,668,017!
11972
  }
11973

11974
  if (rawData != NULL){
13,260,727✔
11975
    if (dataAfterCreate != NULL){
29✔
11976
      TAOS_MEMCPY(dataAfterCreate - INT_BYTES - flagsLen, dataStart, INT_BYTES + flagsLen);
5✔
11977
      *(int32_t*)(dataAfterCreate - INT_BYTES - flagsLen) = pCoder->pos - posAfterCreate + flagsLen;
5✔
11978
      *(void**)rawData = dataAfterCreate - INT_BYTES - flagsLen;
5✔
11979
    }else{
11980
      *(void**)rawData = dataStart;
24✔
11981
    }
11982
  }
11983
  tEndDecode(pCoder);
13,260,727✔
11984

11985
_exit:
13,332,154✔
11986
  return code;
13,332,154✔
11987
}
11988

11989
int32_t tEncodeSubmitReq(SEncoder *pCoder, const SSubmitReq2 *pReq) {
19,105,034✔
11990
  int32_t code = 0;
19,105,034✔
11991
  int32_t lino;
11992

11993
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
19,105,034!
11994
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pReq->aSubmitTbData)));
38,332,106!
11995
  if (pReq->raw){
19,160,777✔
11996
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
68✔
11997
      void* data = taosArrayGetP(pReq->aSubmitTbData, i);
34✔
11998
      if (pCoder->data != NULL){
34✔
11999
        TAOS_MEMCPY(pCoder->data + pCoder->pos, data, *(uint32_t*)data + INT_BYTES);
17✔
12000

12001
      }
12002
      pCoder->pos += *(uint32_t*)data + INT_BYTES;
34✔
12003
    }
12004
  } else{
12005
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
38,596,912✔
12006
      SSubmitTbData *pSubmitTbData = taosArrayGet(pReq->aSubmitTbData, i);
19,409,872✔
12007
      if ((pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) && pSubmitTbData->pCreateTbReq == NULL) {
19,392,137!
12008
        pSubmitTbData->flags = 0;
×
12009
      }
12010
      TAOS_CHECK_EXIT(tEncodeSSubmitTbData(pCoder, pSubmitTbData));
19,392,137!
12011
    }
12012
  }
12013

12014
  tEndEncode(pCoder);
19,081,430✔
12015
_exit:
19,187,727✔
12016
  return code;
19,187,727✔
12017
}
12018

12019
int32_t tDecodeSubmitReq(SDecoder *pCoder, SSubmitReq2 *pReq, SArray* rawList) {
12,391,088✔
12020
  int32_t code = 0;
12,391,088✔
12021

12022
  memset(pReq, 0, sizeof(*pReq));
12,391,088✔
12023

12024
  // decode
12025
  if (tStartDecode(pCoder) < 0) {
12,391,088!
12026
    code = TSDB_CODE_INVALID_MSG;
×
12027
    goto _exit;
×
12028
  }
12029

12030
  uint64_t nSubmitTbData;
12031
  if (tDecodeU64v(pCoder, &nSubmitTbData) < 0) {
12,391,786!
12032
    code = TSDB_CODE_INVALID_MSG;
×
12033
    goto _exit;
×
12034
  }
12035

12036
  pReq->aSubmitTbData = taosArrayInit(nSubmitTbData, sizeof(SSubmitTbData));
12,391,786✔
12037
  if (pReq->aSubmitTbData == NULL) {
12,391,436!
12038
    code = terrno;
×
12039
    goto _exit;
×
12040
  }
12041

12042
  for (uint64_t i = 0; i < nSubmitTbData; i++) {
25,723,598✔
12043
    SSubmitTbData* data = taosArrayReserve(pReq->aSubmitTbData, 1);
13,333,039✔
12044
    if (tDecodeSSubmitTbData(pCoder, data, rawList != NULL ? taosArrayReserve(rawList, 1) : NULL) < 0) {
13,330,517!
12045
      code = TSDB_CODE_INVALID_MSG;
×
12046
      goto _exit;
×
12047
    }
12048
  }
12049

12050
  tEndDecode(pCoder);
12,390,559✔
12051

12052
_exit:
12,390,870✔
12053
  return code;
12,390,870✔
12054
}
12055

12056
void tDestroySubmitTbData(SSubmitTbData *pTbData, int32_t flag) {
23,261,582✔
12057
  if (NULL == pTbData) {
23,261,582✔
12058
    return;
1,310✔
12059
  }
12060

12061
  if (flag == TSDB_MSG_FLG_ENCODE || flag == TSDB_MSG_FLG_CMPT) {
23,260,272✔
12062
    if (pTbData->pCreateTbReq) {
9,907,825✔
12063
      if (flag == TSDB_MSG_FLG_ENCODE) {
163,945!
12064
        tdDestroySVCreateTbReq(pTbData->pCreateTbReq);
163,945!
12065
      } else {
12066
        tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
×
12067
      }
12068
      taosMemoryFreeClear(pTbData->pCreateTbReq);
163,145!
12069
    }
12070

12071
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
9,907,026✔
12072
      int32_t   nColData = TARRAY_SIZE(pTbData->aCol);
248,363✔
12073
      SColData *aColData = (SColData *)TARRAY_DATA(pTbData->aCol);
248,363✔
12074

12075
      for (int32_t i = 0; i < nColData; ++i) {
1,578,268✔
12076
        tColDataDestroy(&aColData[i]);
1,329,911✔
12077
      }
12078
      taosArrayDestroy(pTbData->aCol);
248,357✔
12079
    } else {
12080
      int32_t nRow = TARRAY_SIZE(pTbData->aRowP);
9,658,663✔
12081
      SRow  **rows = (SRow **)TARRAY_DATA(pTbData->aRowP);
9,658,663✔
12082

12083
      for (int32_t i = 0; i < nRow; ++i) {
766,116,496✔
12084
        tRowDestroy(rows[i]);
756,525,748✔
12085
        rows[i] = NULL;
756,457,833✔
12086
      }
12087
      taosArrayDestroy(pTbData->aRowP);
9,590,748✔
12088
    }
12089
  } else if (flag == TSDB_MSG_FLG_DECODE) {
13,352,447✔
12090
    if (pTbData->pCreateTbReq) {
13,352,216✔
12091
      tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
67,522✔
12092
      taosMemoryFree(pTbData->pCreateTbReq);
67,520!
12093
    }
12094

12095
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
13,352,212✔
12096
      taosArrayDestroy(pTbData->aCol);
614✔
12097
    } else {
12098
      taosArrayDestroy(pTbData->aRowP);
13,351,598✔
12099
    }
12100
  }
12101

12102
  pTbData->aRowP = NULL;
23,265,837✔
12103
}
12104

12105
void tDestroySubmitReq(SSubmitReq2 *pReq, int32_t flag) {
22,237,529✔
12106
  if (pReq->aSubmitTbData == NULL) return;
22,237,529✔
12107

12108
  if (!pReq->raw){
22,012,084!
12109
    int32_t        nSubmitTbData = TARRAY_SIZE(pReq->aSubmitTbData);
22,013,926✔
12110
    SSubmitTbData *aSubmitTbData = (SSubmitTbData *)TARRAY_DATA(pReq->aSubmitTbData);
22,013,926✔
12111

12112
    for (int32_t i = 0; i < nSubmitTbData; i++) {
45,121,879✔
12113
      tDestroySubmitTbData(&aSubmitTbData[i], flag);
23,102,061✔
12114
    }
12115
  }
12116

12117
  taosArrayDestroy(pReq->aSubmitTbData);
22,017,976✔
12118
  pReq->aSubmitTbData = NULL;
22,020,418✔
12119
}
12120

12121
int32_t tEncodeSSubmitRsp2(SEncoder *pCoder, const SSubmitRsp2 *pRsp) {
22,555,061✔
12122
  int32_t code = 0;
22,555,061✔
12123
  int32_t lino;
12124

12125
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
22,555,061!
12126

12127
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRsp->affectedRows));
45,110,276!
12128

12129
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pRsp->aCreateTbRsp)));
45,110,071!
12130
  for (int32_t i = 0; i < taosArrayGetSize(pRsp->aCreateTbRsp); ++i) {
22,641,678✔
12131
    TAOS_CHECK_EXIT(tEncodeSVCreateTbRsp(pCoder, taosArrayGet(pRsp->aCreateTbRsp, i)));
86,746!
12132
  }
12133

12134
  tEndEncode(pCoder);
22,554,854✔
12135
_exit:
22,554,893✔
12136
  return code;
22,554,893✔
12137
}
12138

12139
int32_t tDecodeSSubmitRsp2(SDecoder *pCoder, SSubmitRsp2 *pRsp) {
9,567,991✔
12140
  int32_t code = 0;
9,567,991✔
12141

12142
  memset(pRsp, 0, sizeof(SSubmitRsp2));
9,567,991✔
12143

12144
  // decode
12145
  if (tStartDecode(pCoder) < 0) {
9,567,991✔
12146
    code = TSDB_CODE_INVALID_MSG;
50✔
12147
    goto _exit;
50✔
12148
  }
12149

12150
  if (tDecodeI32v(pCoder, &pRsp->affectedRows) < 0) {
19,194,296!
12151
    code = TSDB_CODE_INVALID_MSG;
×
12152
    goto _exit;
×
12153
  }
12154

12155
  uint64_t nCreateTbRsp;
12156
  if (tDecodeU64v(pCoder, &nCreateTbRsp) < 0) {
9,596,115!
12157
    code = TSDB_CODE_INVALID_MSG;
×
12158
    goto _exit;
×
12159
  }
12160

12161
  if (nCreateTbRsp) {
9,596,115✔
12162
    pRsp->aCreateTbRsp = taosArrayInit(nCreateTbRsp, sizeof(SVCreateTbRsp));
65,609✔
12163
    if (pRsp->aCreateTbRsp == NULL) {
65,609!
12164
      code = terrno;
×
12165
      goto _exit;
×
12166
    }
12167

12168
    for (int32_t i = 0; i < nCreateTbRsp; ++i) {
136,818✔
12169
      SVCreateTbRsp *pCreateTbRsp = taosArrayReserve(pRsp->aCreateTbRsp, 1);
71,209✔
12170
      if (tDecodeSVCreateTbRsp(pCoder, pCreateTbRsp) < 0) {
71,210!
12171
        code = TSDB_CODE_INVALID_MSG;
×
12172
        goto _exit;
×
12173
      }
12174
    }
12175
  }
12176

12177
  tEndDecode(pCoder);
9,596,115✔
12178

12179
_exit:
9,579,655✔
12180
  if (code) {
9,579,655✔
12181
    if (pRsp->aCreateTbRsp) {
50!
12182
      taosArrayDestroyEx(pRsp->aCreateTbRsp, NULL /* todo */);
×
12183
    }
12184
  }
12185
  return code;
9,574,528✔
12186
}
12187

12188
void tDestroySSubmitRsp2(SSubmitRsp2 *pRsp, int32_t flag) {
30,196,606✔
12189
  if (NULL == pRsp) {
30,196,606✔
12190
    return;
9,437,467✔
12191
  }
12192

12193
  if (flag & TSDB_MSG_FLG_ENCODE) {
20,759,139✔
12194
    if (pRsp->aCreateTbRsp) {
11,277,640✔
12195
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
26,758✔
12196
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
26,758✔
12197
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
70,168✔
12198
        if (aCreateTbRsp[i].pMeta) {
43,411✔
12199
          taosMemoryFree(aCreateTbRsp[i].pMeta);
36,841!
12200
        }
12201
      }
12202
      taosArrayDestroy(pRsp->aCreateTbRsp);
26,757✔
12203
    }
12204
  } else if (flag & TSDB_MSG_FLG_DECODE) {
9,481,499!
12205
    if (pRsp->aCreateTbRsp) {
9,572,208✔
12206
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
65,443✔
12207
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
65,443✔
12208
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
136,653✔
12209
        if (aCreateTbRsp[i].pMeta) {
71,209✔
12210
          taosMemoryFree(aCreateTbRsp[i].pMeta);
30,345!
12211
        }
12212
      }
12213
      taosArrayDestroy(pRsp->aCreateTbRsp);
65,444✔
12214
    }
12215
  }
12216
}
12217

12218
int32_t tSerializeSMPauseStreamReq(void *buf, int32_t bufLen, const SMPauseStreamReq *pReq) {
1,028✔
12219
  int32_t  code = 0;
1,028✔
12220
  int32_t  lino;
12221
  int32_t  tlen;
12222
  SEncoder encoder = {0};
1,028✔
12223
  tEncoderInit(&encoder, buf, bufLen);
1,028✔
12224
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,028!
12225
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
2,056!
12226
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
2,056!
12227
  tEndEncode(&encoder);
1,028✔
12228

12229
_exit:
1,028✔
12230
  if (code) {
1,028!
12231
    tlen = code;
×
12232
  } else {
12233
    tlen = encoder.pos;
1,028✔
12234
  }
12235
  tEncoderClear(&encoder);
1,028✔
12236
  return tlen;
1,028✔
12237
}
12238

12239
int32_t tDeserializeSMPauseStreamReq(void *buf, int32_t bufLen, SMPauseStreamReq *pReq) {
760✔
12240
  SDecoder decoder = {0};
760✔
12241
  int32_t  code = 0;
760✔
12242
  int32_t  lino;
12243

12244
  tDecoderInit(&decoder, buf, bufLen);
760✔
12245
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
760!
12246
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
760!
12247
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
1,520!
12248
  tEndDecode(&decoder);
760✔
12249

12250
_exit:
760✔
12251
  tDecoderClear(&decoder);
760✔
12252
  return code;
760✔
12253
}
12254

12255
int32_t tSerializeSMResumeStreamReq(void *buf, int32_t bufLen, const SMResumeStreamReq *pReq) {
1,126✔
12256
  SEncoder encoder = {0};
1,126✔
12257
  int32_t  code = 0;
1,126✔
12258
  int32_t  lino;
12259
  int32_t  tlen;
12260
  tEncoderInit(&encoder, buf, bufLen);
1,126✔
12261
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,126!
12262
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
2,252!
12263
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
2,252!
12264
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUntreated));
2,252!
12265
  tEndEncode(&encoder);
1,126✔
12266

12267
_exit:
1,126✔
12268
  if (code) {
1,126!
12269
    tlen = code;
×
12270
  } else {
12271
    tlen = encoder.pos;
1,126✔
12272
  }
12273
  tEncoderClear(&encoder);
1,126✔
12274
  return tlen;
1,126✔
12275
}
12276

12277
int32_t tDeserializeSMResumeStreamReq(void *buf, int32_t bufLen, SMResumeStreamReq *pReq) {
856✔
12278
  SDecoder decoder = {0};
856✔
12279
  int32_t  code = 0;
856✔
12280
  int32_t  lino;
12281

12282
  tDecoderInit(&decoder, buf, bufLen);
856✔
12283
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
856!
12284
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
856!
12285
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
1,712!
12286
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUntreated));
1,712!
12287
  tEndDecode(&decoder);
856✔
12288

12289
_exit:
856✔
12290
  tDecoderClear(&decoder);
856✔
12291
  return code;
856✔
12292
}
12293

12294
int32_t tSerializeSMResetStreamReq(void *buf, int32_t bufLen, const SMResetStreamReq *pReq) {
×
12295
  SEncoder encoder = {0};
×
12296
  int32_t  code = 0;
×
12297
  int32_t  lino;
12298
  int32_t  tlen;
12299
  tEncoderInit(&encoder, buf, bufLen);
×
12300
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
12301
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
12302
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
×
12303
  tEndEncode(&encoder);
×
12304

12305
_exit:
×
12306
  if (code) {
×
12307
    tlen = code;
×
12308
  } else {
12309
    tlen = encoder.pos;
×
12310
  }
12311
  tEncoderClear(&encoder);
×
12312
  return tlen;
×
12313
}
12314

12315
int32_t tDeserializeSMResetStreamReq(void *buf, int32_t bufLen, SMResetStreamReq *pReq) {
×
12316
  SDecoder decoder = {0};
×
12317
  int32_t  code = 0;
×
12318
  int32_t  lino;
12319

12320
  tDecoderInit(&decoder, buf, bufLen);
×
12321
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
12322
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
12323
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
×
12324
  tEndDecode(&decoder);
×
12325

12326
_exit:
×
12327
  tDecoderClear(&decoder);
×
12328
  return code;
×
12329
}
12330

12331
int32_t tEncodeMqSubTopicEp(void **buf, const SMqSubTopicEp *pTopicEp) {
1,225,122✔
12332
  int32_t tlen = 0;
1,225,122✔
12333
  tlen += taosEncodeString(buf, pTopicEp->topic);
1,225,122✔
12334
  tlen += taosEncodeString(buf, pTopicEp->db);
1,225,122✔
12335
  int32_t sz = taosArrayGetSize(pTopicEp->vgs);
1,225,122✔
12336
  tlen += taosEncodeFixedI32(buf, sz);
1,225,122✔
12337
  for (int32_t i = 0; i < sz; i++) {
2,452,046✔
12338
    SMqSubVgEp *pVgEp = (SMqSubVgEp *)taosArrayGet(pTopicEp->vgs, i);
1,226,924✔
12339
    tlen += tEncodeSMqSubVgEp(buf, pVgEp);
1,226,924✔
12340
  }
12341
  tlen += taosEncodeSSchemaWrapper(buf, &pTopicEp->schema);
1,225,122✔
12342
  return tlen;
1,225,122✔
12343
}
12344

12345
void *tDecodeMqSubTopicEp(void *buf, SMqSubTopicEp *pTopicEp) {
612,436✔
12346
  buf = taosDecodeStringTo(buf, pTopicEp->topic);
612,436✔
12347
  buf = taosDecodeStringTo(buf, pTopicEp->db);
1,224,872!
12348
  int32_t sz;
12349
  buf = taosDecodeFixedI32(buf, &sz);
612,436✔
12350
  pTopicEp->vgs = taosArrayInit(sz, sizeof(SMqSubVgEp));
612,436✔
12351
  if (pTopicEp->vgs == NULL) {
612,436!
12352
    return NULL;
×
12353
  }
12354
  for (int32_t i = 0; i < sz; i++) {
1,225,747✔
12355
    SMqSubVgEp vgEp;
12356
    buf = tDecodeSMqSubVgEp(buf, &vgEp);
613,311✔
12357
    if (taosArrayPush(pTopicEp->vgs, &vgEp) == NULL) {
1,226,622!
12358
      taosArrayDestroy(pTopicEp->vgs);
×
12359
      pTopicEp->vgs = NULL;
×
12360
      return NULL;
×
12361
    }
12362
  }
12363
  buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema);
612,436✔
12364
  return buf;
612,436✔
12365
}
12366

12367
void tDeleteMqSubTopicEp(SMqSubTopicEp *pSubTopicEp) {
1,224,997✔
12368
  taosMemoryFreeClear(pSubTopicEp->schema.pSchema);
1,224,997!
12369
  pSubTopicEp->schema.nCols = 0;
1,224,997✔
12370
  taosArrayDestroy(pSubTopicEp->vgs);
1,224,997✔
12371
}
1,224,997✔
12372

12373
int32_t tSerializeSCMCreateViewReq(void *buf, int32_t bufLen, const SCMCreateViewReq *pReq) {
450✔
12374
  SEncoder encoder = {0};
450✔
12375
  int32_t  code = 0;
450✔
12376
  int32_t  lino;
12377
  int32_t  tlen;
12378
  tEncoderInit(&encoder, buf, bufLen);
450✔
12379

12380
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
450!
12381
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
900!
12382
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
900!
12383
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
900!
12384
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->querySql));
900!
12385
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
900!
12386
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
900!
12387
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
900!
12388
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfCols));
900!
12389
  for (int32_t i = 0; i < pReq->numOfCols; ++i) {
1,958✔
12390
    SSchema *pSchema = &pReq->pSchema[i];
1,508✔
12391
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
1,508!
12392
  }
12393

12394
  tEndEncode(&encoder);
450✔
12395

12396
_exit:
450✔
12397
  if (code) {
450!
12398
    tlen = code;
×
12399
  } else {
12400
    tlen = encoder.pos;
450✔
12401
  }
12402
  tEncoderClear(&encoder);
450✔
12403
  return tlen;
450✔
12404
}
12405

12406
int32_t tDeserializeSCMCreateViewReq(void *buf, int32_t bufLen, SCMCreateViewReq *pReq) {
211✔
12407
  SDecoder decoder = {0};
211✔
12408
  int32_t  code = 0;
211✔
12409
  int32_t  lino;
12410

12411
  tDecoderInit(&decoder, buf, bufLen);
211✔
12412

12413
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
211!
12414
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
211!
12415
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
211!
12416
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
211!
12417
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->querySql));
422!
12418
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
422!
12419
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
422!
12420
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
422!
12421
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfCols));
422!
12422

12423
  if (pReq->numOfCols > 0) {
211!
12424
    pReq->pSchema = taosMemoryCalloc(pReq->numOfCols, sizeof(SSchema));
211!
12425
    if (pReq->pSchema == NULL) {
211!
12426
      TAOS_CHECK_EXIT(terrno);
×
12427
    }
12428

12429
    for (int32_t i = 0; i < pReq->numOfCols; ++i) {
925✔
12430
      SSchema *pSchema = pReq->pSchema + i;
714✔
12431
      TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
714!
12432
    }
12433
  }
12434

12435
  tEndDecode(&decoder);
211✔
12436

12437
_exit:
211✔
12438
  tDecoderClear(&decoder);
211✔
12439
  return code;
211✔
12440
}
12441

12442
void tFreeSCMCreateViewReq(SCMCreateViewReq *pReq) {
751✔
12443
  if (NULL == pReq) {
751!
12444
    return;
×
12445
  }
12446

12447
  taosMemoryFreeClear(pReq->querySql);
751!
12448
  taosMemoryFreeClear(pReq->sql);
751!
12449
  taosMemoryFreeClear(pReq->pSchema);
751!
12450
}
12451

12452
int32_t tSerializeSCMDropViewReq(void *buf, int32_t bufLen, const SCMDropViewReq *pReq) {
370✔
12453
  SEncoder encoder = {0};
370✔
12454
  int32_t  code = 0;
370✔
12455
  int32_t  lino;
12456
  int32_t  tlen;
12457
  tEncoderInit(&encoder, buf, bufLen);
370✔
12458

12459
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
370!
12460
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
740!
12461
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
740!
12462
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
740!
12463
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
740!
12464
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
740!
12465

12466
  tEndEncode(&encoder);
370✔
12467

12468
_exit:
370✔
12469
  if (code) {
370!
12470
    tlen = code;
×
12471
  } else {
12472
    tlen = encoder.pos;
370✔
12473
  }
12474
  tEncoderClear(&encoder);
370✔
12475
  return tlen;
370✔
12476
}
12477

12478
int32_t tDeserializeSCMDropViewReq(void *buf, int32_t bufLen, SCMDropViewReq *pReq) {
184✔
12479
  SDecoder decoder = {0};
184✔
12480
  int32_t  code = 0;
184✔
12481
  int32_t  lino;
12482

12483
  tDecoderInit(&decoder, buf, bufLen);
184✔
12484

12485
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
184!
12486
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
184!
12487
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
184!
12488
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
184!
12489
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
368!
12490
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
368!
12491

12492
  tEndDecode(&decoder);
184✔
12493

12494
_exit:
184✔
12495
  tDecoderClear(&decoder);
184✔
12496
  return code;
184✔
12497
}
12498
void tFreeSCMDropViewReq(SCMDropViewReq *pReq) {
184✔
12499
  if (NULL == pReq) {
184!
12500
    return;
×
12501
  }
12502

12503
  taosMemoryFree(pReq->sql);
184!
12504
}
12505

12506
int32_t tSerializeSViewMetaReq(void *buf, int32_t bufLen, const SViewMetaReq *pReq) {
42,568✔
12507
  SEncoder encoder = {0};
42,568✔
12508
  int32_t  code = 0;
42,568✔
12509
  int32_t  lino;
12510
  int32_t  tlen;
12511
  tEncoderInit(&encoder, buf, bufLen);
42,568✔
12512

12513
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
42,570!
12514
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
85,142!
12515

12516
  tEndEncode(&encoder);
42,571✔
12517

12518
_exit:
42,571✔
12519
  if (code) {
42,571!
12520
    tlen = code;
×
12521
  } else {
12522
    tlen = encoder.pos;
42,571✔
12523
  }
12524
  tEncoderClear(&encoder);
42,571✔
12525
  return tlen;
42,566✔
12526
}
12527

12528
int32_t tDeserializeSViewMetaReq(void *buf, int32_t bufLen, SViewMetaReq *pReq) {
1,535,895✔
12529
  SDecoder decoder = {0};
1,535,895✔
12530
  int32_t  code = 0;
1,535,895✔
12531
  int32_t  lino;
12532

12533
  tDecoderInit(&decoder, buf, bufLen);
1,535,895✔
12534

12535
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,535,893!
12536
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
1,535,899!
12537

12538
  tEndDecode(&decoder);
1,535,891✔
12539

12540
_exit:
1,535,888✔
12541
  tDecoderClear(&decoder);
1,535,888✔
12542
  return code;
1,535,899✔
12543
}
12544

12545
static int32_t tEncodeSViewMetaRsp(SEncoder *pEncoder, const SViewMetaRsp *pRsp) {
612✔
12546
  int32_t code = 0;
612✔
12547
  int32_t lino;
12548

12549
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->name));
1,224!
12550
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->dbFName));
1,224!
12551
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->user));
1,224!
12552
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->dbId));
1,224!
12553
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->viewId));
1,224!
12554
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->querySql));
1,224!
12555
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->precision));
1,224!
12556
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->type));
1,224!
12557
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->version));
1,224!
12558
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->numOfCols));
1,224!
12559
  for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
2,510✔
12560
    SSchema *pSchema = &pRsp->pSchema[i];
1,898✔
12561
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
1,898!
12562
  }
12563

12564
_exit:
612✔
12565
  return code;
612✔
12566
}
12567

12568
int32_t tSerializeSViewMetaRsp(void *buf, int32_t bufLen, const SViewMetaRsp *pRsp) {
608✔
12569
  SEncoder encoder = {0};
608✔
12570
  int32_t  code = 0;
608✔
12571
  int32_t  lino;
12572
  int32_t  tlen;
12573
  tEncoderInit(&encoder, buf, bufLen);
608✔
12574

12575
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
608!
12576
  TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pRsp));
608!
12577

12578
  tEndEncode(&encoder);
608✔
12579

12580
_exit:
608✔
12581
  if (code) {
608!
12582
    tlen = code;
×
12583
  } else {
12584
    tlen = encoder.pos;
608✔
12585
  }
12586
  tEncoderClear(&encoder);
608✔
12587
  return tlen;
608✔
12588
}
12589

12590
static int32_t tDecodeSViewMetaRsp(SDecoder *pDecoder, SViewMetaRsp *pRsp) {
310✔
12591
  int32_t code = 0;
310✔
12592
  int32_t lino;
12593

12594
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->name));
310!
12595
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->dbFName));
310!
12596
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->user));
620!
12597
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->dbId));
620!
12598
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->viewId));
620!
12599
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->querySql));
620!
12600
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->precision));
620!
12601
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->type));
620!
12602
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->version));
620!
12603
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->numOfCols));
620!
12604
  if (pRsp->numOfCols > 0) {
310✔
12605
    pRsp->pSchema = taosMemoryCalloc(pRsp->numOfCols, sizeof(SSchema));
308!
12606
    if (pRsp->pSchema == NULL) {
308!
12607
      TAOS_CHECK_EXIT(terrno);
×
12608
    }
12609

12610
    for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
1,273✔
12611
      SSchema *pSchema = pRsp->pSchema + i;
965✔
12612
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, pSchema));
965!
12613
    }
12614
  }
12615

12616
_exit:
310✔
12617
  return code;
310✔
12618
}
12619

12620
int32_t tDeserializeSViewMetaRsp(void *buf, int32_t bufLen, SViewMetaRsp *pRsp) {
308✔
12621
  SDecoder decoder = {0};
308✔
12622
  int32_t  code = 0;
308✔
12623
  int32_t  lino;
12624

12625
  tDecoderInit(&decoder, buf, bufLen);
308✔
12626

12627
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
308!
12628
  TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, pRsp));
308!
12629

12630
  tEndDecode(&decoder);
308✔
12631

12632
_exit:
308✔
12633
  tDecoderClear(&decoder);
308✔
12634
  return code;
308✔
12635
}
12636

12637
void tFreeSViewMetaRsp(SViewMetaRsp *pRsp) {
616✔
12638
  if (NULL == pRsp) {
616!
12639
    return;
×
12640
  }
12641

12642
  taosMemoryFree(pRsp->user);
616!
12643
  taosMemoryFree(pRsp->querySql);
616!
12644
  taosMemoryFree(pRsp->pSchema);
616!
12645
}
12646

12647
int32_t tSerializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
6✔
12648
  SEncoder encoder = {0};
6✔
12649
  int32_t  code = 0;
6✔
12650
  int32_t  lino;
12651
  int32_t  tlen;
12652
  tEncoderInit(&encoder, buf, bufLen);
6✔
12653

12654
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
12655

12656
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
6✔
12657
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
6!
12658
  for (int32_t i = 0; i < numOfMeta; ++i) {
10✔
12659
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
4✔
12660
    TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pMetaRsp));
4!
12661
  }
12662

12663
  tEndEncode(&encoder);
6✔
12664

12665
_exit:
6✔
12666
  if (code) {
6!
12667
    tlen = code;
×
12668
  } else {
12669
    tlen = encoder.pos;
6✔
12670
  }
12671
  tEncoderClear(&encoder);
6✔
12672
  return tlen;
6✔
12673
}
12674

12675
int32_t tDeserializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
3✔
12676
  SDecoder decoder = {0};
3✔
12677
  int32_t  code = 0;
3✔
12678
  int32_t  lino;
12679

12680
  tDecoderInit(&decoder, buf, bufLen);
3✔
12681

12682
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
12683

12684
  int32_t numOfMeta = 0;
3✔
12685
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
3!
12686
  pRsp->pViewRsp = taosArrayInit(numOfMeta, POINTER_BYTES);
3✔
12687
  if (pRsp->pViewRsp == NULL) {
3!
12688
    TAOS_CHECK_EXIT(terrno);
×
12689
  }
12690

12691
  for (int32_t i = 0; i < numOfMeta; ++i) {
5✔
12692
    SViewMetaRsp *metaRsp = taosMemoryCalloc(1, sizeof(SViewMetaRsp));
2!
12693
    if (NULL == metaRsp) {
2!
12694
      TAOS_CHECK_EXIT(terrno);
×
12695
    }
12696
    TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, metaRsp));
2!
12697
    if (taosArrayPush(pRsp->pViewRsp, &metaRsp) == NULL) {
4!
12698
      TAOS_CHECK_EXIT(terrno);
×
12699
    }
12700
  }
12701

12702
  tEndDecode(&decoder);
3✔
12703

12704
_exit:
3✔
12705
  tDecoderClear(&decoder);
3✔
12706
  return code;
3✔
12707
}
12708

12709
void tFreeSViewHbRsp(SViewHbRsp *pRsp) {
3✔
12710
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
3✔
12711
  for (int32_t i = 0; i < numOfMeta; ++i) {
5✔
12712
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
2✔
12713
    tFreeSViewMetaRsp(pMetaRsp);
2✔
12714
    taosMemoryFree(pMetaRsp);
2!
12715
  }
12716

12717
  taosArrayDestroy(pRsp->pViewRsp);
3✔
12718
}
3✔
12719

12720
void setDefaultOptionsForField(SFieldWithOptions *field) {
1,618✔
12721
  setColEncode(&field->compress, getDefaultEncode(field->type));
1,618✔
12722
  setColCompress(&field->compress, getDefaultCompress(field->type));
1,616✔
12723
  setColLevel(&field->compress, getDefaultLevel(field->type));
1,613✔
12724
}
1,613✔
12725

12726
void setFieldWithOptions(SFieldWithOptions *fieldWithOptions, SField *field) {
1,614✔
12727
  fieldWithOptions->bytes = field->bytes;
1,614✔
12728
  fieldWithOptions->flags = field->flags;
1,614✔
12729
  fieldWithOptions->type = field->type;
1,614✔
12730
  tstrncpy(fieldWithOptions->name, field->name, TSDB_COL_NAME_LEN);
1,614✔
12731
}
1,614✔
12732
int32_t tSerializeTableTSMAInfoReq(void *buf, int32_t bufLen, const STableTSMAInfoReq *pReq) {
2,226✔
12733
  SEncoder encoder = {0};
2,226✔
12734
  int32_t  code = 0;
2,226✔
12735
  int32_t  lino;
12736
  int32_t  tlen;
12737
  tEncoderInit(&encoder, buf, bufLen);
2,226✔
12738

12739
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,226!
12740
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,452!
12741
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fetchingWithTsmaName));
4,452!
12742

12743
  tEndEncode(&encoder);
2,226✔
12744

12745
_exit:
2,226✔
12746
  if (code) {
2,226!
12747
    tlen = code;
×
12748
  } else {
12749
    tlen = encoder.pos;
2,226✔
12750
  }
12751
  tEncoderClear(&encoder);
2,226✔
12752
  return tlen;
2,226✔
12753
}
12754

12755
int32_t tDeserializeTableTSMAInfoReq(void *buf, int32_t bufLen, STableTSMAInfoReq *pReq) {
1,395✔
12756
  SDecoder decoder = {0};
1,395✔
12757
  int32_t  code = 0;
1,395✔
12758
  int32_t  lino;
12759

12760
  tDecoderInit(&decoder, buf, bufLen);
1,395✔
12761

12762
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,395!
12763
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,395!
12764
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (uint8_t *)&pReq->fetchingWithTsmaName));
2,790!
12765

12766
  tEndDecode(&decoder);
1,395✔
12767

12768
_exit:
1,395✔
12769
  tDecoderClear(&decoder);
1,395✔
12770
  return code;
1,395✔
12771
}
12772

12773
static int32_t tEncodeTableTSMAInfo(SEncoder *pEncoder, const STableTSMAInfo *pTsmaInfo) {
3,996✔
12774
  int32_t code = 0;
3,996✔
12775
  int32_t lino;
12776

12777
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->name));
7,992!
12778
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->tsmaId));
7,992!
12779
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->tb));
7,992!
12780
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->dbFName));
7,992!
12781
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->suid));
7,992!
12782
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->destTbUid));
7,992!
12783
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->dbId));
7,992!
12784
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTsmaInfo->version));
7,992!
12785
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetTb));
7,992!
12786
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetDbFName));
7,992!
12787
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->interval));
7,992!
12788
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->unit));
7,992!
12789

12790
  int32_t size = pTsmaInfo->pFuncs ? pTsmaInfo->pFuncs->size : 0;
3,996✔
12791
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
3,996!
12792
  for (int32_t i = 0; i < size; ++i) {
807,554✔
12793
    STableTSMAFuncInfo *pFuncInfo = taosArrayGet(pTsmaInfo->pFuncs, i);
803,558✔
12794
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pFuncInfo->funcId));
1,607,116!
12795
    TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pFuncInfo->colId));
1,607,116!
12796
  }
12797

12798
  size = pTsmaInfo->pTags ? pTsmaInfo->pTags->size : 0;
3,996✔
12799
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
3,996!
12800
  for (int32_t i = 0; i < size; ++i) {
29,288✔
12801
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pTags, i);
25,292✔
12802
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
25,292!
12803
  }
12804
  size = pTsmaInfo->pUsedCols ? pTsmaInfo->pUsedCols->size : 0;
3,996✔
12805
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
3,996!
12806
  for (int32_t i = 0; i < size; ++i) {
807,554✔
12807
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pUsedCols, i);
803,558✔
12808
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
803,558!
12809
  }
12810

12811
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->ast));
7,992!
12812
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->streamUid));
7,992!
12813
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->reqTs));
7,992!
12814
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->rspTs));
7,992!
12815
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->delayDuration));
7,992!
12816
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->fillHistoryFinished));
7,992!
12817

12818
_exit:
3,996✔
12819
  return code;
3,996✔
12820
}
12821

12822
static int32_t tDecodeTableTSMAInfo(SDecoder *pDecoder, STableTSMAInfo *pTsmaInfo) {
1,597✔
12823
  int32_t code = 0;
1,597✔
12824
  int32_t lino;
12825

12826
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->name));
1,597!
12827
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->tsmaId));
3,194!
12828
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->tb));
1,597!
12829
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->dbFName));
1,597!
12830
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->suid));
3,194!
12831
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->destTbUid));
3,194!
12832
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->dbId));
3,194!
12833
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pTsmaInfo->version));
3,194!
12834
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetTb));
1,597!
12835
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetDbFName));
1,597!
12836
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->interval));
3,194!
12837
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pTsmaInfo->unit));
3,194!
12838
  int32_t size = 0;
1,597✔
12839
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,597!
12840
  if (size > 0) {
1,597✔
12841
    pTsmaInfo->pFuncs = taosArrayInit(size, sizeof(STableTSMAFuncInfo));
1,595✔
12842
    if (!pTsmaInfo->pFuncs) {
1,595!
12843
      TAOS_CHECK_EXIT(terrno);
×
12844
    }
12845
    for (int32_t i = 0; i < size; ++i) {
320,577✔
12846
      STableTSMAFuncInfo funcInfo = {0};
318,982✔
12847
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &funcInfo.funcId));
318,982!
12848
      TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &funcInfo.colId));
318,982!
12849
      if (!taosArrayPush(pTsmaInfo->pFuncs, &funcInfo)) {
637,964!
12850
        TAOS_CHECK_EXIT(terrno);
×
12851
      }
12852
    }
12853
  }
12854

12855
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,597!
12856
  if (size > 0) {
1,597✔
12857
    pTsmaInfo->pTags = taosArrayInit(size, sizeof(SSchema));
1,595✔
12858
    if (!pTsmaInfo->pTags) {
1,595!
12859
      TAOS_CHECK_EXIT(terrno);
×
12860
    }
12861
    for (int32_t i = 0; i < size; ++i) {
11,728✔
12862
      SSchema schema = {0};
10,133✔
12863
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
10,133!
12864
      if (taosArrayPush(pTsmaInfo->pTags, &schema) == NULL) {
20,266!
12865
        TAOS_CHECK_EXIT(terrno);
×
12866
      }
12867
    }
12868
  }
12869

12870
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,597!
12871
  if (size > 0) {
1,597✔
12872
    pTsmaInfo->pUsedCols = taosArrayInit(size, sizeof(SSchema));
1,595✔
12873
    if (!pTsmaInfo->pUsedCols) {
1,595!
12874
      TAOS_CHECK_EXIT(terrno);
×
12875
    }
12876
    for (int32_t i = 0; i < size; ++i) {
320,577✔
12877
      SSchema schema = {0};
318,982✔
12878
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
318,982!
12879
      if (taosArrayPush(pTsmaInfo->pUsedCols, &schema) == NULL) {
637,964!
12880
        TAOS_CHECK_EXIT(terrno);
×
12881
      }
12882
    }
12883
  }
12884
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pTsmaInfo->ast));
3,194!
12885
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->streamUid));
3,194!
12886
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->reqTs));
3,194!
12887
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->rspTs));
3,194!
12888
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->delayDuration));
3,194!
12889
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pTsmaInfo->fillHistoryFinished));
3,194!
12890

12891
_exit:
1,597✔
12892
  return code;
1,597✔
12893
}
12894

12895
static int32_t tEncodeTableTSMAInfoRsp(SEncoder *pEncoder, const STableTSMAInfoRsp *pRsp) {
27,762✔
12896
  int32_t code = 0;
27,762✔
12897
  int32_t lino;
12898

12899
  int32_t size = pRsp->pTsmas ? pRsp->pTsmas->size : 0;
27,762!
12900
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
27,762!
12901
  for (int32_t i = 0; i < size; ++i) {
31,758✔
12902
    STableTSMAInfo *pInfo = taosArrayGetP(pRsp->pTsmas, i);
3,996✔
12903
    TAOS_CHECK_EXIT(tEncodeTableTSMAInfo(pEncoder, pInfo));
3,996!
12904
  }
12905
_exit:
27,762✔
12906
  return code;
27,762✔
12907
}
12908

12909
static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pRsp) {
3,354✔
12910
  int32_t size = 0;
3,354✔
12911
  int32_t code = 0;
3,354✔
12912
  int32_t lino;
12913

12914
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
3,354!
12915
  if (size <= 0) return 0;
3,354✔
12916
  pRsp->pTsmas = taosArrayInit(size, POINTER_BYTES);
1,080✔
12917
  if (!pRsp->pTsmas) {
1,080!
12918
    TAOS_CHECK_EXIT(terrno);
×
12919
  }
12920
  for (int32_t i = 0; i < size; ++i) {
2,677✔
12921
    STableTSMAInfo *pTsma = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
1,597!
12922
    if (!pTsma) {
1,597!
12923
      TAOS_CHECK_EXIT(terrno);
×
12924
    }
12925
    if (taosArrayPush(pRsp->pTsmas, &pTsma) == NULL) {
3,194!
12926
      TAOS_CHECK_EXIT(terrno);
×
12927
    }
12928
    TAOS_CHECK_EXIT(tDecodeTableTSMAInfo(pDecoder, pTsma));
1,597!
12929
  }
12930
_exit:
1,080✔
12931
  return code;
1,080✔
12932
}
12933

12934
int32_t tSerializeTableTSMAInfoRsp(void *buf, int32_t bufLen, const STableTSMAInfoRsp *pRsp) {
3,136✔
12935
  SEncoder encoder = {0};
3,136✔
12936
  int32_t  code = 0;
3,136✔
12937
  int32_t  lino;
12938
  int32_t  tlen;
12939
  tEncoderInit(&encoder, buf, bufLen);
3,136✔
12940

12941
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,136!
12942
  TAOS_CHECK_EXIT(tEncodeTableTSMAInfoRsp(&encoder, pRsp));
3,136!
12943

12944
  tEndEncode(&encoder);
3,136✔
12945

12946
_exit:
3,136✔
12947
  if (code) {
3,136!
12948
    tlen = code;
×
12949
  } else {
12950
    tlen = encoder.pos;
3,136✔
12951
  }
12952
  tEncoderClear(&encoder);
3,136✔
12953
  return tlen;
3,136✔
12954
}
12955

12956
int32_t tDeserializeTableTSMAInfoRsp(void *buf, int32_t bufLen, STableTSMAInfoRsp *pRsp) {
1,252✔
12957
  SDecoder decoder = {0};
1,252✔
12958
  int32_t  code = 0;
1,252✔
12959
  int32_t  lino;
12960

12961
  tDecoderInit(&decoder, buf, bufLen);
1,252✔
12962

12963
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,252!
12964
  TAOS_CHECK_EXIT(tDecodeTableTSMAInfoRsp(&decoder, pRsp));
1,252!
12965

12966
  tEndDecode(&decoder);
1,252✔
12967

12968
_exit:
1,252✔
12969
  tDecoderClear(&decoder);
1,252✔
12970
  return code;
1,252✔
12971
}
12972

12973
void tFreeTableTSMAInfo(void *p) {
27,907✔
12974
  STableTSMAInfo *pTsmaInfo = p;
27,907✔
12975
  if (pTsmaInfo) {
27,907!
12976
    taosArrayDestroy(pTsmaInfo->pFuncs);
27,907✔
12977
    taosArrayDestroy(pTsmaInfo->pTags);
27,907✔
12978
    taosArrayDestroy(pTsmaInfo->pUsedCols);
27,907✔
12979
    taosMemoryFree(pTsmaInfo->ast);
27,907!
12980
  }
12981
}
27,907✔
12982

12983
void tFreeAndClearTableTSMAInfo(void *p) {
26,729✔
12984
  STableTSMAInfo *pTsmaInfo = (STableTSMAInfo *)p;
26,729✔
12985
  if (pTsmaInfo) {
26,729!
12986
    tFreeTableTSMAInfo(pTsmaInfo);
26,729✔
12987
    taosMemoryFree(pTsmaInfo);
26,729!
12988
  }
12989
}
26,729✔
12990

12991
int32_t tCloneTbTSMAInfo(STableTSMAInfo *pInfo, STableTSMAInfo **pRes) {
24,312✔
12992
  int32_t code = TSDB_CODE_SUCCESS;
24,312✔
12993
  if (NULL == pInfo) {
24,312!
12994
    return TSDB_CODE_SUCCESS;
×
12995
  }
12996
  STableTSMAInfo *pRet = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
24,312!
12997
  if (!pRet) return terrno;
24,312!
12998

12999
  *pRet = *pInfo;
24,312✔
13000
  if (pInfo->pFuncs) {
24,312!
13001
    pRet->pFuncs = taosArrayDup(pInfo->pFuncs, NULL);
24,312✔
13002
    if (!pRet->pFuncs) code = terrno;
24,312!
13003
  }
13004
  if (pInfo->pTags && code == TSDB_CODE_SUCCESS) {
24,312!
13005
    pRet->pTags = taosArrayDup(pInfo->pTags, NULL);
24,312✔
13006
    if (!pRet->pTags) code = terrno;
24,312!
13007
  }
13008
  if (pInfo->pUsedCols && code == TSDB_CODE_SUCCESS) {
24,312!
13009
    pRet->pUsedCols = taosArrayDup(pInfo->pUsedCols, NULL);
24,312✔
13010
    if (!pRet->pUsedCols) code = terrno;
24,312!
13011
  }
13012
  if (pInfo->ast && code == TSDB_CODE_SUCCESS) {
24,312!
13013
    pRet->ast = taosStrdup(pInfo->ast);
24,312!
13014
    if (!pRet->ast) code = terrno;
24,312!
13015
  }
13016
  if (code) {
24,312!
13017
    tFreeAndClearTableTSMAInfo(pRet);
×
13018
    pRet = NULL;
×
13019
  }
13020
  *pRes = pRet;
24,312✔
13021
  return code;
24,312✔
13022
}
13023

13024
void tFreeTableTSMAInfoRsp(STableTSMAInfoRsp *pRsp) {
29,790✔
13025
  if (pRsp && pRsp->pTsmas) {
29,790!
13026
    taosArrayDestroyP(pRsp->pTsmas, tFreeAndClearTableTSMAInfo);
27,653✔
13027
  }
13028
}
29,790✔
13029

13030
static int32_t tEncodeStreamProgressReq(SEncoder *pEncoder, const SStreamProgressReq *pReq) {
9,528✔
13031
  int32_t code = 0;
9,528✔
13032
  int32_t lino;
13033

13034
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->streamId));
19,056!
13035
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->vgId));
19,056!
13036
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->fetchIdx));
19,056!
13037
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->subFetchIdx));
19,056!
13038

13039
_exit:
9,528✔
13040
  return code;
9,528✔
13041
}
13042

13043
int32_t tSerializeStreamProgressReq(void *buf, int32_t bufLen, const SStreamProgressReq *pReq) {
9,528✔
13044
  SEncoder encoder = {0};
9,528✔
13045
  int32_t  code = 0;
9,528✔
13046
  int32_t  lino;
13047
  int32_t  tlen;
13048
  tEncoderInit(&encoder, buf, bufLen);
9,528✔
13049

13050
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
9,528!
13051
  TAOS_CHECK_EXIT(tEncodeStreamProgressReq(&encoder, pReq));
9,528!
13052

13053
  tEndEncode(&encoder);
9,528✔
13054

13055
_exit:
9,528✔
13056
  if (code) {
9,528!
13057
    tlen = code;
×
13058
  } else {
13059
    tlen = encoder.pos;
9,528✔
13060
  }
13061
  tEncoderClear(&encoder);
9,528✔
13062
  return tlen;
9,528✔
13063
}
13064

13065
static int32_t tDecodeStreamProgressReq(SDecoder *pDecoder, SStreamProgressReq *pReq) {
5,962✔
13066
  int32_t code = 0;
5,962✔
13067
  int32_t lino;
13068

13069
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->streamId));
11,924!
13070
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgId));
11,924!
13071
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->fetchIdx));
11,924!
13072
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->subFetchIdx));
11,924!
13073

13074
_exit:
5,962✔
13075
  return code;
5,962✔
13076
}
13077

13078
int32_t tDeserializeStreamProgressReq(void *buf, int32_t bufLen, SStreamProgressReq *pReq) {
5,962✔
13079
  SDecoder decoder = {0};
5,962✔
13080
  int32_t  code = 0;
5,962✔
13081
  int32_t  lino;
13082

13083
  tDecoderInit(&decoder, (char *)buf, bufLen);
5,962✔
13084

13085
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,962!
13086
  TAOS_CHECK_EXIT(tDecodeStreamProgressReq(&decoder, pReq));
5,962!
13087

13088
  tEndDecode(&decoder);
5,962✔
13089

13090
_exit:
5,962✔
13091
  tDecoderClear(&decoder);
5,962✔
13092
  return code;
5,962✔
13093
}
13094

13095
static int32_t tEncodeStreamProgressRsp(SEncoder *pEncoder, const SStreamProgressRsp *pRsp) {
11,921✔
13096
  int32_t code = 0;
11,921✔
13097
  int32_t lino;
13098

13099
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->streamId));
23,842!
13100
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
23,842!
13101
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->fillHisFinished));
23,842!
13102
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->progressDelay));
23,842!
13103
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->fetchIdx));
23,842!
13104
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->subFetchIdx));
23,842!
13105

13106
_exit:
11,921✔
13107
  return code;
11,921✔
13108
}
13109

13110
int32_t tSerializeStreamProgressRsp(void *buf, int32_t bufLen, const SStreamProgressRsp *pRsp) {
11,924✔
13111
  SEncoder encoder = {0};
11,924✔
13112
  int32_t  code = 0;
11,924✔
13113
  int32_t  lino;
13114
  int32_t  tlen;
13115
  tEncoderInit(&encoder, buf, bufLen);
11,924✔
13116

13117
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,924!
13118
  TAOS_CHECK_EXIT(tEncodeStreamProgressRsp(&encoder, pRsp));
11,920!
13119

13120
  tEndEncode(&encoder);
11,923✔
13121

13122
_exit:
11,923✔
13123
  if (code) {
11,923!
13124
    tlen = code;
×
13125
  } else {
13126
    tlen = encoder.pos;
11,923✔
13127
  }
13128
  tEncoderClear(&encoder);
11,923✔
13129
  return tlen;
11,922✔
13130
}
13131

13132
static int32_t tDecodeStreamProgressRsp(SDecoder *pDecoder, SStreamProgressRsp *pRsp) {
4,764✔
13133
  int32_t code = 0;
4,764✔
13134
  int32_t lino;
13135

13136
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->streamId));
9,528!
13137
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
9,528!
13138
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pRsp->fillHisFinished));
9,528!
13139
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->progressDelay));
9,528!
13140
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->fetchIdx));
9,528!
13141
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->subFetchIdx));
9,528!
13142

13143
_exit:
4,764✔
13144
  return code;
4,764✔
13145
}
13146

13147
int32_t tDeserializeSStreamProgressRsp(void *buf, int32_t bufLen, SStreamProgressRsp *pRsp) {
4,764✔
13148
  SDecoder decoder = {0};
4,764✔
13149
  int32_t  code = 0;
4,764✔
13150
  int32_t  lino;
13151

13152
  tDecoderInit(&decoder, buf, bufLen);
4,764✔
13153

13154
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,764!
13155
  TAOS_CHECK_EXIT(tDecodeStreamProgressRsp(&decoder, pRsp));
4,764!
13156

13157
  tEndDecode(&decoder);
4,764✔
13158

13159
_exit:
4,764✔
13160
  tDecoderClear(&decoder);
4,764✔
13161
  return code;
4,764✔
13162
}
13163

13164
int32_t tEncodeSMDropTbReqOnSingleVg(SEncoder *pEncoder, const SMDropTbReqsOnSingleVg *pReq) {
48✔
13165
  const SVgroupInfo *pVgInfo = &pReq->vgInfo;
48✔
13166
  int32_t            code = 0;
48✔
13167
  int32_t            lino;
13168

13169
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->vgId));
96!
13170
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashBegin));
96!
13171
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashEnd));
96!
13172
  TAOS_CHECK_EXIT(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
48!
13173
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->numOfTable));
96!
13174
  int32_t size = pReq->pTbs ? pReq->pTbs->size : 0;
48!
13175
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
48!
13176
  for (int32_t i = 0; i < size; ++i) {
96✔
13177
    const SVDropTbReq *pInfo = taosArrayGet(pReq->pTbs, i);
48✔
13178
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pEncoder, pInfo));
48!
13179
  }
13180
_exit:
48✔
13181
  return code;
48✔
13182
}
13183

13184
int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder *pDecoder, SMDropTbReqsOnSingleVg *pReq) {
30✔
13185
  int32_t code = 0;
30✔
13186
  int32_t lino;
13187

13188
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.vgId));
60!
13189
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashBegin));
60!
13190
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashEnd));
60!
13191
  TAOS_CHECK_EXIT(tDecodeSEpSet(pDecoder, &pReq->vgInfo.epSet));
30!
13192
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.numOfTable));
60!
13193
  int32_t size = 0;
30✔
13194
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
30!
13195
  pReq->pTbs = taosArrayInit(size, sizeof(SVDropTbReq));
30✔
13196
  if (!pReq->pTbs) {
30!
13197
    TAOS_CHECK_EXIT(terrno);
×
13198
  }
13199
  SVDropTbReq pTbReq = {0};
30✔
13200
  for (int32_t i = 0; i < size; ++i) {
60✔
13201
    TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pDecoder, &pTbReq));
30!
13202
    if (taosArrayPush(pReq->pTbs, &pTbReq) == NULL) {
60!
13203
      TAOS_CHECK_EXIT(terrno);
×
13204
    }
13205
  }
13206

13207
_exit:
30✔
13208
  return code;
30✔
13209
}
13210

13211
void tFreeSMDropTbReqOnSingleVg(void *p) {
30✔
13212
  SMDropTbReqsOnSingleVg *pReq = p;
30✔
13213
  taosArrayDestroy(pReq->pTbs);
30✔
13214
}
30✔
13215

13216
int32_t tSerializeSMDropTbsReq(void *buf, int32_t bufLen, const SMDropTbsReq *pReq) {
40✔
13217
  SEncoder encoder = {0};
40✔
13218
  int32_t  code = 0;
40✔
13219
  int32_t  lino;
13220
  int32_t  tlen;
13221

13222
  tEncoderInit(&encoder, buf, bufLen);
40✔
13223
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
40!
13224
  int32_t size = pReq->pVgReqs ? pReq->pVgReqs->size : 0;
40!
13225
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
40!
13226
  for (int32_t i = 0; i < size; ++i) {
88✔
13227
    SMDropTbReqsOnSingleVg *pVgReq = taosArrayGet(pReq->pVgReqs, i);
48✔
13228
    TAOS_CHECK_EXIT(tEncodeSMDropTbReqOnSingleVg(&encoder, pVgReq));
48!
13229
  }
13230
  tEndEncode(&encoder);
40✔
13231

13232
_exit:
40✔
13233
  if (code) {
40!
13234
    tlen = code;
×
13235
  } else {
13236
    tlen = encoder.pos;
40✔
13237
  }
13238
  tEncoderClear(&encoder);
40✔
13239
  return tlen;
40✔
13240
}
13241

13242
int32_t tDeserializeSMDropTbsReq(void *buf, int32_t bufLen, SMDropTbsReq *pReq) {
25✔
13243
  SDecoder decoder = {0};
25✔
13244
  int32_t  code = 0;
25✔
13245
  int32_t  lino;
13246

13247
  tDecoderInit(&decoder, buf, bufLen);
25✔
13248
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
25!
13249
  int32_t size = 0;
25✔
13250
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
25!
13251
  pReq->pVgReqs = taosArrayInit(size, sizeof(SMDropTbReqsOnSingleVg));
25✔
13252
  if (!pReq->pVgReqs) {
25!
13253
    TAOS_CHECK_EXIT(terrno);
×
13254
  }
13255
  for (int32_t i = 0; i < size; ++i) {
55✔
13256
    SMDropTbReqsOnSingleVg vgReq = {0};
30✔
13257
    TAOS_CHECK_EXIT(tDecodeSMDropTbReqOnSingleVg(&decoder, &vgReq));
30!
13258
    if (taosArrayPush(pReq->pVgReqs, &vgReq) == NULL) {
60!
13259
      TAOS_CHECK_EXIT(terrno);
×
13260
    }
13261
  }
13262
  tEndDecode(&decoder);
25✔
13263
_exit:
25✔
13264
  tDecoderClear(&decoder);
25✔
13265
  return code;
25✔
13266
}
13267

13268
void tFreeSMDropTbsReq(void *p) {
25✔
13269
  SMDropTbsReq *pReq = p;
25✔
13270
  taosArrayDestroyEx(pReq->pVgReqs, tFreeSMDropTbReqOnSingleVg);
25✔
13271
}
25✔
13272

13273
int32_t tEncodeVFetchTtlExpiredTbsRsp(SEncoder *pCoder, const SVFetchTtlExpiredTbsRsp *pRsp) {
10✔
13274
  int32_t code = 0;
10✔
13275
  int32_t lino;
13276

13277
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pRsp->vgId));
20!
13278
  int32_t size = pRsp->pExpiredTbs ? pRsp->pExpiredTbs->size : 0;
10!
13279
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, size));
10!
13280
  for (int32_t i = 0; i < size; ++i) {
20✔
13281
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pCoder, taosArrayGet(pRsp->pExpiredTbs, i)));
10!
13282
  }
13283

13284
_exit:
10✔
13285
  return code;
10✔
13286
}
13287

13288
int32_t tDecodeVFetchTtlExpiredTbsRsp(SDecoder *pCoder, SVFetchTtlExpiredTbsRsp *pRsp) {
5✔
13289
  int32_t code = 0;
5✔
13290
  int32_t lino;
13291

13292
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pRsp->vgId));
10!
13293
  int32_t size = 0;
5✔
13294
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &size));
5!
13295
  if (size > 0) {
5!
13296
    pRsp->pExpiredTbs = taosArrayInit(size, sizeof(SVDropTbReq));
5✔
13297
    if (!pRsp->pExpiredTbs) {
5!
13298
      TAOS_CHECK_EXIT(terrno);
×
13299
    }
13300
    SVDropTbReq tb = {0};
5✔
13301
    for (int32_t i = 0; i < size; ++i) {
10✔
13302
      TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pCoder, &tb));
5!
13303
      if (taosArrayPush(pRsp->pExpiredTbs, &tb) == NULL) {
10!
13304
        TAOS_CHECK_EXIT(terrno);
×
13305
      }
13306
    }
13307
  }
13308
_exit:
×
13309
  return code;
5✔
13310
}
13311

13312
void tFreeFetchTtlExpiredTbsRsp(void *p) {
101,007✔
13313
  SVFetchTtlExpiredTbsRsp *pRsp = p;
101,007✔
13314
  taosArrayDestroy(pRsp->pExpiredTbs);
101,007✔
13315
}
101,007✔
13316

13317
int32_t tEncodeMqBatchMetaRsp(SEncoder *pEncoder, const SMqBatchMetaRsp *pRsp) {
64✔
13318
  int32_t code = 0;
64✔
13319
  int32_t lino;
13320

13321
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
64!
13322

13323
  int32_t size = taosArrayGetSize(pRsp->batchMetaReq);
64✔
13324
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
64!
13325
  if (size > 0) {
64!
13326
    for (int32_t i = 0; i < size; i++) {
370✔
13327
      void   *pMetaReq = taosArrayGetP(pRsp->batchMetaReq, i);
306✔
13328
      int32_t metaLen = *(int32_t *)taosArrayGet(pRsp->batchMetaLen, i);
306✔
13329
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pMetaReq, metaLen));
612!
13330
    }
13331
  }
13332
_exit:
64✔
13333
  return code;
64✔
13334
}
13335

13336
int32_t tDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
30✔
13337
  int32_t size = 0;
30✔
13338
  int32_t code = 0;
30✔
13339
  int32_t lino;
13340

13341
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
30!
13342
  if (size > 0) {
30!
13343
    pRsp->batchMetaReq = taosArrayInit(size, POINTER_BYTES);
30✔
13344
    if (!pRsp->batchMetaReq) {
30!
13345
      TAOS_CHECK_EXIT(terrno);
×
13346
    }
13347
    pRsp->batchMetaLen = taosArrayInit(size, sizeof(int32_t));
30✔
13348
    if (!pRsp->batchMetaLen) {
30!
13349
      TAOS_CHECK_EXIT(terrno);
×
13350
    }
13351
    for (int32_t i = 0; i < size; i++) {
286✔
13352
      void    *pCreate = NULL;
256✔
13353
      uint64_t len = 0;
256✔
13354
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
256!
13355
      int32_t l = (int32_t)len;
256✔
13356
      if (taosArrayPush(pRsp->batchMetaReq, &pCreate) == NULL) {
512!
13357
        TAOS_CHECK_EXIT(terrno);
×
13358
      }
13359
      if (taosArrayPush(pRsp->batchMetaLen, &l) == NULL) {
512!
13360
        TAOS_CHECK_EXIT(terrno);
×
13361
      }
13362
    }
13363
  }
13364
_exit:
30✔
13365
  return code;
30✔
13366
}
13367

13368
int32_t tSemiDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
18✔
13369
  int32_t code = 0;
18✔
13370
  int32_t lino;
13371

13372
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
18!
13373
  if (pDecoder->size < pDecoder->pos) {
18!
13374
    return TSDB_CODE_INVALID_PARA;
×
13375
  }
13376
  pRsp->metaBuffLen = TD_CODER_REMAIN_CAPACITY(pDecoder);
18✔
13377
  pRsp->pMetaBuff = taosMemoryCalloc(1, pRsp->metaBuffLen);
18!
13378
  if (pRsp->pMetaBuff == NULL) {
18!
13379
    TAOS_CHECK_EXIT(terrno);
×
13380
  }
13381
  memcpy(pRsp->pMetaBuff, TD_CODER_CURRENT(pDecoder), pRsp->metaBuffLen);
18✔
13382

13383
_exit:
18✔
13384
  return code;
18✔
13385
}
13386

13387
void tDeleteMqBatchMetaRsp(SMqBatchMetaRsp *pRsp) {
2,407,304✔
13388
  taosMemoryFreeClear(pRsp->pMetaBuff);
2,407,304!
13389
  taosArrayDestroyP(pRsp->batchMetaReq, NULL);
2,407,304✔
13390
  taosArrayDestroy(pRsp->batchMetaLen);
2,407,297✔
13391
  pRsp->batchMetaReq = NULL;
2,407,290✔
13392
  pRsp->batchMetaLen = NULL;
2,407,290✔
13393
}
2,407,290✔
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