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

taosdata / TDengine / #3583

17 Jan 2025 07:28AM UTC coverage: 63.876% (+0.07%) from 63.803%
#3583

push

travis-ci

web-flow
Merge pull request #29594 from taosdata/fix/insert-when-2-replicas

fix/insert-when-2-replicas

141608 of 284535 branches covered (49.77%)

Branch coverage included in aggregate %.

0 of 2 new or added lines in 1 file covered. (0.0%)

396 existing lines in 105 files now uncovered.

220075 of 281695 relevant lines covered (78.13%)

19864675.58 hits per line

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

70.68
/source/common/src/msg/tmsg.c
1
/*
2
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
3
 *
4
 * This program is free software: you can use, redistribute, and/or modify
5
 * it under the terms of the GNU Affero General Public License, version 3
6
 * or later ("AGPL"), as published by the Free Software Foundation.
7
 *
8
 * This program is distributed in the hope that it will be useful, but WITHOUT
9
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
 * FITNESS FOR A PARTICULAR PURPOSE.
11
 *
12
 * You should have received a copy of the GNU Affero General Public License
13
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14
 */
15

16
#define _DEFAULT_SOURCE
17
#include "tmsg.h"
18
#include "tglobal.h"
19

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

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

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

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

48
#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,168,690✔
75
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pMonitorParas->tsEnableMonitor));
2,337,380!
76
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsMonitorInterval));
2,337,380!
77
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogScope));
2,337,380!
78
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogMaxLen));
2,337,380!
79
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThreshold));
2,337,380!
80
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
2,337,380!
81
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pMonitorParas->tsSlowLogExceptDb));
2,337,380!
82
  return 0;
1,168,690✔
83
}
84

85
static int32_t tDeserializeSMonitorParas(SDecoder *decoder, SMonitorParas *pMonitorParas) {
156,542✔
86
  TAOS_CHECK_RETURN(tDecodeI8(decoder, (int8_t *)&pMonitorParas->tsEnableMonitor));
313,084!
87
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsMonitorInterval));
313,084!
88
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogScope));
313,083!
89
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogMaxLen));
313,085!
90
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThreshold));
313,084!
91
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
313,082!
92
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pMonitorParas->tsSlowLogExceptDb));
156,542!
93
  return 0;
156,544✔
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) {
39,949,570✔
182
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->inUse));
79,899,140!
183
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->numOfEps));
79,899,140!
184
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
239,647,343✔
185
    TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pEp->eps[i].port));
399,395,546!
186
    TAOS_CHECK_RETURN(tEncodeCStrWithLen(pEncoder, pEp->eps[i].fqdn, TSDB_FQDN_LEN));
399,395,546!
187
  }
188
  return 0;
39,949,570✔
189
}
190

191
int32_t tDecodeSEpSet(SDecoder *pDecoder, SEpSet *pEp) {
990,601✔
192
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->inUse));
1,981,208!
193
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->numOfEps));
1,981,186!
194
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
5,942,510✔
195
    TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pEp->eps[i].port));
9,903,592!
196
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pEp->eps[i].fqdn));
4,951,746!
197
  }
198
  return 0;
990,664✔
199
}
200

201
int32_t tEncodeSQueryNodeAddr(SEncoder *pEncoder, SQueryNodeAddr *pAddr) {
1,378,682✔
202
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pAddr->nodeId));
2,757,364!
203
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pAddr->epSet));
1,378,682!
204
  return 0;
1,379,372✔
205
}
206

207
int32_t tEncodeSQueryNodeLoad(SEncoder *pEncoder, SQueryNodeLoad *pLoad) {
1,378,655✔
208
  TAOS_CHECK_RETURN(tEncodeSQueryNodeAddr(pEncoder, &pLoad->addr));
1,378,655✔
209
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pLoad->load));
2,758,278!
210
  return 0;
1,379,139✔
211
}
212

213
int32_t tDecodeSQueryNodeAddr(SDecoder *pDecoder, SQueryNodeAddr *pAddr) {
299,475✔
214
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pAddr->nodeId));
598,950!
215
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pAddr->epSet));
299,475!
216
  return 0;
299,475✔
217
}
218

219
int32_t tDecodeSQueryNodeLoad(SDecoder *pDecoder, SQueryNodeLoad *pLoad) {
299,475✔
220
  TAOS_CHECK_RETURN(tDecodeSQueryNodeAddr(pDecoder, &pLoad->addr));
299,475!
221
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pLoad->load));
598,950!
222
  return 0;
299,475✔
223
}
224

225
int32_t taosEncodeSEpSet(void **buf, const SEpSet *pEp) {
22,592✔
226
  int32_t tlen = 0;
22,592✔
227
  tlen += taosEncodeFixedI8(buf, pEp->inUse);
22,592✔
228
  tlen += taosEncodeFixedI8(buf, pEp->numOfEps);
22,592✔
229
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
135,552✔
230
    tlen += taosEncodeFixedU16(buf, pEp->eps[i].port);
112,960✔
231
    tlen += taosEncodeString(buf, pEp->eps[i].fqdn);
225,920✔
232
  }
233
  return tlen;
22,592✔
234
}
235

236
void *taosDecodeSEpSet(const void *buf, SEpSet *pEp) {
10,276✔
237
  buf = taosDecodeFixedI8(buf, &pEp->inUse);
10,276✔
238
  buf = taosDecodeFixedI8(buf, &pEp->numOfEps);
10,276✔
239
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
61,656✔
240
    buf = taosDecodeFixedU16(buf, &pEp->eps[i].port);
51,380!
241
    buf = taosDecodeStringTo(buf, pEp->eps[i].fqdn);
102,760✔
242
  }
243
  return (void *)buf;
10,276✔
244
}
245

246
static int32_t tSerializeSClientHbReq(SEncoder *pEncoder, const SClientHbReq *pReq) {
280,864✔
247
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pReq->connKey));
561,728!
248

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

264
    int32_t queryNum = 0;
280,862✔
265
    if (pReq->query) {
280,862✔
266
      queryNum = 1;
271,576✔
267
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
271,576!
268
      TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->query->connId));
543,152!
269

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

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

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

298
  int32_t kvNum = taosHashGetSize(pReq->info);
280,864✔
299
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
280,864!
300
  void *pIter = taosHashIterate(pReq->info, NULL);
280,864✔
301
  while (pIter != NULL) {
383,264✔
302
    SKv *kv = pIter;
102,400✔
303
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
102,400!
304
    pIter = taosHashIterate(pReq->info, pIter);
102,400✔
305
  }
306
  TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->userIp));
561,728!
307
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->userApp));
561,728!
308

309
  return 0;
280,864✔
310
}
311

312
static int32_t tDeserializeSClientHbReq(SDecoder *pDecoder, SClientHbReq *pReq) {
521,597✔
313
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pReq->connKey));
1,043,222!
314

315
  if (pReq->connKey.connType == CONN_TYPE__QUERY) {
521,625✔
316
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.appId));
1,043,162!
317
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReq->app.pid));
1,043,180!
318
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->app.name));
521,600!
319
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.startTime));
1,043,101!
320
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertsReq));
1,043,052!
321
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertRows));
1,043,072!
322
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertElapsedTime));
1,043,165!
323
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertBytes));
1,043,140!
324
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.fetchBytes));
1,043,055!
325
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.queryElapsedTime));
1,043,036!
326
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfSlowQueries));
1,043,035!
327
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.totalRequests));
1,043,010!
328
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.currentRequests));
1,042,885!
329

330
    int32_t queryNum = 0;
521,368✔
331
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
521,502!
332
    if (queryNum) {
521,502✔
333
      pReq->query = taosMemoryCalloc(1, sizeof(*pReq->query));
516,901!
334
      if (NULL == pReq->query) {
517,065!
335
        return terrno;
×
336
      }
337
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pReq->query->connId));
1,034,134!
338

339
      int32_t num = 0;
517,069✔
340
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &num));
517,056!
341
      if (num > 0) {
517,056✔
342
        pReq->query->queryDesc = taosArrayInit(num, sizeof(SQueryDesc));
289,306✔
343
        if (NULL == pReq->query->queryDesc) {
289,309✔
344
          return terrno;
1✔
345
        }
346

347
        for (int32_t i = 0; i < num; ++i) {
608,949✔
348
          SQueryDesc desc = {0};
319,634✔
349
          TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, desc.sql));
319,634!
350
          TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &desc.queryId));
319,637!
351
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &desc.useconds));
319,635!
352
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &desc.stime));
319,634!
353
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &desc.reqRid));
319,631!
354
          TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&desc.stableQuery));
319,627!
355
          TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&desc.isSubQuery));
319,629!
356
          TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, desc.fqdn));
319,629!
357
          TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &desc.subPlanNum));
319,631!
358

359
          int32_t snum = 0;
319,631✔
360
          TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &snum));
319,619!
361
          if (snum > 0) {
319,619✔
362
            desc.subDesc = taosArrayInit(snum, sizeof(SQuerySubDesc));
319,540✔
363
            if (NULL == desc.subDesc) {
319,549!
364
              return terrno;
×
365
            }
366

367
            for (int32_t m = 0; m < snum; ++m) {
1,141,734✔
368
              SQuerySubDesc sDesc = {0};
822,170✔
369
              TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &sDesc.tid));
822,162!
370
              TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, sDesc.status));
822,162!
371
              if (!taosArrayPush(desc.subDesc, &sDesc)) {
1,644,366!
372
                return terrno;
×
373
              }
374
            }
375
          }
376

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

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

389
  int32_t kvNum = 0;
521,709✔
390
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &kvNum));
521,585!
391
  if (pReq->info == NULL) {
521,585✔
392
    pReq->info = taosHashInit(kvNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
521,565✔
393
  }
394
  if (pReq->info == NULL) {
521,635!
395
    return terrno;
×
396
  }
397
  for (int32_t i = 0; i < kvNum; i++) {
855,874✔
398
    SKv kv = {0};
334,218✔
399
    TAOS_CHECK_RETURN(tDecodeSKv(pDecoder, &kv));
334,207!
400
    int32_t code = taosHashPut(pReq->info, &kv.key, sizeof(kv.key), &kv, sizeof(kv));
334,207✔
401
    if (code) {
334,238!
402
      return terrno = code;
×
403
    }
404
  }
405
  if (!tDecodeIsEnd(pDecoder)) {
521,656!
406
    TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pReq->userIp));
1,043,475!
407
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->userApp));
521,740!
408
  }
409

410
  return 0;
521,723✔
411
}
412

413
static int32_t tSerializeSClientHbRsp(SEncoder *pEncoder, const SClientHbRsp *pRsp) {
1,042,735✔
414
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pRsp->connKey));
2,085,470!
415
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->status));
2,085,470!
416

417
  int32_t queryNum = 0;
1,042,735✔
418
  if (pRsp->query) {
1,042,735✔
419
    queryNum = 1;
1,033,804✔
420
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
1,033,804!
421
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pRsp->query->connId));
2,067,608!
422
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->query->killRid));
2,067,608!
423
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->totalDnodes));
2,067,608!
424
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->onlineDnodes));
2,067,608!
425
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->query->killConnection));
2,067,608!
426
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pRsp->query->epSet));
1,033,804!
427
    int32_t num = taosArrayGetSize(pRsp->query->pQnodeList);
1,033,554✔
428
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
1,033,286!
429
    for (int32_t i = 0; i < num; ++i) {
2,392,974✔
430
      SQueryNodeLoad *pLoad = taosArrayGet(pRsp->query->pQnodeList, i);
1,359,421✔
431
      TAOS_CHECK_RETURN(tEncodeSQueryNodeLoad(pEncoder, pLoad));
1,358,979!
432
    }
433
  } else {
434
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
8,931!
435
  }
436

437
  int32_t kvNum = taosArrayGetSize(pRsp->info);
1,042,484✔
438
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
1,042,539!
439
  for (int32_t i = 0; i < kvNum; i++) {
1,290,758✔
440
    SKv *kv = taosArrayGet(pRsp->info, i);
248,220✔
441
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
248,219!
442
  }
443

444
  return 0;
1,042,538✔
445
}
446

447
static int32_t tDeserializeSClientHbRsp(SDecoder *pDecoder, SClientHbRsp *pRsp) {
138,257✔
448
  TAOS_CHECK_RETURN(tDecodeSClientHbKey(pDecoder, &pRsp->connKey));
276,514!
449
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->status));
276,514!
450

451
  int32_t queryNum = 0;
138,257✔
452
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
138,257!
453
  if (queryNum) {
138,257✔
454
    pRsp->query = taosMemoryCalloc(1, sizeof(*pRsp->query));
133,665!
455
    if (NULL == pRsp->query) {
133,664!
456
      return terrno;
×
457
    }
458
    TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pRsp->query->connId));
267,329!
459
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->query->killRid));
267,330!
460
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->totalDnodes));
267,329!
461
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->onlineDnodes));
267,328!
462
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->query->killConnection));
267,327!
463
    TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pRsp->query->epSet));
133,663!
464
    int32_t pQnodeNum = 0;
133,665✔
465
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pQnodeNum));
133,665!
466
    if (pQnodeNum > 0) {
133,665✔
467
      pRsp->query->pQnodeList = taosArrayInit(pQnodeNum, sizeof(SQueryNodeLoad));
93,214✔
468
      if (NULL == pRsp->query->pQnodeList) return terrno;
93,214!
469
      for (int32_t i = 0; i < pQnodeNum; ++i) {
382,990✔
470
        SQueryNodeLoad load = {0};
289,776✔
471
        TAOS_CHECK_RETURN(tDecodeSQueryNodeLoad(pDecoder, &load));
289,776!
472
        if (!taosArrayPush(pRsp->query->pQnodeList, &load)) return terrno;
579,552!
473
      }
474
    }
475
  }
476

477
  int32_t kvNum = 0;
138,257✔
478
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &kvNum));
138,257!
479
  pRsp->info = taosArrayInit(kvNum, sizeof(SKv));
138,257✔
480
  if (pRsp->info == NULL) {
138,257!
481
    return terrno;
×
482
  }
483
  for (int32_t i = 0; i < kvNum; i++) {
157,469✔
484
    SKv kv = {0};
19,212✔
485
    TAOS_CHECK_RETURN(tDecodeSKv(pDecoder, &kv));
19,212!
486
    if (!taosArrayPush(pRsp->info, &kv)) return terrno;
38,424!
487
  }
488

489
  return 0;
138,257✔
490
}
491

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

499
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
82,776!
500
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->reqId));
165,552!
501

502
  int32_t reqNum = taosArrayGetSize(pBatchReq->reqs);
82,776✔
503
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, reqNum));
82,776!
504
  for (int32_t i = 0; i < reqNum; i++) {
363,640✔
505
    SClientHbReq *pReq = taosArrayGet(pBatchReq->reqs, i);
280,864✔
506
    TAOS_CHECK_EXIT(tSerializeSClientHbReq(&encoder, pReq));
280,864!
507
  }
508

509
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->ipWhiteList));
165,552!
510
  tEndEncode(&encoder);
82,776✔
511

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

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

528
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
389,830!
529
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->reqId));
779,912!
530

531
  int32_t reqNum = 0;
389,930✔
532
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &reqNum));
389,933!
533
  if (reqNum > 0) {
389,933✔
534
    pBatchReq->reqs = taosArrayInit(reqNum, sizeof(SClientHbReq));
389,641✔
535
    if (NULL == pBatchReq->reqs) {
389,667✔
536
      return terrno;
73✔
537
    }
538
  }
539
  for (int32_t i = 0; i < reqNum; i++) {
911,600✔
540
    SClientHbReq req = {0};
521,650✔
541
    TAOS_CHECK_EXIT(tDeserializeSClientHbReq(&decoder, &req));
521,650!
542
    if (!taosArrayPush(pBatchReq->reqs, &req)) {
1,043,436!
543
      TAOS_CHECK_EXIT(terrno);
×
544
    }
545
  }
546

547
  if (!tDecodeIsEnd(&decoder)) {
389,950!
548
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->ipWhiteList));
779,903!
549
  }
550

551
  tEndDecode(&decoder);
389,941✔
552

553
_exit:
389,945✔
554
  tDecoderClear(&decoder);
389,945✔
555
  return code;
389,921✔
556
}
557

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

565
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
779,482!
566
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->reqId));
1,559,386!
567
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->rspId));
1,559,386!
568
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pBatchRsp->svrTimestamp));
1,559,386!
569

570
  int32_t rspNum = taosArrayGetSize(pBatchRsp->rsps);
779,693✔
571
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, rspNum));
779,502!
572
  for (int32_t i = 0; i < rspNum; i++) {
1,822,335✔
573
    SClientHbRsp *pRsp = taosArrayGet(pBatchRsp->rsps, i);
1,043,044✔
574
    TAOS_CHECK_EXIT(tSerializeSClientHbRsp(&encoder, pRsp));
1,042,713!
575
  }
576
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pBatchRsp->monitorParas));
779,291!
577
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableAuditDelete));
1,557,812!
578
  tEndEncode(&encoder);
778,906✔
579

580
_exit:
779,021✔
581
  if (code) {
779,021!
582
    tlen = code;
×
583
  } else {
584
    tlen = encoder.pos;
779,021✔
585
  }
586
  tEncoderClear(&encoder);
779,021✔
587
  return tlen;
778,919✔
588
}
589

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

596
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
39,287!
597
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->reqId));
78,574✔
598
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->rspId));
78,563!
599
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pBatchRsp->svrTimestamp));
78,564!
600

601
  int32_t rspNum = 0;
39,282✔
602
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &rspNum));
39,282!
603
  if (pBatchRsp->rsps == NULL) {
39,282!
604
    if ((pBatchRsp->rsps = taosArrayInit(rspNum, sizeof(SClientHbRsp))) == NULL) {
39,282!
605
      TAOS_CHECK_EXIT(terrno);
×
606
    }
607
  }
608
  for (int32_t i = 0; i < rspNum; i++) {
177,539✔
609
    SClientHbRsp rsp = {0};
138,257✔
610
    TAOS_CHECK_EXIT(tDeserializeSClientHbRsp(&decoder, &rsp));
138,257!
611
    if (taosArrayPush(pBatchRsp->rsps, &rsp) == NULL) {
276,514!
612
      TAOS_CHECK_EXIT(terrno);
×
613
    }
614
  }
615

616
  if (!tDecodeIsEnd(&decoder)) {
39,282!
617
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pBatchRsp->monitorParas));
39,282!
618
  }
619

620
  if (!tDecodeIsEnd(&decoder)) {
39,281!
621
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableAuditDelete));
78,562!
622
  } else {
623
    pBatchRsp->enableAuditDelete = 0;
×
624
  }
625

626
  tEndDecode(&decoder);
39,281✔
627

628
_exit:
39,286✔
629
  tDecoderClear(&decoder);
39,286✔
630
  return code;
39,288✔
631
}
632

633
int32_t tSerializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq) {
11,890✔
634
  SEncoder encoder = {0};
11,890✔
635
  int32_t  code = 0;
11,890✔
636
  int32_t  lino;
637
  int32_t  tlen;
638
  tEncoderInit(&encoder, buf, bufLen);
11,890✔
639

640
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,890!
641
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
23,780!
642
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
23,780!
643
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
23,780!
644
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
83,221✔
645
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
142,662!
646
  }
647
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
23,780!
648
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->delay1));
23,780!
649
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->delay2));
23,780!
650
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark1));
23,780!
651
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark2));
23,780!
652
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
23,780!
653
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->colVer));
23,780!
654
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tagVer));
23,780!
655
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfColumns));
23,780!
656
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTags));
23,780!
657
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
23,780!
658
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
23,780!
659
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ast1Len));
23,780!
660
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ast2Len));
23,780!
661

662
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
211,736✔
663
    SFieldWithOptions *pField = taosArrayGet(pReq->pColumns, i);
199,849✔
664
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
399,692!
665
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
399,692!
666
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
399,692!
667
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
399,692!
668
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
399,692!
669
  }
670

671
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
73,105✔
672
    SField *pField = taosArrayGet(pReq->pTags, i);
61,220✔
673
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
122,436!
674
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
122,436!
675
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
122,436!
676
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
122,436!
677
  }
678

679
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
11,907✔
680
    const char *pFunc = taosArrayGet(pReq->pFuncs, i);
22✔
681
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
22!
682
  }
683

684
  if (pReq->commentLen > 0) {
11,885✔
685
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
100!
686
  }
687
  if (pReq->ast1Len > 0) {
11,885✔
688
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst1, pReq->ast1Len));
12!
689
  }
690
  if (pReq->ast2Len > 0) {
11,885✔
691
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst2, pReq->ast2Len));
12!
692
  }
693
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark1));
23,770!
694
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark2));
23,770!
695

696
  ENCODESQL();
34,694!
697

698
  tEndEncode(&encoder);
11,885✔
699

700
_exit:
11,890✔
701
  if (code) {
11,890!
702
    tlen = code;
×
703
  } else {
704
    tlen = encoder.pos;
11,890✔
705
  }
706
  tEncoderClear(&encoder);
11,890✔
707
  return tlen;
11,889✔
708
}
709

710
int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq) {
7,538✔
711
  SDecoder decoder = {0};
7,538✔
712
  int32_t  code = 0;
7,538✔
713
  int32_t  lino;
714
  tDecoderInit(&decoder, buf, bufLen);
7,538✔
715

716
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,538!
717
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
7,538!
718
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
15,076!
719
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
15,076!
720
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
52,766✔
721
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
90,456!
722
  }
723
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
15,076!
724
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay1));
15,076!
725
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay2));
15,076!
726
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark1));
15,076!
727
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark2));
15,076!
728
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
15,076!
729
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->colVer));
15,076!
730
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagVer));
15,076!
731
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfColumns));
15,076!
732
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
15,076!
733
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
15,076!
734
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
15,076!
735
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast1Len));
15,076!
736
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast2Len));
15,076!
737

738
  if ((pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SFieldWithOptions))) == NULL) {
7,538!
739
    TAOS_CHECK_EXIT(terrno);
×
740
  }
741
  if ((pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField))) == NULL) {
7,538!
742
    TAOS_CHECK_EXIT(terrno);
×
743
  }
744
  if ((pReq->pFuncs = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN)) == NULL) {
7,538!
745
    TAOS_CHECK_EXIT(terrno);
×
746
  }
747

748
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
137,839✔
749
    SFieldWithOptions field = {0};
130,301✔
750
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
130,301!
751
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
130,301!
752
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
130,301!
753
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
130,301!
754
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
130,301!
755
    if (taosArrayPush(pReq->pColumns, &field) == NULL) {
260,602!
756
      TAOS_CHECK_EXIT(terrno);
×
757
    }
758
  }
759

760
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
60,283✔
761
    SField field = {0};
52,745✔
762
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
52,745!
763
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
52,745!
764
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
52,745!
765
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
52,745!
766
    if (taosArrayPush(pReq->pTags, &field) == NULL) {
105,490!
767
      TAOS_CHECK_EXIT(terrno);
×
768
    }
769
  }
770

771
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
7,543✔
772
    char pFunc[TSDB_FUNC_NAME_LEN] = {0};
5✔
773
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
5!
774
    if (taosArrayPush(pReq->pFuncs, pFunc) == NULL) {
10!
775
      TAOS_CHECK_EXIT(terrno);
×
776
    }
777
  }
778

779
  if (pReq->commentLen > 0) {
7,538✔
780
    pReq->pComment = taosMemoryMalloc(pReq->commentLen + 1);
20!
781
    if (pReq->pComment == NULL) {
20!
782
      TAOS_CHECK_EXIT(terrno);
×
783
    }
784
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
20!
785
  }
786

787
  if (pReq->ast1Len > 0) {
7,538✔
788
    pReq->pAst1 = taosMemoryMalloc(pReq->ast1Len);
3!
789
    if (pReq->pAst1 == NULL) {
3!
790
      TAOS_CHECK_EXIT(terrno);
×
791
    }
792
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst1));
3!
793
  }
794

795
  if (pReq->ast2Len > 0) {
7,538✔
796
    pReq->pAst2 = taosMemoryMalloc(pReq->ast2Len);
3!
797
    if (pReq->pAst2 == NULL) {
3!
798
      TAOS_CHECK_EXIT(terrno);
×
799
    }
800
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst2));
3!
801
  }
802

803
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark1));
15,076!
804
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark2));
15,076!
805

806
  DECODESQL();
21,545!
807

808
  tEndDecode(&decoder);
7,538✔
809

810
_exit:
7,538✔
811
  tDecoderClear(&decoder);
7,538✔
812
  return code;
7,538✔
813
}
814

815
void tFreeSMCreateStbReq(SMCreateStbReq *pReq) {
15,099✔
816
  taosArrayDestroy(pReq->pColumns);
15,099✔
817
  taosArrayDestroy(pReq->pTags);
15,099✔
818
  taosArrayDestroy(pReq->pFuncs);
15,099✔
819
  taosMemoryFreeClear(pReq->pComment);
15,099!
820
  taosMemoryFreeClear(pReq->pAst1);
15,099!
821
  taosMemoryFreeClear(pReq->pAst2);
15,099!
822
  FREESQL();
15,099!
823
}
15,099✔
824

825
int32_t tSerializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
2,458✔
826
  SEncoder encoder = {0};
2,458✔
827
  int32_t  code = 0;
2,458✔
828
  int32_t  lino;
829
  int32_t  tlen;
830
  tEncoderInit(&encoder, buf, bufLen);
2,458✔
831

832
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,458!
833
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,916!
834
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
4,916!
835
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
4,916!
836
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
17,206✔
837
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
29,496!
838
  }
839
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
4,916!
840
  ENCODESQL();
6,838!
841
  tEndEncode(&encoder);
2,458✔
842

843
_exit:
2,458✔
844
  if (code) {
2,458!
845
    tlen = code;
×
846
  } else {
847
    tlen = encoder.pos;
2,458✔
848
  }
849
  tEncoderClear(&encoder);
2,458✔
850
  return tlen;
2,458✔
851
}
852

853
int32_t tDeserializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
1,275✔
854
  SDecoder decoder = {0};
1,275✔
855
  int32_t  code = 0;
1,275✔
856
  int32_t  lino;
857
  tDecoderInit(&decoder, buf, bufLen);
1,275✔
858

859
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,275!
860
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,275!
861
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,550!
862
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
2,550!
863
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
8,925✔
864
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
15,300!
865
  }
866
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
2,550!
867

868
  DECODESQL();
3,816!
869

870
  tEndDecode(&decoder);
1,275✔
871

872
_exit:
1,275✔
873
  tDecoderClear(&decoder);
1,275✔
874
  return code;
1,275✔
875
}
876

877
void tFreeSMDropStbReq(SMDropStbReq *pReq) { FREESQL(); }
2,022!
878

879
int32_t tSerializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
6,644✔
880
  SEncoder encoder = {0};
6,644✔
881
  int32_t  code = 0;
6,644✔
882
  int32_t  lino;
883
  int32_t  tlen;
884
  tEncoderInit(&encoder, buf, bufLen);
6,644✔
885

886
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,644!
887
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
13,288!
888
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
13,288!
889
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFields));
13,288!
890

891
  // if (pReq->alterType == )
892
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
14,558✔
893
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
7,914✔
894
      SFieldWithOptions *pField = taosArrayGet(pReq->pFields, i);
424✔
895
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
848!
896
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
848!
897
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
848!
898
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
848!
899

900
    } else {
901
      SField *pField = taosArrayGet(pReq->pFields, i);
7,490✔
902
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
14,980!
903
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
14,980!
904
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
14,980!
905
    }
906
  }
907
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
13,288!
908
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
13,288!
909
  if (pReq->commentLen > 0) {
6,644✔
910
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->comment));
72!
911
  }
912
  ENCODESQL();
19,866!
913
  tEndEncode(&encoder);
6,644✔
914

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

925
int32_t tDeserializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
3,091✔
926
  SDecoder decoder = {0};
3,091✔
927
  int32_t  code = 0;
3,091✔
928
  int32_t  lino;
929
  tDecoderInit(&decoder, buf, bufLen);
3,091✔
930

931
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,091!
932
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
3,091!
933
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
6,182!
934
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFields));
6,182!
935
  pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SField));
3,091✔
936
  if (pReq->pFields == NULL) {
3,091!
937
    TAOS_CHECK_EXIT(terrno);
×
938
  }
939

940
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
6,812✔
941
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
3,721✔
942
      taosArrayDestroy(pReq->pFields);
2✔
943
      if ((pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SFieldWithOptions))) == NULL) {
2!
944
        TAOS_CHECK_EXIT(terrno);
×
945
      }
946
      SFieldWithOptions field = {0};
2✔
947
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
2!
948
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
2!
949
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
2!
950
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
2!
951
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
4!
952
        TAOS_CHECK_EXIT(terrno);
×
953
      }
954
    } else {
955
      SField field = {0};
3,719✔
956
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
3,719!
957
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
3,719!
958
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
3,719!
959
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
7,438!
960
        TAOS_CHECK_EXIT(terrno);
×
961
      }
962
    }
963
  }
964

965
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
6,182!
966
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
6,182!
967
  if (pReq->commentLen > 0) {
3,091✔
968
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
19!
969
    if (pReq->comment == NULL) {
19!
970
      TAOS_CHECK_EXIT(terrno);
×
971
    }
972
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->comment));
19!
973
  }
974

975
  DECODESQL();
9,240!
976

977
  tEndDecode(&decoder);
3,091✔
978

979
_exit:
3,091✔
980
  tDecoderClear(&decoder);
3,091✔
981
  return code;
3,091✔
982
}
983

984
void tFreeSMAltertbReq(SMAlterStbReq *pReq) {
6,583✔
985
  taosArrayDestroy(pReq->pFields);
6,583✔
986
  pReq->pFields = NULL;
6,583✔
987
  taosMemoryFreeClear(pReq->comment);
6,583!
988
  FREESQL();
6,583!
989
}
6,583✔
990

991
int32_t tSerializeSEpSet(void *buf, int32_t bufLen, const SEpSet *pEpset) {
132,179✔
992
  SEncoder encoder = {0};
132,179✔
993
  int32_t  code = 0;
132,179✔
994
  int32_t  lino;
995
  int32_t  tlen;
996
  tEncoderInit(&encoder, buf, bufLen);
132,179✔
997

998
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
132,248!
999
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpset));
132,263!
1000

1001
  tEndEncode(&encoder);
132,245✔
1002

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

1013
int32_t tDeserializeSEpSet(void *buf, int32_t bufLen, SEpSet *pEpset) {
89,773✔
1014
  SDecoder decoder = {0};
89,773✔
1015
  int32_t  code = 0;
89,773✔
1016
  int32_t  lino;
1017

1018
  tDecoderInit(&decoder, buf, bufLen);
89,773✔
1019

1020
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
89,774✔
1021
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, pEpset));
64,105!
1022

1023
  tEndDecode(&decoder);
64,105✔
1024
_exit:
89,774✔
1025
  tDecoderClear(&decoder);
89,774✔
1026
  return code;
89,774✔
1027
}
1028

1029
int32_t tSerializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
506✔
1030
  SEncoder encoder = {0};
506✔
1031
  int32_t  code = 0;
506✔
1032
  int32_t  lino;
1033
  int32_t  tlen;
1034
  tEncoderInit(&encoder, buf, bufLen);
506✔
1035

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

1070
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
1,970✔
1071
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
1,464✔
1072
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
2,928!
1073
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
2,928!
1074
  }
1075
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->recursiveTsma));
1,012!
1076
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->baseTsmaName));
1,012!
1077
  tEndEncode(&encoder);
506✔
1078

1079
_exit:
506✔
1080
  if (code) {
506!
1081
    tlen = code;
×
1082
  } else {
1083
    tlen = encoder.pos;
506✔
1084
  }
1085
  tEncoderClear(&encoder);
506✔
1086
  return tlen;
506✔
1087
}
1088

1089
int32_t tDeserializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
309✔
1090
  SDecoder decoder = {0};
309✔
1091
  int32_t  code = 0;
309✔
1092
  int32_t  lino;
1093
  tDecoderInit(&decoder, buf, bufLen);
309✔
1094

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

1144
  int32_t numOfVgVer;
1145
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
309!
1146
  if (numOfVgVer > 0) {
309✔
1147
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
245✔
1148
    if (pReq->pVgroupVerList == NULL) {
245!
1149
      TAOS_CHECK_EXIT(terrno);
×
1150
    }
1151

1152
    for (int32_t i = 0; i < numOfVgVer; ++i) {
1,160✔
1153
      SVgroupVer v = {0};
915✔
1154
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
915!
1155
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
915!
1156
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
1,830!
1157
        TAOS_CHECK_EXIT(terrno);
×
1158
      }
1159
    }
1160
  }
1161
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->recursiveTsma));
618!
1162
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->baseTsmaName));
309!
1163
  tEndDecode(&decoder);
309✔
1164

1165
_exit:
309✔
1166
  tDecoderClear(&decoder);
309✔
1167
  return code;
309✔
1168
}
1169

1170
void tFreeSMCreateSmaReq(SMCreateSmaReq *pReq) {
716✔
1171
  taosMemoryFreeClear(pReq->expr);
716!
1172
  taosMemoryFreeClear(pReq->tagsFilter);
716!
1173
  taosMemoryFreeClear(pReq->sql);
716!
1174
  taosMemoryFreeClear(pReq->ast);
716!
1175
  taosArrayDestroy(pReq->pVgroupVerList);
716✔
1176
}
716✔
1177

1178
int32_t tSerializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
414✔
1179
  SEncoder encoder = {0};
414✔
1180
  int32_t  code = 0;
414✔
1181
  int32_t  lino;
1182
  int32_t  tlen;
1183
  tEncoderInit(&encoder, buf, bufLen);
414✔
1184

1185
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
414!
1186
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
828!
1187
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
828!
1188

1189
  tEndEncode(&encoder);
414✔
1190

1191
_exit:
414✔
1192
  if (code) {
414!
1193
    tlen = code;
×
1194
  } else {
1195
    tlen = encoder.pos;
414✔
1196
  }
1197
  tEncoderClear(&encoder);
414✔
1198
  return tlen;
414✔
1199
}
1200

1201
int32_t tDeserializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
1,308✔
1202
  SDecoder decoder = {0};
1,308✔
1203
  int32_t  code = 0;
1,308✔
1204
  int32_t  lino;
1205
  tDecoderInit(&decoder, buf, bufLen);
1,308✔
1206

1207
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,308!
1208
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,308!
1209
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,616!
1210
  tEndDecode(&decoder);
1,308✔
1211

1212
_exit:
1,308✔
1213
  tDecoderClear(&decoder);
1,308✔
1214
  return code;
1,308✔
1215
}
1216

1217
int32_t tSerializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
40✔
1218
  SEncoder encoder = {0};
40✔
1219
  int32_t  code = 0;
40✔
1220
  int32_t  lino;
1221
  int32_t  tlen;
1222
  tEncoderInit(&encoder, buf, bufLen);
40✔
1223

1224
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
40!
1225
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
80!
1226
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stbName));
80!
1227
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
80!
1228
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->idxName));
80!
1229
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->idxType));
80!
1230

1231
  tEndEncode(&encoder);
40✔
1232

1233
_exit:
40✔
1234
  if (code) {
40!
1235
    tlen = code;
×
1236
  } else {
1237
    tlen = encoder.pos;
40✔
1238
  }
1239
  tEncoderClear(&encoder);
40✔
1240
  return tlen;
40✔
1241
}
1242

1243
int32_t tDeserializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
490✔
1244
  SDecoder decoder = {0};
490✔
1245
  int32_t  code = 0;
490✔
1246
  int32_t  lino;
1247
  tDecoderInit(&decoder, buf, bufLen);
490✔
1248

1249
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
490!
1250
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
490!
1251
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stbName));
490!
1252
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
490!
1253
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->idxName));
490!
1254
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->idxType));
980!
1255

1256
  tEndDecode(&decoder);
490✔
1257
_exit:
490✔
1258
  tDecoderClear(&decoder);
490✔
1259
  return code;
490✔
1260
}
1261

1262
int32_t tDeserializeSDropTagIdxReq(void *buf, int32_t bufLen, SDropTagIndexReq *pReq) {
1,067✔
1263
  SDecoder decoder = {0};
1,067✔
1264
  int32_t  code = 0;
1,067✔
1265
  int32_t  lino;
1266
  tDecoderInit(&decoder, buf, bufLen);
1,067✔
1267

1268
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,067!
1269
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,067!
1270
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,134!
1271

1272
  tEndDecode(&decoder);
1,067✔
1273
_exit:
1,067✔
1274
  tDecoderClear(&decoder);
1,067✔
1275
  return code;
1,067✔
1276
}
1277

1278
int32_t tSerializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1279
  SEncoder encoder = {0};
×
1280
  int32_t  code = 0;
×
1281
  int32_t  lino;
1282
  int32_t  tlen;
1283
  tEncoderInit(&encoder, buf, bufLen);
×
1284

1285
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1286

1287
  tEndEncode(&encoder);
×
1288
_exit:
×
1289
  if (code) {
×
1290
    tlen = code;
×
1291
  } else {
1292
    tlen = encoder.pos;
×
1293
  }
1294
  tEncoderClear(&encoder);
×
1295
  return tlen;
×
1296
}
1297

1298
int32_t tDeserializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1299
  SDecoder decoder = {0};
×
1300
  int32_t  code = 0;
×
1301
  int32_t  lino;
1302
  tDecoderInit(&decoder, buf, bufLen);
×
1303
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1304
  tEndDecode(&decoder);
×
1305
_exit:
×
1306
  tDecoderClear(&decoder);
×
1307
  return code;
×
1308
}
1309
void tFreeSMCreateFullTextReq(SMCreateFullTextReq *pReq) {
×
1310
  // impl later
1311
  return;
×
1312
}
1313

1314
int32_t tSerializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1315
  SEncoder encoder = {0};
×
1316
  int32_t  code = 0;
×
1317
  int32_t  lino;
1318
  int32_t  tlen;
1319
  tEncoderInit(&encoder, buf, bufLen);
×
1320

1321
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1322
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
1323
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
×
1324

1325
  int32_t nVgroup = taosArrayGetSize(pReq->pVloads);
×
1326
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, nVgroup));
×
1327
  for (int32_t i = 0; i < nVgroup; ++i) {
×
1328
    SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1329
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, vload->vgId));
×
1330
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, vload->nTimeSeries));
×
1331
  }
1332

1333
  tEndEncode(&encoder);
×
1334

1335
_exit:
×
1336
  if (code) {
×
1337
    tlen = code;
×
1338
  } else {
1339
    tlen = encoder.pos;
×
1340
  }
1341
  tEncoderClear(&encoder);
×
1342
  return tlen;
×
1343
}
1344

1345
int32_t tDeserializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1346
  int32_t  code = 0;
×
1347
  int32_t  lino;
1348
  SDecoder decoder = {0};
×
1349
  tDecoderInit(&decoder, buf, bufLen);
×
1350

1351
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1352
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
1353
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
×
1354
  int32_t nVgroup = 0;
×
1355
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nVgroup));
×
1356
  if (nVgroup > 0) {
×
1357
    pReq->pVloads = taosArrayInit_s(sizeof(SVnodeLoadLite), nVgroup);
×
1358
    if (!pReq->pVloads) {
×
1359
      TAOS_CHECK_EXIT(terrno);
×
1360
    }
1361
    for (int32_t i = 0; i < nVgroup; ++i) {
×
1362
      SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1363
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &(vload->vgId)));
×
1364
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &(vload->nTimeSeries)));
×
1365
    }
1366
  }
1367

1368
  tEndDecode(&decoder);
×
1369

1370
_exit:
×
1371
  tDecoderClear(&decoder);
×
1372
  return code;
×
1373
}
1374

1375
void tFreeSNotifyReq(SNotifyReq *pReq) {
×
1376
  if (pReq) {
×
1377
    taosArrayDestroy(pReq->pVloads);
×
1378
  }
1379
}
×
1380

1381
int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
212,488✔
1382
  SEncoder encoder = {0};
212,488✔
1383
  int32_t  code = 0;
212,488✔
1384
  int32_t  lino;
1385
  int32_t  tlen;
1386
  tEncoderInit(&encoder, buf, bufLen);
212,488✔
1387

1388
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
212,488!
1389

1390
  // status
1391
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sver));
424,976!
1392
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dnodeVer));
424,976!
1393
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
424,976!
1394
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
424,976!
1395
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->rebootTime));
424,976!
1396
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->updateTime));
424,976!
1397
  TAOS_CHECK_EXIT(tEncodeFloat(&encoder, pReq->numOfCores));
424,976!
1398
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfSupportVnodes));
424,976!
1399
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->numOfDiskCfg));
424,976!
1400
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memTotal));
424,976!
1401
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memAvail));
424,976!
1402
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeEp));
424,976!
1403
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
424,976!
1404

1405
  // cluster cfg
1406
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->clusterCfg.statusInterval));
424,976!
1407
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterCfg.checkTime));
424,976!
1408
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.timezone));
424,976!
1409
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.locale));
424,976!
1410
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.charset));
424,976!
1411
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.enableWhiteList));
424,976!
1412
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.encryptionKeyStat));
424,976!
1413
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->clusterCfg.encryptionKeyChksum));
424,976!
1414

1415
  // vnode loads
1416
  int32_t vlen = (int32_t)taosArrayGetSize(pReq->pVloads);
212,488✔
1417
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, vlen));
212,488!
1418
  for (int32_t i = 0; i < vlen; ++i) {
2,297,398✔
1419
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
2,084,910✔
1420
    int64_t     reserved = 0;
2,084,910✔
1421
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->vgId));
4,169,820!
1422
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncState));
4,169,820!
1423
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncRestore));
4,169,820!
1424
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncCanRead));
4,169,820!
1425
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->cacheUsage));
4,169,820!
1426
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTables));
4,169,820!
1427
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTimeSeries));
4,169,820!
1428
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->totalStorage));
4,169,820!
1429
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->compStorage));
4,169,820!
1430
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->pointsWritten));
4,169,820!
1431
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->numOfCachedTables));
4,169,820!
1432
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->learnerProgress));
4,169,820!
1433
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->roleTimeMs));
4,169,820!
1434
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->startTimeMs));
4,169,820!
1435
  }
1436

1437
  // mnode loads
1438
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncState));
424,976!
1439
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncRestore));
424,976!
1440

1441
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->qload.dnodeId));
424,976!
1442
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedQuery));
424,976!
1443
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedCQuery));
424,976!
1444
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedFetch));
424,976!
1445
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDrop));
424,976!
1446
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedNotify));
424,976!
1447
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedHb));
424,976!
1448
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDelete));
424,976!
1449
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.cacheDataSize));
424,976!
1450
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfQueryInQueue));
424,976!
1451
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfFetchInQueue));
424,976!
1452
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInQueryQueue));
424,976!
1453
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInFetchQueue));
424,976!
1454

1455
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->statusSeq));
424,976!
1456
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.syncTerm));
424,976!
1457
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.roleTimeMs));
424,976!
1458
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.ttlChangeOnWrite));
424,976!
1459

1460
  // vnode extra
1461
  for (int32_t i = 0; i < vlen; ++i) {
2,297,398✔
1462
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
2,084,910✔
1463
    int64_t     reserved = 0;
2,084,910✔
1464
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncTerm));
4,169,820!
1465
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
2,084,910!
1466
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
2,084,910!
1467
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
2,084,910!
1468
  }
1469

1470
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
424,976!
1471
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
424,976!
1472
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pReq->clusterCfg.monitorParas));
212,488!
1473

1474
  tEndEncode(&encoder);
212,488✔
1475

1476
_exit:
212,488✔
1477
  if (code) {
212,488!
1478
    tlen = code;
×
1479
  } else {
1480
    tlen = encoder.pos;
212,488✔
1481
  }
1482
  tEncoderClear(&encoder);
212,488✔
1483
  return tlen;
212,488✔
1484
}
1485

1486
int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
105,532✔
1487
  SDecoder decoder = {0};
105,532✔
1488
  int32_t  code = 0;
105,532✔
1489
  int32_t  lino;
1490
  tDecoderInit(&decoder, buf, bufLen);
105,532✔
1491

1492
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
105,535!
1493

1494
  // status
1495
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sver));
211,068!
1496
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dnodeVer));
211,063!
1497
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
211,062!
1498
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
211,061!
1499
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->rebootTime));
211,060!
1500
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->updateTime));
211,061!
1501
  TAOS_CHECK_EXIT(tDecodeFloat(&decoder, &pReq->numOfCores));
211,065!
1502
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfSupportVnodes));
211,064!
1503
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->numOfDiskCfg));
211,063!
1504
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memTotal));
211,063!
1505
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memAvail));
211,061!
1506
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeEp));
105,530!
1507
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
105,531!
1508

1509
  // cluster cfg
1510
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->clusterCfg.statusInterval));
211,061!
1511
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterCfg.checkTime));
211,063!
1512
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.timezone));
105,533!
1513
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.locale));
105,535!
1514
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.charset));
105,535!
1515
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.enableWhiteList));
211,063!
1516
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.encryptionKeyStat));
211,065!
1517
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->clusterCfg.encryptionKeyChksum));
211,068!
1518

1519
  // vnode loads
1520
  int32_t vlen = 0;
105,534✔
1521
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vlen));
105,535!
1522
  pReq->pVloads = taosArrayInit(vlen, sizeof(SVnodeLoad));
105,535✔
1523
  if (pReq->pVloads == NULL) {
105,535!
1524
    TAOS_CHECK_EXIT(terrno);
×
1525
  }
1526

1527
  for (int32_t i = 0; i < vlen; ++i) {
1,146,638✔
1528
    SVnodeLoad vload = {0};
1,041,100✔
1529
    vload.syncTerm = -1;
1,041,100✔
1530

1531
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.vgId));
1,041,099!
1532
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncState));
1,041,100!
1533
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncRestore));
1,041,099!
1534
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncCanRead));
1,041,099!
1535
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.cacheUsage));
1,041,100!
1536
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTables));
1,041,100!
1537
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTimeSeries));
1,041,101!
1538
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.totalStorage));
1,041,101!
1539
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.compStorage));
1,041,099!
1540
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.pointsWritten));
1,041,097!
1541
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.numOfCachedTables));
1,041,097!
1542
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.learnerProgress));
1,041,098!
1543
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.roleTimeMs));
1,041,099!
1544
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.startTimeMs));
1,041,100!
1545
    if (taosArrayPush(pReq->pVloads, &vload) == NULL) {
2,082,202!
1546
      TAOS_CHECK_EXIT(terrno);
×
1547
    }
1548
  }
1549

1550
  // mnode loads
1551
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncState));
211,074!
1552
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncRestore));
211,069!
1553
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->qload.dnodeId));
211,065!
1554
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedQuery));
211,064!
1555
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedCQuery));
211,064!
1556
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedFetch));
211,060!
1557
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDrop));
211,060!
1558
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedNotify));
211,064!
1559
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedHb));
211,065!
1560
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDelete));
211,064!
1561
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.cacheDataSize));
211,060!
1562
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfQueryInQueue));
211,061!
1563
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfFetchInQueue));
211,065!
1564
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInQueryQueue));
211,065!
1565
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInFetchQueue));
211,064!
1566
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->statusSeq));
211,063!
1567

1568
  pReq->mload.syncTerm = -1;
105,531✔
1569
  pReq->mload.roleTimeMs = 0;
105,531✔
1570
  if (!tDecodeIsEnd(&decoder)) {
105,531✔
1571
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.syncTerm));
211,058!
1572
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.roleTimeMs));
211,061!
1573
  }
1574

1575
  pReq->clusterCfg.ttlChangeOnWrite = false;
105,534✔
1576
  if (!tDecodeIsEnd(&decoder)) {
105,534✔
1577
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.ttlChangeOnWrite));
211,065!
1578
  }
1579

1580
  // vnode extra
1581
  if (!tDecodeIsEnd(&decoder)) {
105,535✔
1582
    for (int32_t i = 0; i < vlen; ++i) {
1,146,625✔
1583
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
1,041,094✔
1584
      int64_t     reserved = 0;
1,041,095✔
1585
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncTerm));
2,082,189!
1586
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
1,041,095!
1587
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
1,041,095!
1588
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
1,041,094!
1589
    }
1590
  }
1591
  if (!tDecodeIsEnd(&decoder)) {
105,535✔
1592
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
211,063!
1593
  }
1594

1595
  if (!tDecodeIsEnd(&decoder)) {
105,534✔
1596
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
211,062!
1597
  }
1598

1599
  if (!tDecodeIsEnd(&decoder)) {
105,534✔
1600
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pReq->clusterCfg.monitorParas));
105,531!
1601
  }
1602

1603
  tEndDecode(&decoder);
105,537✔
1604

1605
_exit:
105,533✔
1606
  tDecoderClear(&decoder);
105,533✔
1607
  return code;
105,533✔
1608
}
1609

1610
void tFreeSStatusReq(SStatusReq *pReq) { taosArrayDestroy(pReq->pVloads); }
106,244✔
1611

1612
int32_t tSerializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
4,530✔
1613
  SEncoder encoder = {0};
4,530✔
1614
  int32_t  code = 0;
4,530✔
1615
  int32_t  lino;
1616
  int32_t  tlen;
1617
  tEncoderInit(&encoder, buf, bufLen);
4,530✔
1618
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,530!
1619
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cver));
9,060!
1620
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->forceReadConfig));
9,060!
1621
  if (pReq->forceReadConfig) {
4,530!
1622
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pReq->array));
×
1623
  }
1624
  tEndEncode(&encoder);
4,530✔
1625
_exit:
4,530✔
1626
  if (code) {
4,530!
1627
    tlen = code;
×
1628
  } else {
1629
    tlen = encoder.pos;
4,530✔
1630
  }
1631
  tEncoderClear(&encoder);
4,530✔
1632
  return tlen;
4,530✔
1633
}
1634

1635
int32_t tDeserializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
2,247✔
1636
  SDecoder decoder = {0};
2,247✔
1637
  int32_t  code = 0;
2,247✔
1638
  int32_t  lino;
1639
  tDecoderInit(&decoder, buf, bufLen);
2,247✔
1640
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,247!
1641
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cver));
4,494!
1642
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->forceReadConfig));
4,494!
1643
  if (pReq->forceReadConfig) {
2,247!
1644
    pReq->array = taosArrayInit(128, sizeof(SConfigItem));
×
1645
    if (pReq->array == NULL) {
×
1646
      TAOS_CHECK_EXIT(terrno);
×
1647
    }
1648
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pReq->array));
×
1649
  }
1650
  tEndDecode(&decoder);
2,247✔
1651
_exit:
2,247✔
1652
  tDecoderClear(&decoder);
2,247✔
1653
  return code;
2,247✔
1654
}
1655

1656
void tFreeSConfigReq(SConfigReq *pReq) { taosArrayDestroy(pReq->array); }
×
1657

1658
int32_t tSerializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
4,494✔
1659
  SEncoder encoder = {0};
4,494✔
1660
  int32_t  code = 0;
4,494✔
1661
  int32_t  lino;
1662
  int32_t  tlen;
1663
  tEncoderInit(&encoder, buf, bufLen);
4,494✔
1664
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,494!
1665
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->forceReadConfig));
8,988!
1666
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isConifgVerified));
8,988!
1667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isVersionVerified));
8,988!
1668
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->cver));
8,988!
1669
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
4,494!
1670
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pRsp->array));
4,494!
1671
  }
1672
  tEndEncode(&encoder);
4,494✔
1673
_exit:
4,494✔
1674
  if (code) {
4,494!
1675
    tlen = code;
×
1676
  } else {
1677
    tlen = encoder.pos;
4,494✔
1678
  }
1679
  tEncoderClear(&encoder);
4,494✔
1680
  return tlen;
4,494✔
1681
}
1682

1683
int32_t tDeserializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
2,192✔
1684
  SDecoder decoder = {0};
2,192✔
1685
  int32_t  code = 0;
2,192✔
1686
  int32_t  lino;
1687
  tDecoderInit(&decoder, buf, bufLen);
2,192✔
1688
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,192!
1689
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->forceReadConfig));
4,384!
1690
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isConifgVerified));
4,384!
1691
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isVersionVerified));
4,384!
1692
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->cver));
4,384!
1693
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
2,192!
1694
    pRsp->array = taosArrayInit(128, sizeof(SConfigItem));
2,192✔
1695
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pRsp->array));
2,192!
1696
  }
1697
_exit:
2,192✔
1698
  tEndDecode(&decoder);
2,192✔
1699
  tDecoderClear(&decoder);
2,192✔
1700
  return code;
2,192✔
1701
}
1702

1703
void tFreeSConfigRsp(SConfigRsp *pRsp) { taosArrayDestroy(pRsp->array); }
2,192✔
1704

1705
int32_t tSerializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
930✔
1706
  int32_t  code = 0, lino = 0;
930✔
1707
  int32_t  tlen = 0;
930✔
1708
  SEncoder encoder = {0};
930✔
1709
  tEncoderInit(&encoder, buf, bufLen);
930✔
1710

1711
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
930!
1712
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
1,860!
1713
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
1,860!
1714

1715
  tEndEncode(&encoder);
930✔
1716

1717
  tlen = encoder.pos;
930✔
1718
_exit:
930✔
1719
  tEncoderClear(&encoder);
930✔
1720
  return code < 0 ? code : tlen;
930!
1721
}
1722

1723
int32_t tDeserializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
465✔
1724
  int32_t  code = 0, lino = 0;
465✔
1725
  SDecoder decoder = {0};
465✔
1726
  tDecoderInit(&decoder, buf, bufLen);
465✔
1727

1728
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
465!
1729
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
930!
1730
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
465!
1731

1732
_exit:
465✔
1733
  tEndDecode(&decoder);
465✔
1734
  tDecoderClear(&decoder);
465✔
1735
  return code;
465✔
1736
}
1737

1738
int32_t tSerializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
7,914✔
1739
  SEncoder encoder = {0};
7,914✔
1740
  int32_t  code = 0;
7,914✔
1741
  int32_t  lino;
1742
  int32_t  tlen;
1743
  tEncoderInit(&encoder, buf, bufLen);
7,914✔
1744

1745
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,914!
1746

1747
  // status
1748
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeVer));
15,828!
1749

1750
  // dnode cfg
1751
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeCfg.dnodeId));
15,828!
1752
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeCfg.clusterId));
15,828!
1753

1754
  // dnode eps
1755
  int32_t dlen = (int32_t)taosArrayGetSize(pRsp->pDnodeEps);
7,914✔
1756
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, dlen));
7,914!
1757
  for (int32_t i = 0; i < dlen; ++i) {
35,060✔
1758
    SDnodeEp *pDnodeEp = taosArrayGet(pRsp->pDnodeEps, i);
27,146✔
1759
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pDnodeEp->id));
54,292!
1760
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pDnodeEp->isMnode));
54,292!
1761
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pDnodeEp->ep.fqdn));
54,292!
1762
    TAOS_CHECK_EXIT(tEncodeU16(&encoder, pDnodeEp->ep.port));
54,292!
1763
  }
1764

1765
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusSeq));
15,828!
1766

1767
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ipWhiteVer));
15,828!
1768
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->analVer));
15,828!
1769
  tEndEncode(&encoder);
7,914✔
1770

1771
_exit:
7,914✔
1772
  if (code) {
7,914!
1773
    tlen = code;
×
1774
  } else {
1775
    tlen = encoder.pos;
7,914✔
1776
  }
1777
  tEncoderClear(&encoder);
7,914✔
1778
  return tlen;
7,914✔
1779
}
1780

1781
int32_t tDeserializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
3,880✔
1782
  SDecoder decoder = {0};
3,880✔
1783
  int32_t  code = 0;
3,880✔
1784
  int32_t  lino;
1785
  tDecoderInit(&decoder, buf, bufLen);
3,880✔
1786

1787
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,880!
1788

1789
  // status
1790
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeVer));
7,760!
1791

1792
  // cluster cfg
1793
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeCfg.dnodeId));
7,760!
1794
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeCfg.clusterId));
7,760!
1795

1796
  // dnode eps
1797
  int32_t dlen = 0;
3,880✔
1798
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dlen));
3,880!
1799
  pRsp->pDnodeEps = taosArrayInit(dlen, sizeof(SDnodeEp));
3,880✔
1800
  if (pRsp->pDnodeEps == NULL) {
3,880!
1801
    TAOS_CHECK_EXIT(terrno);
×
1802
  }
1803

1804
  for (int32_t i = 0; i < dlen; ++i) {
16,998✔
1805
    SDnodeEp dnodeEp = {0};
13,118✔
1806
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dnodeEp.id));
13,118!
1807
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &dnodeEp.isMnode));
13,118!
1808
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, dnodeEp.ep.fqdn));
13,118!
1809
    TAOS_CHECK_EXIT(tDecodeU16(&decoder, &dnodeEp.ep.port));
13,118!
1810
    if (taosArrayPush(pRsp->pDnodeEps, &dnodeEp) == NULL) {
26,236!
1811
      TAOS_CHECK_EXIT(terrno);
×
1812
    }
1813
  }
1814

1815
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusSeq));
7,760!
1816

1817
  if (!tDecodeIsEnd(&decoder)) {
3,880!
1818
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ipWhiteVer));
7,760!
1819
  }
1820

1821
  if (!tDecodeIsEnd(&decoder)) {
3,880!
1822
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->analVer));
7,760!
1823
  }
1824

1825
  tEndDecode(&decoder);
3,880✔
1826
_exit:
3,880✔
1827
  tDecoderClear(&decoder);
3,880✔
1828
  return code;
3,880✔
1829
}
1830

1831
void tFreeSStatusRsp(SStatusRsp *pRsp) { taosArrayDestroy(pRsp->pDnodeEps); }
105,727✔
1832

1833
int32_t tSerializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
858✔
1834
  SEncoder encoder = {0};
858✔
1835
  int32_t  code = 0;
858✔
1836
  int32_t  lino;
1837
  int32_t  tlen;
1838
  tEncoderInit(&encoder, buf, bufLen);
858✔
1839

1840
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
858!
1841
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->contLen));
1,716!
1842
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pCont));
1,716!
1843
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->type));
1,716!
1844

1845
  tEndEncode(&encoder);
858✔
1846

1847
_exit:
858✔
1848
  if (code) {
858!
1849
    tlen = code;
×
1850
  } else {
1851
    tlen = encoder.pos;
858✔
1852
  }
1853
  tEncoderClear(&encoder);
858✔
1854
  return tlen;
858✔
1855
}
1856

1857
int32_t tDeserializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
11,810✔
1858
  SDecoder decoder = {0};
11,810✔
1859
  int32_t  code = 0;
11,810✔
1860
  int32_t  lino;
1861
  tDecoderInit(&decoder, buf, bufLen);
11,810✔
1862

1863
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,810!
1864
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->contLen));
23,620!
1865
  if (pReq->contLen > 0) {
11,810!
1866
    pReq->pCont = taosMemoryMalloc(pReq->contLen + 1);
11,810!
1867
    if (pReq->pCont == NULL) {
11,810!
1868
      TAOS_CHECK_EXIT(terrno);
×
1869
    }
1870
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCont));
11,810!
1871
  }
1872
  if (!tDecodeIsEnd(&decoder)) {
11,810!
1873
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->type));
23,620!
1874
  }
1875
  tEndDecode(&decoder);
11,810✔
1876
_exit:
11,810✔
1877
  tDecoderClear(&decoder);
11,810✔
1878
  return code;
11,810✔
1879
}
1880

1881
void tFreeSStatisReq(SStatisReq *pReq) { taosMemoryFreeClear(pReq->pCont); }
11,810!
1882

1883
int32_t tSerializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
338✔
1884
  SEncoder encoder = {0};
338✔
1885
  int32_t  code = 0;
338✔
1886
  int32_t  lino;
1887
  int32_t  tlen;
1888
  tEncoderInit(&encoder, buf, bufLen);
338✔
1889

1890
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
338!
1891
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
676!
1892
  ENCODESQL();
1,014!
1893
  tEndEncode(&encoder);
338✔
1894

1895
_exit:
338✔
1896
  if (code) {
338!
1897
    tlen = code;
×
1898
  } else {
1899
    tlen = encoder.pos;
338✔
1900
  }
1901
  tEncoderClear(&encoder);
338✔
1902
  return tlen;
338✔
1903
}
1904

1905
int32_t tDeserializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
52✔
1906
  SDecoder decoder = {0};
52✔
1907
  int32_t  code = 0;
52✔
1908
  int32_t  lino;
1909
  tDecoderInit(&decoder, buf, bufLen);
52✔
1910

1911
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
52!
1912
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
52!
1913
  DECODESQL();
156!
1914
  tEndDecode(&decoder);
52✔
1915

1916
_exit:
52✔
1917
  tDecoderClear(&decoder);
52✔
1918
  return code;
52✔
1919
}
1920

1921
void tFreeSDropUserReq(SDropUserReq *pReq) { FREESQL(); }
221!
1922

1923
int32_t tSerializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
109,778✔
1924
  SEncoder encoder = {0};
109,778✔
1925
  int32_t  code = 0;
109,778✔
1926
  int32_t  lino;
1927
  int32_t  tlen;
1928
  tEncoderInit(&encoder, buf, bufLen);
109,778✔
1929

1930
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
109,779!
1931

1932
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->operation));
219,564!
1933
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
219,564!
1934
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->table));
219,564!
1935
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
219,564!
1936
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pSql));
219,564!
1937

1938
  tEndEncode(&encoder);
109,782✔
1939

1940
_exit:
109,781✔
1941
  if (code) {
109,781!
1942
    tlen = code;
×
1943
  } else {
1944
    tlen = encoder.pos;
109,781✔
1945
  }
1946
  tEncoderClear(&encoder);
109,781✔
1947
  return tlen;
109,783✔
1948
}
1949

1950
int32_t tDeserializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
58,297✔
1951
  SDecoder decoder = {0};
58,297✔
1952
  int32_t  code = 0;
58,297✔
1953
  int32_t  lino;
1954
  tDecoderInit(&decoder, buf, bufLen);
58,297✔
1955

1956
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
58,298!
1957

1958
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->operation));
58,300!
1959
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
58,300!
1960
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->table));
58,299!
1961
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
116,599!
1962
  if (pReq->sqlLen > 0) {
58,300!
1963
    pReq->pSql = taosMemoryMalloc(pReq->sqlLen + 1);
58,300!
1964
    if (pReq->pSql == NULL) {
58,300!
1965
      TAOS_CHECK_EXIT(terrno);
×
1966
    }
1967
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pSql));
58,300!
1968
  }
1969
  tEndDecode(&decoder);
58,300✔
1970
_exit:
58,300✔
1971
  tDecoderClear(&decoder);
58,300✔
1972
  return code;
58,299✔
1973
}
1974

1975
void tFreeSAuditReq(SAuditReq *pReq) { taosMemoryFreeClear(pReq->pSql); }
58,297!
1976

1977
SIpWhiteList *cloneIpWhiteList(SIpWhiteList *pIpWhiteList) {
4,436✔
1978
  if (pIpWhiteList == NULL) return NULL;
4,436!
1979

1980
  int32_t       sz = sizeof(SIpWhiteList) + pIpWhiteList->num * sizeof(SIpV4Range);
4,436✔
1981
  SIpWhiteList *pNew = taosMemoryCalloc(1, sz);
4,436!
1982
  if (pNew) {
4,436!
1983
    memcpy(pNew, pIpWhiteList, sz);
4,436✔
1984
  }
1985
  return pNew;
4,436✔
1986
}
1987

1988
int32_t tSerializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
696✔
1989
  SEncoder encoder = {0};
696✔
1990
  int32_t  code = 0;
696✔
1991
  int32_t  lino;
1992
  int32_t  tlen;
1993
  tEncoderInit(&encoder, buf, bufLen);
696✔
1994

1995
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
696!
1996
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createType));
1,392!
1997
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
1,392!
1998
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
1,392!
1999
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
1,392!
2000
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
1,392!
2001
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
1,392!
2002
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
1,392!
2003
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
716✔
2004
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
40!
2005
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
40!
2006
  }
2007
  ENCODESQL();
2,088!
2008
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isImport));
1,392!
2009
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createDb));
1,392!
2010

2011
  tEndEncode(&encoder);
696✔
2012

2013
_exit:
696✔
2014
  if (code) {
696!
2015
    tlen = code;
×
2016
  } else {
2017
    tlen = encoder.pos;
696✔
2018
  }
2019
  tEncoderClear(&encoder);
696✔
2020
  return tlen;
696✔
2021
}
2022

2023
int32_t tDeserializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
228✔
2024
  SDecoder decoder = {0};
228✔
2025
  int32_t  code = 0;
228✔
2026
  int32_t  lino;
2027
  tDecoderInit(&decoder, buf, bufLen);
228✔
2028

2029
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
228!
2030
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createType));
456!
2031
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
456!
2032
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
456!
2033
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
456!
2034
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
228!
2035
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
228!
2036
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
456!
2037
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
228!
2038
  if (pReq->pIpRanges == NULL) {
228!
2039
    TAOS_CHECK_EXIT(terrno);
×
2040
  }
2041
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
238✔
2042
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
20!
2043
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
20!
2044
  }
2045
  DECODESQL();
684!
2046
  if (!tDecodeIsEnd(&decoder)) {
228!
2047
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createDb));
456!
2048
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isImport));
456!
2049
  }
2050

2051
  tEndDecode(&decoder);
228✔
2052

2053
_exit:
228✔
2054
  tDecoderClear(&decoder);
228✔
2055
  return code;
228✔
2056
}
2057

2058
int32_t tSerializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
12✔
2059
  SEncoder encoder = {0};
12✔
2060
  int32_t  code = 0;
12✔
2061
  int32_t  lino;
2062
  int32_t  tlen;
2063

2064
  tEncoderInit(&encoder, buf, bufLen);
12✔
2065
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
2066
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ver));
24!
2067
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfUser));
24!
2068
  for (int i = 0; i < pReq->numOfUser; i++) {
24✔
2069
    SUpdateUserIpWhite *pUser = &(pReq->pUserIpWhite[i]);
12✔
2070

2071
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pUser->ver));
24!
2072
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pUser->user));
24!
2073
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUser->numOfRange));
24!
2074
    for (int j = 0; j < pUser->numOfRange; j++) {
36✔
2075
      SIpV4Range *pRange = &pUser->pIpRanges[j];
24✔
2076
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->ip));
48!
2077
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->mask));
48!
2078
    }
2079
  }
2080

2081
  tEndEncode(&encoder);
12✔
2082

2083
_exit:
12✔
2084
  if (code) {
12!
2085
    tlen = code;
×
2086
  } else {
2087
    tlen = encoder.pos;
12✔
2088
  }
2089
  tEncoderClear(&encoder);
12✔
2090
  return tlen;
12✔
2091
}
2092
int32_t tDeserializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
6✔
2093
  SDecoder decoder = {0};
6✔
2094
  int32_t  code = 0;
6✔
2095
  int32_t  lino;
2096
  tDecoderInit(&decoder, buf, bufLen);
6✔
2097

2098
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
2099
  // impl later
2100
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ver));
12!
2101
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfUser));
12!
2102

2103
  if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) {
6!
2104
    TAOS_CHECK_EXIT(terrno);
×
2105
  }
2106
  for (int i = 0; i < pReq->numOfUser; i++) {
12✔
2107
    SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
6✔
2108
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pUserWhite->ver));
12!
2109
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pUserWhite->user));
6!
2110
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pUserWhite->numOfRange));
12!
2111

2112
    if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpV4Range))) == NULL) {
6!
2113
      TAOS_CHECK_EXIT(terrno);
×
2114
    }
2115
    for (int j = 0; j < pUserWhite->numOfRange; j++) {
18✔
2116
      SIpV4Range *pRange = &pUserWhite->pIpRanges[j];
12✔
2117
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->ip));
24!
2118
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->mask));
24!
2119
    }
2120
  }
2121

2122
  tEndDecode(&decoder);
6✔
2123

2124
_exit:
6✔
2125
  tDecoderClear(&decoder);
6✔
2126
  return code;
6✔
2127
}
2128
void tFreeSUpdateIpWhiteReq(SUpdateIpWhite *pReq) {
131✔
2129
  if (pReq == NULL) return;
131!
2130

2131
  if (pReq->pUserIpWhite) {
131!
2132
    for (int i = 0; i < pReq->numOfUser; i++) {
263✔
2133
      SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
131✔
2134
      taosMemoryFree(pUserWhite->pIpRanges);
131!
2135
    }
2136
  }
2137
  taosMemoryFree(pReq->pUserIpWhite);
132!
2138
  return;
132✔
2139
}
2140
int32_t cloneSUpdateIpWhiteReq(SUpdateIpWhite *pReq, SUpdateIpWhite **pUpdateMsg) {
77,368✔
2141
  int32_t code = 0;
77,368✔
2142
  if (pReq == NULL) {
77,368✔
2143
    return 0;
77,248✔
2144
  }
2145
  SUpdateIpWhite *pClone = taosMemoryCalloc(1, sizeof(SUpdateIpWhite));
120!
2146
  if (pClone == NULL) {
120!
2147
    return terrno;
×
2148
  }
2149

2150
  pClone->numOfUser = pReq->numOfUser;
120✔
2151
  pClone->ver = pReq->ver;
120✔
2152
  pClone->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser);
120!
2153
  if (pClone->pUserIpWhite == NULL) {
120!
2154
    taosMemoryFree(pClone);
×
2155
    return terrno;
×
2156
  }
2157

2158
  for (int i = 0; i < pReq->numOfUser; i++) {
240✔
2159
    SUpdateUserIpWhite *pNew = &pClone->pUserIpWhite[i];
120✔
2160
    SUpdateUserIpWhite *pOld = &pReq->pUserIpWhite[i];
120✔
2161

2162
    pNew->ver = pOld->ver;
120✔
2163
    memcpy(pNew->user, pOld->user, strlen(pOld->user));
120✔
2164
    pNew->numOfRange = pOld->numOfRange;
120✔
2165

2166
    int32_t sz = pOld->numOfRange * sizeof(SIpV4Range);
120✔
2167
    pNew->pIpRanges = taosMemoryCalloc(1, sz);
120!
2168
    if (pNew->pIpRanges == NULL) {
120!
2169
      code = terrno;
×
2170
      break;
×
2171
    }
2172
    memcpy(pNew->pIpRanges, pOld->pIpRanges, sz);
120✔
2173
  }
2174
_return:
120✔
2175
  if (code < 0) {
120!
2176
    tFreeSUpdateIpWhiteReq(pClone);
×
2177
    taosMemoryFree(pClone);
×
2178
  } else {
2179
    *pUpdateMsg = pClone;
120✔
2180
  }
2181
  return code;
120✔
2182
}
2183
int32_t tSerializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
12✔
2184
  SEncoder encoder = {0};
12✔
2185
  int32_t  code = 0;
12✔
2186
  int32_t  lino;
2187
  int32_t  tlen;
2188
  tEncoderInit(&encoder, buf, bufLen);
12✔
2189

2190
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
2191
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
24!
2192
  tEndEncode(&encoder);
12✔
2193

2194
_exit:
12✔
2195
  if (code) {
12!
2196
    tlen = code;
×
2197
  } else {
2198
    tlen = encoder.pos;
12✔
2199
  }
2200
  tEncoderClear(&encoder);
12✔
2201
  return tlen;
12✔
2202
}
2203

2204
int32_t tDeserializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
6✔
2205
  SDecoder decoder = {0};
6✔
2206
  int32_t  code = 0;
6✔
2207
  int32_t  lino;
2208

2209
  tDecoderInit(&decoder, buf, bufLen);
6✔
2210

2211
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
2212
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
12!
2213
  tEndDecode(&decoder);
6✔
2214

2215
_exit:
6✔
2216
  tDecoderClear(&decoder);
6✔
2217
  return code;
6✔
2218
}
2219

2220
int32_t tSerializeRetrieveAnalAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalAlgoReq *pReq) {
4✔
2221
  SEncoder encoder = {0};
4✔
2222
  int32_t  code = 0;
4✔
2223
  int32_t  lino;
2224
  int32_t  tlen;
2225
  tEncoderInit(&encoder, buf, bufLen);
4✔
2226

2227
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2228
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
8!
2229
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
8!
2230
  tEndEncode(&encoder);
4✔
2231

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

2242
int32_t tDeserializeRetrieveAnalAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalAlgoReq *pReq) {
2✔
2243
  SDecoder decoder = {0};
2✔
2244
  int32_t  code = 0;
2✔
2245
  int32_t  lino;
2246

2247
  tDecoderInit(&decoder, buf, bufLen);
2✔
2248

2249
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2250
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
4!
2251
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
4!
2252
  tEndDecode(&decoder);
2✔
2253

2254
_exit:
2✔
2255
  tDecoderClear(&decoder);
2✔
2256
  return code;
2✔
2257
}
2258

2259
int32_t tSerializeRetrieveAnalAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalAlgoRsp *pRsp) {
4✔
2260
  SEncoder encoder = {0};
4✔
2261
  int32_t  code = 0;
4✔
2262
  int32_t  lino;
2263
  int32_t  tlen;
2264
  tEncoderInit(&encoder, buf, bufLen);
4✔
2265

2266
  int32_t numOfAlgos = 0;
4✔
2267
  void   *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2268
  while (pIter != NULL) {
20✔
2269
    SAnalyticsUrl *pUrl = pIter;
16✔
2270
    size_t         nameLen = 0;
16✔
2271
    const char    *name = taosHashGetKey(pIter, &nameLen);
16✔
2272
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_KEY_LEN && pUrl->urlLen > 0) {
16!
2273
      numOfAlgos++;
16✔
2274
    }
2275
    pIter = taosHashIterate(pRsp->hash, pIter);
16✔
2276
  }
2277

2278
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
2279
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ver));
8!
2280
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfAlgos));
4!
2281

2282
  pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2283
  while (pIter != NULL) {
20✔
2284
    SAnalyticsUrl *pUrl = pIter;
16✔
2285
    size_t         nameLen = 0;
16✔
2286
    const char    *name = taosHashGetKey(pIter, &nameLen);
16✔
2287
    if (nameLen > 0 && pUrl->urlLen > 0) {
16!
2288
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, nameLen));
32!
2289
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)name, nameLen));
32!
2290
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->anode));
32!
2291
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->type));
32!
2292
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->urlLen));
32!
2293
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pUrl->url, pUrl->urlLen));
32!
2294
    }
2295
    pIter = taosHashIterate(pRsp->hash, pIter);
16✔
2296
  }
2297

2298
  tEndEncode(&encoder);
4✔
2299

2300
_exit:
4✔
2301
  if (code) {
4!
2302
    tlen = code;
×
2303
  } else {
2304
    tlen = encoder.pos;
4✔
2305
  }
2306
  tEncoderClear(&encoder);
4✔
2307
  return tlen;
4✔
2308
}
2309

2310
int32_t tDeserializeRetrieveAnalAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalAlgoRsp *pRsp) {
2✔
2311
  if (pRsp->hash == NULL) {
2!
2312
    pRsp->hash = taosHashInit(64, MurmurHash3_32, true, HASH_ENTRY_LOCK);
2✔
2313
    if (pRsp->hash == NULL) {
2!
2314
      terrno = TSDB_CODE_OUT_OF_BUFFER;
×
2315
      return terrno;
×
2316
    }
2317
  }
2318

2319
  SDecoder decoder = {0};
2✔
2320
  int32_t  code = 0;
2✔
2321
  int32_t  lino;
2322
  tDecoderInit(&decoder, buf, bufLen);
2✔
2323

2324
  int32_t       numOfAlgos = 0;
2✔
2325
  int32_t       nameLen;
2326
  int32_t       type;
2327
  char          name[TSDB_ANALYTIC_ALGO_KEY_LEN];
2328
  SAnalyticsUrl url = {0};
2✔
2329

2330
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
2331
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ver));
4!
2332
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfAlgos));
2!
2333

2334
  for (int32_t f = 0; f < numOfAlgos; ++f) {
10✔
2335
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nameLen));
8!
2336
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_NAME_LEN) {
8!
2337
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, name));
8!
2338
    }
2339

2340
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.anode));
8!
2341
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &type));
8!
2342
    url.type = (EAnalAlgoType)type;
8✔
2343
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.urlLen));
8!
2344
    if (url.urlLen > 0) {
8!
2345
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&url.url, NULL) < 0);
8!
2346
    }
2347

2348
    TAOS_CHECK_EXIT(taosHashPut(pRsp->hash, name, nameLen, &url, sizeof(SAnalyticsUrl)));
8!
2349
  }
2350

2351
  tEndDecode(&decoder);
2✔
2352

2353
_exit:
2✔
2354
  tDecoderClear(&decoder);
2✔
2355
  return code;
2✔
2356
}
2357

2358
void tFreeRetrieveAnalAlgoRsp(SRetrieveAnalAlgoRsp *pRsp) {
4✔
2359
  void *pIter = taosHashIterate(pRsp->hash, NULL);
4✔
2360
  while (pIter != NULL) {
12✔
2361
    SAnalyticsUrl *pUrl = (SAnalyticsUrl *)pIter;
8✔
2362
    taosMemoryFree(pUrl->url);
8!
2363
    pIter = taosHashIterate(pRsp->hash, pIter);
8✔
2364
  }
2365
  taosHashCleanup(pRsp->hash);
4✔
2366

2367
  pRsp->hash = NULL;
4✔
2368
}
4✔
2369

2370
void tFreeSCreateUserReq(SCreateUserReq *pReq) {
576✔
2371
  FREESQL();
576!
2372
  taosMemoryFreeClear(pReq->pIpRanges);
576!
2373
}
576✔
2374

2375
int32_t tSerializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
942✔
2376
  SEncoder encoder = {0};
942✔
2377
  int32_t  code = 0;
942✔
2378
  int32_t  lino;
2379
  int32_t  tlen;
2380
  tEncoderInit(&encoder, buf, bufLen);
942✔
2381

2382
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
942!
2383
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
1,884!
2384
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
1,884!
2385
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
1,884!
2386
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
1,884!
2387
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isView));
1,884!
2388
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
1,884!
2389
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
1,884!
2390
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->objname));
1,884!
2391
  int32_t len = strlen(pReq->tabName);
942✔
2392
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, len));
942!
2393
  if (len > 0) {
942✔
2394
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tabName));
324!
2395
  }
2396
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->tagCond, pReq->tagCondLen));
1,884!
2397
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
1,884!
2398
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
966✔
2399
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
48!
2400
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
48!
2401
  }
2402
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->privileges));
1,884!
2403
  ENCODESQL();
2,826!
2404
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->flag));
1,884!
2405
  tEndEncode(&encoder);
942✔
2406

2407
_exit:
942✔
2408
  if (code) {
942!
2409
    tlen = code;
×
2410
  } else {
2411
    tlen = encoder.pos;
942✔
2412
  }
2413
  tEncoderClear(&encoder);
942✔
2414
  return tlen;
942✔
2415
}
2416

2417
int32_t tDeserializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
378✔
2418
  SDecoder decoder = {0};
378✔
2419
  int32_t  code = 0;
378✔
2420
  int32_t  lino;
2421
  tDecoderInit(&decoder, buf, bufLen);
378✔
2422

2423
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
378!
2424
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
756!
2425
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
756!
2426
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
756!
2427
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
756!
2428
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isView));
756!
2429
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
378!
2430
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
378!
2431
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->objname));
378!
2432
  if (!tDecodeIsEnd(&decoder)) {
378!
2433
    int32_t len = 0;
378✔
2434
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &len));
378!
2435
    if (len > 0) {
378✔
2436
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tabName));
79!
2437
    }
2438
    uint64_t tagCondLen = 0;
378✔
2439
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->tagCond, &tagCondLen));
756!
2440
    pReq->tagCondLen = tagCondLen;
378✔
2441
  }
2442
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
756!
2443
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
378!
2444
  if (pReq->pIpRanges == NULL) {
378!
2445
    TAOS_CHECK_EXIT(terrno);
×
2446
  }
2447
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
380✔
2448
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
4!
2449
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
4!
2450
  }
2451
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->privileges));
756!
2452
  DECODESQL();
1,134!
2453
  if (!tDecodeIsEnd(&decoder)) {
378!
2454
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->flag));
756!
2455
  }
2456
  tEndDecode(&decoder);
378✔
2457

2458
_exit:
378✔
2459
  tDecoderClear(&decoder);
378✔
2460
  return code;
378✔
2461
}
2462

2463
void tFreeSAlterUserReq(SAlterUserReq *pReq) {
849✔
2464
  taosMemoryFreeClear(pReq->tagCond);
849!
2465
  taosMemoryFree(pReq->pIpRanges);
849!
2466
  FREESQL();
849!
2467
}
849✔
2468

2469
int32_t tSerializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
14,795✔
2470
  SEncoder encoder = {0};
14,795✔
2471
  int32_t  code = 0;
14,795✔
2472
  int32_t  lino;
2473
  int32_t  tlen;
2474

2475
  tEncoderInit(&encoder, buf, bufLen);
14,795✔
2476
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14,801!
2477
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
29,604!
2478
  tEndEncode(&encoder);
14,802✔
2479

2480
_exit:
14,800✔
2481
  if (code) {
14,800!
2482
    tlen = code;
×
2483
  } else {
2484
    tlen = encoder.pos;
14,800✔
2485
  }
2486
  tEncoderClear(&encoder);
14,800✔
2487
  return tlen;
14,800✔
2488
}
2489

2490
int32_t tDeserializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
383,220✔
2491
  SDecoder decoder = {0};
383,220✔
2492
  int32_t  code = 0;
383,220✔
2493
  int32_t  lino;
2494
  tDecoderInit(&decoder, buf, bufLen);
383,220✔
2495

2496
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
383,219!
2497
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
383,220!
2498
  tEndDecode(&decoder);
383,219✔
2499

2500
_exit:
383,219✔
2501
  tDecoderClear(&decoder);
383,219✔
2502
  return code;
383,220✔
2503
}
2504

2505
int32_t tSerializeSGetUserAuthRspImpl(SEncoder *pEncoder, SGetUserAuthRsp *pRsp) {
797,199✔
2506
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->user));
1,594,398!
2507
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->superAuth));
1,594,398!
2508
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->sysInfo));
1,594,398!
2509
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->enable));
1,594,398!
2510
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->dropped));
1,594,398!
2511
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->version));
1,594,398!
2512

2513
  int32_t numOfCreatedDbs = taosHashGetSize(pRsp->createdDbs);
797,199✔
2514
  int32_t numOfReadDbs = taosHashGetSize(pRsp->readDbs);
797,194✔
2515
  int32_t numOfWriteDbs = taosHashGetSize(pRsp->writeDbs);
797,191✔
2516

2517
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfCreatedDbs));
797,191!
2518
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadDbs));
797,191!
2519
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteDbs));
797,191!
2520

2521
  char *db = taosHashIterate(pRsp->createdDbs, NULL);
797,191✔
2522
  while (db != NULL) {
21,307,293✔
2523
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
20,510,096!
2524
    db = taosHashIterate(pRsp->createdDbs, db);
20,510,096✔
2525
  }
2526

2527
  db = taosHashIterate(pRsp->readDbs, NULL);
797,197✔
2528
  while (db != NULL) {
797,375✔
2529
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
182!
2530
    db = taosHashIterate(pRsp->readDbs, db);
182✔
2531
  }
2532

2533
  db = taosHashIterate(pRsp->writeDbs, NULL);
797,193✔
2534
  while (db != NULL) {
797,375✔
2535
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
184!
2536
    db = taosHashIterate(pRsp->writeDbs, db);
184✔
2537
  }
2538

2539
  int32_t numOfReadTbs = taosHashGetSize(pRsp->readTbs);
797,191✔
2540
  int32_t numOfWriteTbs = taosHashGetSize(pRsp->writeTbs);
797,191✔
2541
  int32_t numOfAlterTbs = taosHashGetSize(pRsp->alterTbs);
797,189✔
2542
  int32_t numOfReadViews = taosHashGetSize(pRsp->readViews);
797,187✔
2543
  int32_t numOfWriteViews = taosHashGetSize(pRsp->writeViews);
797,187✔
2544
  int32_t numOfAlterViews = taosHashGetSize(pRsp->alterViews);
797,188✔
2545
  int32_t numOfUseDbs = taosHashGetSize(pRsp->useDbs);
797,187✔
2546
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadTbs));
797,187!
2547
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteTbs));
797,187!
2548
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterTbs));
797,187!
2549
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadViews));
797,187!
2550
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteViews));
797,187!
2551
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterViews));
797,187!
2552
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfUseDbs));
797,187!
2553

2554
  char *tb = taosHashIterate(pRsp->readTbs, NULL);
797,187✔
2555
  while (tb != NULL) {
797,354✔
2556
    size_t keyLen = 0;
164✔
2557
    void  *key = taosHashGetKey(tb, &keyLen);
164✔
2558
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
328!
2559
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
164!
2560

2561
    size_t valueLen = 0;
164✔
2562
    valueLen = strlen(tb);
164✔
2563
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
328!
2564
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
164!
2565

2566
    tb = taosHashIterate(pRsp->readTbs, tb);
164✔
2567
  }
2568

2569
  tb = taosHashIterate(pRsp->writeTbs, NULL);
797,190✔
2570
  while (tb != NULL) {
797,355✔
2571
    size_t keyLen = 0;
168✔
2572
    void  *key = taosHashGetKey(tb, &keyLen);
168✔
2573
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
336!
2574
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
168!
2575

2576
    size_t valueLen = 0;
168✔
2577
    valueLen = strlen(tb);
168✔
2578
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
336!
2579
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
168!
2580

2581
    tb = taosHashIterate(pRsp->writeTbs, tb);
168✔
2582
  }
2583

2584
  tb = taosHashIterate(pRsp->alterTbs, NULL);
797,187✔
2585
  while (tb != NULL) {
797,203✔
2586
    size_t keyLen = 0;
20✔
2587
    void  *key = taosHashGetKey(tb, &keyLen);
20✔
2588
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
40!
2589
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
20!
2590

2591
    size_t valueLen = 0;
20✔
2592
    valueLen = strlen(tb);
20✔
2593
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
40!
2594
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
20!
2595

2596
    tb = taosHashIterate(pRsp->alterTbs, tb);
20✔
2597
  }
2598

2599
  tb = taosHashIterate(pRsp->readViews, NULL);
797,183✔
2600
  while (tb != NULL) {
797,334✔
2601
    size_t keyLen = 0;
152✔
2602
    void  *key = taosHashGetKey(tb, &keyLen);
152✔
2603
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
304!
2604
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
152!
2605

2606
    size_t valueLen = 0;
152✔
2607
    valueLen = strlen(tb);
152✔
2608
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
304!
2609
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
152!
2610

2611
    tb = taosHashIterate(pRsp->readViews, tb);
152✔
2612
  }
2613

2614
  tb = taosHashIterate(pRsp->writeViews, NULL);
797,182✔
2615
  while (tb != NULL) {
797,299✔
2616
    size_t keyLen = 0;
118✔
2617
    void  *key = taosHashGetKey(tb, &keyLen);
118✔
2618
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
236!
2619
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
118!
2620

2621
    size_t valueLen = 0;
118✔
2622
    valueLen = strlen(tb);
118✔
2623
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
236!
2624
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
118!
2625

2626
    tb = taosHashIterate(pRsp->writeViews, tb);
118✔
2627
  }
2628

2629
  tb = taosHashIterate(pRsp->alterViews, NULL);
797,181✔
2630
  while (tb != NULL) {
797,300✔
2631
    size_t keyLen = 0;
124✔
2632
    void  *key = taosHashGetKey(tb, &keyLen);
124✔
2633
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
248!
2634
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
124!
2635

2636
    size_t valueLen = 0;
124✔
2637
    valueLen = strlen(tb);
124✔
2638
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
248!
2639
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
124!
2640

2641
    tb = taosHashIterate(pRsp->alterViews, tb);
124✔
2642
  }
2643

2644
  int32_t *useDb = taosHashIterate(pRsp->useDbs, NULL);
797,176✔
2645
  while (useDb != NULL) {
797,628✔
2646
    size_t keyLen = 0;
450✔
2647
    void  *key = taosHashGetKey(useDb, &keyLen);
450✔
2648
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
900!
2649
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
450!
2650
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, *useDb));
900!
2651
    useDb = taosHashIterate(pRsp->useDbs, useDb);
450✔
2652
  }
2653

2654
  // since 3.0.7.0
2655
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->passVer));
1,594,356!
2656
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->whiteListVer));
1,594,356!
2657
  return 0;
797,178✔
2658
}
2659

2660
int32_t tSerializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
766,428✔
2661
  SEncoder encoder = {0};
766,428✔
2662
  int32_t  code = 0;
766,428✔
2663
  int32_t  lino;
2664
  int32_t  tlen;
2665
  tEncoderInit(&encoder, buf, bufLen);
766,428✔
2666

2667
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
766,432!
2668
  TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pRsp));
766,433!
2669

2670
  tEndEncode(&encoder);
766,417✔
2671

2672
_exit:
766,418✔
2673
  if (code) {
766,418!
2674
    tlen = code;
×
2675
  } else {
2676
    tlen = encoder.pos;
766,418✔
2677
  }
2678
  tEncoderClear(&encoder);
766,418✔
2679
  return tlen;
766,422✔
2680
}
2681

2682
int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRsp) {
10,125✔
2683
  char *key = NULL, *value = NULL;
10,125✔
2684
  pRsp->createdDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,125✔
2685
  pRsp->readDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,126✔
2686
  pRsp->writeDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,127✔
2687
  pRsp->readTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,126✔
2688
  pRsp->writeTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,127✔
2689
  pRsp->alterTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,127✔
2690
  pRsp->readViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,127✔
2691
  pRsp->writeViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,127✔
2692
  pRsp->alterViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,127✔
2693
  pRsp->useDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
10,127✔
2694
  if (pRsp->createdDbs == NULL || pRsp->readDbs == NULL || pRsp->writeDbs == NULL || pRsp->readTbs == NULL ||
10,127!
2695
      pRsp->writeTbs == NULL || pRsp->alterTbs == NULL || pRsp->readViews == NULL || pRsp->writeViews == NULL ||
10,127!
2696
      pRsp->alterViews == NULL || pRsp->useDbs == NULL) {
10,127!
2697
    goto _err;
×
2698
  }
2699

2700
  if (tDecodeCStrTo(pDecoder, pRsp->user) < 0) goto _err;
10,127!
2701
  if (tDecodeI8(pDecoder, &pRsp->superAuth) < 0) goto _err;
20,254!
2702
  if (tDecodeI8(pDecoder, &pRsp->sysInfo) < 0) goto _err;
20,254!
2703
  if (tDecodeI8(pDecoder, &pRsp->enable) < 0) goto _err;
20,254!
2704
  if (tDecodeI8(pDecoder, &pRsp->dropped) < 0) goto _err;
20,254!
2705
  if (tDecodeI32(pDecoder, &pRsp->version) < 0) goto _err;
20,254!
2706

2707
  int32_t numOfCreatedDbs = 0;
10,127✔
2708
  int32_t numOfReadDbs = 0;
10,127✔
2709
  int32_t numOfWriteDbs = 0;
10,127✔
2710
  if (tDecodeI32(pDecoder, &numOfCreatedDbs) < 0) goto _err;
10,127!
2711
  if (tDecodeI32(pDecoder, &numOfReadDbs) < 0) goto _err;
10,127!
2712
  if (tDecodeI32(pDecoder, &numOfWriteDbs) < 0) goto _err;
10,127!
2713

2714
  for (int32_t i = 0; i < numOfCreatedDbs; ++i) {
23,531✔
2715
    char db[TSDB_DB_FNAME_LEN] = {0};
13,405✔
2716
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
13,405!
2717
    int32_t len = strlen(db);
13,405✔
2718
    if (taosHashPut(pRsp->createdDbs, db, len + 1, db, len + 1) < 0) goto _err;
13,405!
2719
  }
2720

2721
  for (int32_t i = 0; i < numOfReadDbs; ++i) {
10,225✔
2722
    char db[TSDB_DB_FNAME_LEN] = {0};
99✔
2723
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
99!
2724
    int32_t len = strlen(db);
99✔
2725
    if (taosHashPut(pRsp->readDbs, db, len + 1, db, len + 1) < 0) goto _err;
99!
2726
  }
2727

2728
  for (int32_t i = 0; i < numOfWriteDbs; ++i) {
10,226✔
2729
    char db[TSDB_DB_FNAME_LEN] = {0};
100✔
2730
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
100!
2731
    int32_t len = strlen(db);
100✔
2732
    if (taosHashPut(pRsp->writeDbs, db, len + 1, db, len + 1) < 0) goto _err;
100!
2733
  }
2734

2735
  if (!tDecodeIsEnd(pDecoder)) {
10,126!
2736
    int32_t numOfReadTbs = 0;
10,126✔
2737
    int32_t numOfWriteTbs = 0;
10,126✔
2738
    int32_t numOfAlterTbs = 0;
10,126✔
2739
    int32_t numOfReadViews = 0;
10,126✔
2740
    int32_t numOfWriteViews = 0;
10,126✔
2741
    int32_t numOfAlterViews = 0;
10,126✔
2742
    int32_t numOfUseDbs = 0;
10,126✔
2743
    if (tDecodeI32(pDecoder, &numOfReadTbs) < 0) goto _err;
10,127!
2744
    if (tDecodeI32(pDecoder, &numOfWriteTbs) < 0) goto _err;
10,127!
2745
    if (tDecodeI32(pDecoder, &numOfAlterTbs) < 0) goto _err;
10,127!
2746
    if (tDecodeI32(pDecoder, &numOfReadViews) < 0) goto _err;
10,127!
2747
    if (tDecodeI32(pDecoder, &numOfWriteViews) < 0) goto _err;
10,127!
2748
    if (tDecodeI32(pDecoder, &numOfAlterViews) < 0) goto _err;
10,127!
2749
    if (tDecodeI32(pDecoder, &numOfUseDbs) < 0) goto _err;
10,127!
2750

2751
    for (int32_t i = 0; i < numOfReadTbs; ++i) {
10,209✔
2752
      int32_t keyLen = 0;
82✔
2753
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
82!
2754

2755
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
82!
2756
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
82!
2757

2758
      int32_t valuelen = 0;
82✔
2759
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
82!
2760

2761
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
82!
2762
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
82!
2763

2764
      if (taosHashPut(pRsp->readTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
82!
2765

2766
      taosMemoryFreeClear(key);
82!
2767
      taosMemoryFreeClear(value);
82!
2768
    }
2769

2770
    for (int32_t i = 0; i < numOfWriteTbs; ++i) {
10,211✔
2771
      int32_t keyLen = 0;
84✔
2772
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
84!
2773

2774
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
84!
2775
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
84!
2776

2777
      int32_t valuelen = 0;
84✔
2778
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
84!
2779

2780
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
84!
2781
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
84!
2782

2783
      if (taosHashPut(pRsp->writeTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
84!
2784

2785
      taosMemoryFreeClear(key);
84!
2786
      taosMemoryFreeClear(value);
84!
2787
    }
2788

2789
    for (int32_t i = 0; i < numOfAlterTbs; ++i) {
10,137✔
2790
      int32_t keyLen = 0;
10✔
2791
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
10!
2792

2793
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
10!
2794
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
10!
2795

2796
      int32_t valuelen = 0;
10✔
2797
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
10!
2798

2799
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
10!
2800
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
10!
2801

2802
      if (taosHashPut(pRsp->alterTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
10!
2803

2804
      taosMemoryFreeClear(key);
10!
2805
      taosMemoryFreeClear(value);
10!
2806
    }
2807

2808
    for (int32_t i = 0; i < numOfReadViews; ++i) {
10,206✔
2809
      int32_t keyLen = 0;
79✔
2810
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
79!
2811

2812
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
79!
2813
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
79!
2814

2815
      int32_t valuelen = 0;
79✔
2816
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
79!
2817

2818
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
79!
2819
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
79!
2820

2821
      if (taosHashPut(pRsp->readViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
79!
2822

2823
      taosMemoryFreeClear(key);
79!
2824
      taosMemoryFreeClear(value);
79!
2825
    }
2826

2827
    for (int32_t i = 0; i < numOfWriteViews; ++i) {
10,189✔
2828
      int32_t keyLen = 0;
62✔
2829
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
62!
2830

2831
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
62!
2832
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
62!
2833

2834
      int32_t valuelen = 0;
62✔
2835
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
62!
2836

2837
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
62!
2838
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
62!
2839

2840
      if (taosHashPut(pRsp->writeViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
62!
2841

2842
      taosMemoryFreeClear(key);
62!
2843
      taosMemoryFreeClear(value);
62!
2844
    }
2845

2846
    for (int32_t i = 0; i < numOfAlterViews; ++i) {
10,192✔
2847
      int32_t keyLen = 0;
65✔
2848
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
65!
2849

2850
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
65!
2851
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
65!
2852

2853
      int32_t valuelen = 0;
65✔
2854
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
65!
2855

2856
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
65!
2857
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
65!
2858

2859
      if (taosHashPut(pRsp->alterViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
65!
2860

2861
      taosMemoryFreeClear(key);
65!
2862
      taosMemoryFreeClear(value);
65!
2863
    }
2864

2865
    for (int32_t i = 0; i < numOfUseDbs; ++i) {
10,356✔
2866
      int32_t keyLen = 0;
229✔
2867
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
229!
2868

2869
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
229!
2870
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
229!
2871

2872
      int32_t ref = 0;
229✔
2873
      if (tDecodeI32(pDecoder, &ref) < 0) goto _err;
229!
2874

2875
      if (taosHashPut(pRsp->useDbs, key, keyLen, &ref, sizeof(ref)) < 0) goto _err;
229!
2876
      taosMemoryFreeClear(key);
229!
2877
    }
2878
    // since 3.0.7.0
2879
    if (!tDecodeIsEnd(pDecoder)) {
10,127!
2880
      if (tDecodeI32(pDecoder, &pRsp->passVer) < 0) goto _err;
20,254!
2881
    } else {
UNCOV
2882
      pRsp->passVer = 0;
×
2883
    }
2884
    if (!tDecodeIsEnd(pDecoder)) {
10,127!
2885
      if (tDecodeI64(pDecoder, &pRsp->whiteListVer) < 0) goto _err;
20,254!
2886
    } else {
UNCOV
2887
      pRsp->whiteListVer = 0;
×
2888
    }
2889
  }
2890
  return 0;
10,127✔
2891
_err:
×
2892
  taosHashCleanup(pRsp->createdDbs);
×
2893
  taosHashCleanup(pRsp->readDbs);
×
2894
  taosHashCleanup(pRsp->writeDbs);
×
2895
  taosHashCleanup(pRsp->readTbs);
×
2896
  taosHashCleanup(pRsp->writeTbs);
×
2897
  taosHashCleanup(pRsp->alterTbs);
×
2898
  taosHashCleanup(pRsp->readViews);
×
2899
  taosHashCleanup(pRsp->writeViews);
×
2900
  taosHashCleanup(pRsp->alterViews);
×
2901
  taosHashCleanup(pRsp->useDbs);
×
2902

2903
  taosMemoryFreeClear(key);
×
2904
  taosMemoryFreeClear(value);
×
2905
  return -1;
×
2906
}
2907

2908
int32_t tDeserializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
7,396✔
2909
  SDecoder decoder = {0};
7,396✔
2910
  int32_t  code = 0;
7,396✔
2911
  int32_t  lino;
2912
  tDecoderInit(&decoder, buf, bufLen);
7,396✔
2913

2914
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7,397!
2915
  TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, pRsp));
7,396!
2916

2917
  tEndDecode(&decoder);
7,396✔
2918

2919
_exit:
7,396✔
2920
  tDecoderClear(&decoder);
7,396✔
2921
  return code;
7,397✔
2922
}
2923

2924
void tFreeSGetUserAuthRsp(SGetUserAuthRsp *pRsp) {
398,603✔
2925
  taosHashCleanup(pRsp->createdDbs);
398,603✔
2926
  taosHashCleanup(pRsp->readDbs);
398,602✔
2927
  taosHashCleanup(pRsp->writeDbs);
398,598✔
2928
  taosHashCleanup(pRsp->readTbs);
398,602✔
2929
  taosHashCleanup(pRsp->writeTbs);
398,599✔
2930
  taosHashCleanup(pRsp->alterTbs);
398,602✔
2931
  taosHashCleanup(pRsp->readViews);
398,603✔
2932
  taosHashCleanup(pRsp->writeViews);
398,601✔
2933
  taosHashCleanup(pRsp->alterViews);
398,602✔
2934
  taosHashCleanup(pRsp->useDbs);
398,602✔
2935
}
398,603✔
2936

2937
int32_t tSerializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
20✔
2938
  SEncoder encoder = {0};
20✔
2939
  int32_t  code = 0;
20✔
2940
  int32_t  lino;
2941
  int32_t  tlen;
2942

2943
  tEncoderInit(&encoder, buf, bufLen);
20✔
2944

2945
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
2946
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
40!
2947
  tEndEncode(&encoder);
20✔
2948

2949
_exit:
20✔
2950
  if (code) {
20!
2951
    tlen = code;
×
2952
  } else {
2953
    tlen = encoder.pos;
20✔
2954
  }
2955
  tEncoderClear(&encoder);
20✔
2956
  return tlen;
20✔
2957
}
2958

2959
int32_t tDeserializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
128✔
2960
  SDecoder decoder = {0};
128✔
2961
  int32_t  code = 0;
128✔
2962
  int32_t  lino;
2963
  tDecoderInit(&decoder, buf, bufLen);
128✔
2964

2965
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
128!
2966
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
128!
2967
  tEndDecode(&decoder);
128✔
2968

2969
_exit:
128✔
2970
  tDecoderClear(&decoder);
128✔
2971
  return code;
128✔
2972
}
2973

2974
int32_t tSerializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
256✔
2975
  SEncoder encoder = {0};
256✔
2976
  int32_t  code = 0;
256✔
2977
  int32_t  lino;
2978
  int32_t  tlen;
2979
  tEncoderInit(&encoder, buf, bufLen);
256✔
2980

2981
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
256!
2982
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->user));
512!
2983
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numWhiteLists));
512!
2984
  for (int i = 0; i < pRsp->numWhiteLists; ++i) {
512✔
2985
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].ip));
512!
2986
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].mask));
512!
2987
  }
2988
  tEndEncode(&encoder);
256✔
2989

2990
_exit:
256✔
2991
  if (code) {
256!
2992
    tlen = code;
×
2993
  } else {
2994
    tlen = encoder.pos;
256✔
2995
  }
2996
  tEncoderClear(&encoder);
256✔
2997
  return tlen;
256✔
2998
}
2999

3000
int32_t tDeserializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
10✔
3001
  SDecoder decoder = {0};
10✔
3002
  int32_t  code = 0;
10✔
3003
  int32_t  lino;
3004
  tDecoderInit(&decoder, buf, bufLen);
10✔
3005

3006
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
3007
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->user));
10!
3008
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numWhiteLists));
20!
3009
  pRsp->pWhiteLists = taosMemoryMalloc(pRsp->numWhiteLists * sizeof(SIpV4Range));
10!
3010
  if (pRsp->pWhiteLists == NULL) {
10!
3011
    TAOS_CHECK_EXIT(terrno);
×
3012
  }
3013
  for (int32_t i = 0; i < pRsp->numWhiteLists; ++i) {
20✔
3014
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].ip)));
20!
3015
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].mask)));
20!
3016
  }
3017

3018
  tEndDecode(&decoder);
10✔
3019
_exit:
10✔
3020
  tDecoderClear(&decoder);
10✔
3021
  return code;
10✔
3022
}
3023

3024
void tFreeSGetUserWhiteListRsp(SGetUserWhiteListRsp *pRsp) { taosMemoryFree(pRsp->pWhiteLists); }
138!
3025

3026
int32_t tSerializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
×
3027
  SEncoder encoder = {0};
×
3028
  int32_t  code = 0;
×
3029
  int32_t  lino;
3030
  int32_t  tlen;
3031
  tEncoderInit(&encoder, buf, bufLen);
×
3032

3033
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3034
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
×
3035
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
×
3036
  ENCODESQL();
×
3037
  tEndEncode(&encoder);
×
3038

3039
_exit:
×
3040
  if (code) {
×
3041
    tlen = code;
×
3042
  } else {
3043
    tlen = encoder.pos;
×
3044
  }
3045
  tEncoderClear(&encoder);
×
3046
  return tlen;
×
3047
}
3048

3049
int32_t tDeserializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
×
3050
  SDecoder decoder = {0};
×
3051
  int32_t  code = 0;
×
3052
  int32_t  lino;
3053
  tDecoderInit(&decoder, buf, bufLen);
×
3054

3055
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3056
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
×
3057
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
×
3058
  DECODESQL();
×
3059
  tEndDecode(&decoder);
×
3060

3061
_exit:
×
3062
  tDecoderClear(&decoder);
×
3063
  return code;
×
3064
}
3065

3066
void tFreeSMCfgClusterReq(SMCfgClusterReq *pReq) { FREESQL(); }
×
3067

3068
int32_t tSerializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
3,440✔
3069
  SEncoder encoder = {0};
3,440✔
3070
  int32_t  code = 0;
3,440✔
3071
  int32_t  lino;
3072
  int32_t  tlen;
3073
  tEncoderInit(&encoder, buf, bufLen);
3,440✔
3074

3075
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,440!
3076
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
6,880!
3077
  ENCODESQL();
8,288!
3078
  tEndEncode(&encoder);
3,440✔
3079

3080
_exit:
3,440✔
3081
  if (code) {
3,440!
3082
    tlen = code;
×
3083
  } else {
3084
    tlen = encoder.pos;
3,440✔
3085
  }
3086
  tEncoderClear(&encoder);
3,440✔
3087
  return tlen;
3,440✔
3088
}
3089

3090
int32_t tDeserializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
1,215✔
3091
  SDecoder decoder = {0};
1,215✔
3092
  int32_t  code = 0;
1,215✔
3093
  int32_t  lino;
3094
  tDecoderInit(&decoder, buf, bufLen);
1,215✔
3095

3096
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,215!
3097
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
2,430!
3098
  DECODESQL();
3,117!
3099
  tEndDecode(&decoder);
1,215✔
3100

3101
_exit:
1,215✔
3102
  tDecoderClear(&decoder);
1,215✔
3103
  return code;
1,215✔
3104
}
3105

3106
void tFreeSMCreateQnodeReq(SMCreateQnodeReq *pReq) { FREESQL(); }
1,896!
3107

3108
void tFreeSDDropQnodeReq(SDDropQnodeReq *pReq) { FREESQL(); }
58!
3109

3110
int32_t tSerializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
138✔
3111
  SEncoder encoder = {0};
138✔
3112
  int32_t  code = 0;
138✔
3113
  int32_t  lino;
3114
  int32_t  tlen;
3115
  tEncoderInit(&encoder, buf, bufLen);
138✔
3116

3117
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
138!
3118
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
276!
3119
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
276!
3120
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
276!
3121
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
276!
3122
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->unsafe));
276!
3123
  ENCODESQL();
414!
3124
  tEndEncode(&encoder);
138✔
3125

3126
_exit:
138✔
3127
  if (code) {
138!
3128
    tlen = code;
×
3129
  } else {
3130
    tlen = encoder.pos;
138✔
3131
  }
3132
  tEncoderClear(&encoder);
138✔
3133
  return tlen;
138✔
3134
}
3135

3136
int32_t tDeserializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
49✔
3137
  SDecoder decoder = {0};
49✔
3138
  int32_t  code = 0;
49✔
3139
  int32_t  lino;
3140
  tDecoderInit(&decoder, buf, bufLen);
49✔
3141

3142
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
49!
3143
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
98!
3144
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
49!
3145
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
98!
3146
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
98!
3147
  if (!tDecodeIsEnd(&decoder)) {
49!
3148
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->unsafe));
98!
3149
  } else {
3150
    pReq->unsafe = false;
×
3151
  }
3152

3153
  DECODESQL();
147!
3154
  tEndDecode(&decoder);
49✔
3155

3156
_exit:
49✔
3157
  tDecoderClear(&decoder);
49✔
3158
  return code;
49✔
3159
}
3160

3161
void tFreeSDropDnodeReq(SDropDnodeReq *pReq) { FREESQL(); }
118!
3162

3163
int32_t tSerializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
40✔
3164
  SEncoder encoder = {0};
40✔
3165
  int32_t  code = 0;
40✔
3166
  int32_t  lino;
3167
  int32_t  tlen;
3168
  tEncoderInit(&encoder, buf, bufLen);
40✔
3169

3170
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
40!
3171
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
80!
3172
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->restoreType));
80!
3173
  ENCODESQL();
120!
3174
  tEndEncode(&encoder);
40✔
3175

3176
_exit:
40✔
3177
  if (code) {
40!
3178
    tlen = code;
×
3179
  } else {
3180
    tlen = encoder.pos;
40✔
3181
  }
3182
  tEncoderClear(&encoder);
40✔
3183
  return tlen;
40✔
3184
}
3185

3186
int32_t tDeserializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
12✔
3187
  SDecoder decoder = {0};
12✔
3188
  int32_t  code = 0;
12✔
3189
  int32_t  lino;
3190
  tDecoderInit(&decoder, buf, bufLen);
12✔
3191

3192
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12!
3193
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
24!
3194
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->restoreType));
24!
3195
  DECODESQL();
36!
3196
  tEndDecode(&decoder);
12✔
3197

3198
_exit:
12✔
3199
  tDecoderClear(&decoder);
12✔
3200
  return code;
12✔
3201
}
3202

3203
void tFreeSRestoreDnodeReq(SRestoreDnodeReq *pReq) { FREESQL(); }
32!
3204

3205
int32_t tSerializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
520✔
3206
  SEncoder encoder = {0};
520✔
3207
  int32_t  code = 0;
520✔
3208
  int32_t  lino;
3209
  int32_t  tlen;
3210
  tEncoderInit(&encoder, buf, bufLen);
520✔
3211

3212
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
520!
3213
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
1,040!
3214
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
1,040!
3215
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
1,040!
3216
  ENCODESQL();
1,560!
3217
  tEndEncode(&encoder);
520✔
3218

3219
_exit:
520✔
3220
  if (code) {
520!
3221
    tlen = code;
×
3222
  } else {
3223
    tlen = encoder.pos;
520✔
3224
  }
3225
  tEncoderClear(&encoder);
520✔
3226
  return tlen;
520✔
3227
}
3228

3229
int32_t tDeserializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
1,139✔
3230
  SDecoder decoder = {0};
1,139✔
3231
  int32_t  code = 0;
1,139✔
3232
  int32_t  lino;
3233
  tDecoderInit(&decoder, buf, bufLen);
1,139✔
3234

3235
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,139!
3236
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
2,278!
3237
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
1,139!
3238
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
1,139!
3239
  DECODESQL();
3,417!
3240
  tEndDecode(&decoder);
1,139✔
3241

3242
_exit:
1,139✔
3243
  tDecoderClear(&decoder);
1,139✔
3244
  return code;
1,139✔
3245
}
3246

3247
void tFreeSMCfgDnodeReq(SMCfgDnodeReq *pReq) { FREESQL(); }
1,401!
3248

3249
int32_t tSerializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
2,818✔
3250
  SEncoder encoder = {0};
2,818✔
3251
  int32_t  code = 0;
2,818✔
3252
  int32_t  lino;
3253
  int32_t  tlen;
3254
  tEncoderInit(&encoder, buf, bufLen);
2,818✔
3255

3256
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,818!
3257
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->version));
5,636!
3258
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
5,636!
3259
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
5,636!
3260
  tEndEncode(&encoder);
2,818✔
3261

3262
_exit:
2,818✔
3263
  if (code) {
2,818!
3264
    tlen = code;
×
3265
  } else {
3266
    tlen = encoder.pos;
2,818✔
3267
  }
3268
  tEncoderClear(&encoder);
2,818✔
3269
  return tlen;
2,818✔
3270
}
3271

3272
int32_t tDeserializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
1,409✔
3273
  SDecoder decoder = {0};
1,409✔
3274
  int32_t  code = 0;
1,409✔
3275
  int32_t  lino;
3276
  tDecoderInit(&decoder, buf, bufLen);
1,409✔
3277

3278
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,409!
3279
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->version));
2,818!
3280
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
1,409!
3281
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
1,409!
3282
  tEndDecode(&decoder);
1,409✔
3283

3284
_exit:
1,409✔
3285
  tDecoderClear(&decoder);
1,409✔
3286
  return code;
1,409✔
3287
}
3288

3289
int32_t tSerializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
4✔
3290
  SEncoder encoder = {0};
4✔
3291
  int32_t  code = 0;
4✔
3292
  int32_t  lino;
3293
  int32_t  tlen;
3294
  tEncoderInit(&encoder, buf, bufLen);
4✔
3295

3296
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3297
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
8!
3298
  if (pReq->urlLen > 0) {
4!
3299
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
8!
3300
  }
3301
  ENCODESQL();
12!
3302
  tEndEncode(&encoder);
4✔
3303

3304
_exit:
4✔
3305
  if (code) {
4!
3306
    tlen = code;
×
3307
  } else {
3308
    tlen = encoder.pos;
4✔
3309
  }
3310
  tEncoderClear(&encoder);
4✔
3311
  return tlen;
4✔
3312
}
3313

3314
int32_t tDeserializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
2✔
3315
  SDecoder decoder = {0};
2✔
3316
  int32_t  code = 0;
2✔
3317
  int32_t  lino;
3318

3319
  tDecoderInit(&decoder, buf, bufLen);
2✔
3320

3321
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
3322
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
4!
3323
  if (pReq->urlLen > 0) {
2!
3324
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
4!
3325
  }
3326

3327
  DECODESQL();
6!
3328
  tEndDecode(&decoder);
2✔
3329

3330
_exit:
2✔
3331
  tDecoderClear(&decoder);
2✔
3332
  return code;
2✔
3333
}
3334

3335
void tFreeSMCreateAnodeReq(SMCreateAnodeReq *pReq) {
4✔
3336
  taosMemoryFreeClear(pReq->url);
4!
3337
  FREESQL();
4!
3338
}
4✔
3339

3340
int32_t tSerializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
4✔
3341
  SEncoder encoder = {0};
4✔
3342
  int32_t  code = 0;
4✔
3343
  int32_t  lino;
3344
  int32_t  tlen;
3345
  tEncoderInit(&encoder, buf, bufLen);
4✔
3346

3347
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
3348
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->anodeId));
8!
3349
  ENCODESQL();
12!
3350
  tEndEncode(&encoder);
4✔
3351

3352
_exit:
4✔
3353
  if (code) {
4!
3354
    tlen = code;
×
3355
  } else {
3356
    tlen = encoder.pos;
4✔
3357
  }
3358
  tEncoderClear(&encoder);
4✔
3359
  return tlen;
4✔
3360
}
3361

3362
int32_t tDeserializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
2✔
3363
  SDecoder decoder = {0};
2✔
3364
  int32_t  code = 0;
2✔
3365
  int32_t  lino;
3366

3367
  tDecoderInit(&decoder, buf, bufLen);
2✔
3368

3369
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
3370
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->anodeId));
4!
3371
  DECODESQL();
6!
3372
  tEndDecode(&decoder);
2✔
3373

3374
_exit:
2✔
3375
  tDecoderClear(&decoder);
2✔
3376
  return code;
2✔
3377
}
3378

3379
void tFreeSMDropAnodeReq(SMDropAnodeReq *pReq) { FREESQL(); }
4!
3380

3381
int32_t tSerializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3382
  return tSerializeSMDropAnodeReq(buf, bufLen, pReq);
×
3383
}
3384

3385
int32_t tDeserializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3386
  return tDeserializeSMDropAnodeReq(buf, bufLen, pReq);
×
3387
}
3388

3389
void tFreeSMUpdateAnodeReq(SMUpdateAnodeReq *pReq) { tFreeSMDropAnodeReq(pReq); }
×
3390

3391
int32_t tSerializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
1,064✔
3392
  SEncoder encoder = {0};
1,064✔
3393
  int32_t  code = 0;
1,064✔
3394
  int32_t  lino;
3395
  int32_t  tlen;
3396
  tEncoderInit(&encoder, buf, bufLen);
1,064✔
3397

3398
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,064!
3399
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
2,128!
3400
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
2,128!
3401
  ENCODESQL();
3,192!
3402
  tEndEncode(&encoder);
1,064✔
3403

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

3414
int32_t tDeserializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
480✔
3415
  SDecoder decoder = {0};
480✔
3416
  int32_t  code = 0;
480✔
3417
  int32_t  lino;
3418
  tDecoderInit(&decoder, buf, bufLen);
480✔
3419

3420
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
480!
3421
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
480!
3422
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
960!
3423
  DECODESQL();
1,440!
3424
  tEndDecode(&decoder);
480✔
3425

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

3431
void tFreeSCreateDnodeReq(SCreateDnodeReq *pReq) { FREESQL(); }
1,012!
3432

3433
int32_t tSerializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
62✔
3434
  SEncoder encoder = {0};
62✔
3435
  int32_t  code = 0;
62✔
3436
  int32_t  lino;
3437
  int32_t  tlen;
3438
  tEncoderInit(&encoder, buf, bufLen);
62✔
3439

3440
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
62!
3441
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
124!
3442
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
124!
3443
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->funcType));
124!
3444
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->scriptType));
124!
3445
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->outputType));
124!
3446
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->outputLen));
124!
3447
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->bufSize));
124!
3448
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->codeLen));
124!
3449
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->signature));
124!
3450

3451
  if (pReq->pCode != NULL) {
62✔
3452
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pCode, pReq->codeLen));
116!
3453
  }
3454

3455
  int32_t commentSize = 0;
62✔
3456
  if (pReq->pComment != NULL) {
62✔
3457
    commentSize = strlen(pReq->pComment) + 1;
18✔
3458
  }
3459
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, commentSize));
62!
3460
  if (pReq->pComment != NULL) {
62✔
3461
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
36!
3462
  }
3463

3464
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
124!
3465

3466
  tEndEncode(&encoder);
62✔
3467

3468
_exit:
62✔
3469
  if (code) {
62!
3470
    tlen = code;
×
3471
  } else {
3472
    tlen = encoder.pos;
62✔
3473
  }
3474
  tEncoderClear(&encoder);
62✔
3475
  return tlen;
62✔
3476
}
3477

3478
int32_t tDeserializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
27✔
3479
  SDecoder decoder = {0};
27✔
3480
  int32_t  code = 0;
27✔
3481
  int32_t  lino;
3482
  tDecoderInit(&decoder, buf, bufLen);
27✔
3483

3484
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
27!
3485
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
27!
3486
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
54!
3487
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->funcType));
54!
3488
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->scriptType));
54!
3489
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->outputType));
54!
3490
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->outputLen));
54!
3491
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->bufSize));
54!
3492
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->codeLen));
54!
3493
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->signature));
54!
3494

3495
  if (pReq->codeLen > 0) {
27✔
3496
    pReq->pCode = taosMemoryCalloc(1, pReq->codeLen);
25!
3497
    if (pReq->pCode == NULL) {
25!
3498
      TAOS_CHECK_EXIT(terrno);
×
3499
    }
3500
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCode));
25!
3501
  }
3502

3503
  int32_t commentSize = 0;
27✔
3504
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &commentSize));
27!
3505
  if (commentSize > 0) {
27✔
3506
    pReq->pComment = taosMemoryCalloc(1, commentSize);
9!
3507
    if (pReq->pComment == NULL) {
9!
3508
      TAOS_CHECK_EXIT(terrno);
×
3509
    }
3510
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
9!
3511
  }
3512

3513
  if (!tDecodeIsEnd(&decoder)) {
27!
3514
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
54!
3515
  } else {
3516
    pReq->orReplace = false;
×
3517
  }
3518

3519
  tEndDecode(&decoder);
27✔
3520

3521
_exit:
27✔
3522
  tDecoderClear(&decoder);
27✔
3523
  return code;
27✔
3524
}
3525

3526
void tFreeSCreateFuncReq(SCreateFuncReq *pReq) {
58✔
3527
  taosMemoryFree(pReq->pCode);
58!
3528
  taosMemoryFree(pReq->pComment);
58!
3529
}
58✔
3530

3531
int32_t tSerializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
14✔
3532
  SEncoder encoder = {0};
14✔
3533
  int32_t  code = 0;
14✔
3534
  int32_t  lino;
3535
  int32_t  tlen;
3536
  tEncoderInit(&encoder, buf, bufLen);
14✔
3537

3538
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
3539
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
28!
3540
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
28!
3541
  tEndEncode(&encoder);
14✔
3542

3543
_exit:
14✔
3544
  if (code) {
14!
3545
    tlen = code;
×
3546
  } else {
3547
    tlen = encoder.pos;
14✔
3548
  }
3549
  tEncoderClear(&encoder);
14✔
3550
  return tlen;
14✔
3551
}
3552

3553
int32_t tDeserializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
7✔
3554
  SDecoder decoder = {0};
7✔
3555
  int32_t  code = 0;
7✔
3556
  int32_t  lino;
3557
  tDecoderInit(&decoder, buf, bufLen);
7✔
3558

3559
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
7!
3560
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
7!
3561
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
14!
3562
  tEndDecode(&decoder);
7✔
3563

3564
_exit:
7✔
3565
  tDecoderClear(&decoder);
7✔
3566
  return code;
7✔
3567
}
3568

3569
int32_t tSerializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
480✔
3570
  SEncoder encoder = {0};
480✔
3571
  int32_t  code = 0;
480✔
3572
  int32_t  lino;
3573
  int32_t  tlen;
3574
  tEncoderInit(&encoder, buf, bufLen);
480✔
3575

3576
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
480!
3577
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
960!
3578
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreCodeComment));
960!
3579

3580
  if (pReq->numOfFuncs != (int32_t)taosArrayGetSize(pReq->pFuncNames)) {
480!
3581
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3582
  }
3583
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
3,010✔
3584
    char *fname = taosArrayGet(pReq->pFuncNames, i);
2,530✔
3585
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, fname));
2,530!
3586
  }
3587

3588
  tEndEncode(&encoder);
480✔
3589

3590
_exit:
480✔
3591
  if (code) {
480!
3592
    tlen = code;
×
3593
  } else {
3594
    tlen = encoder.pos;
480✔
3595
  }
3596
  tEncoderClear(&encoder);
480✔
3597
  return tlen;
480✔
3598
}
3599

3600
int32_t tDeserializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
239✔
3601
  SDecoder decoder = {0};
239✔
3602
  int32_t  code = 0;
239✔
3603
  int32_t  lino;
3604
  tDecoderInit(&decoder, buf, bufLen);
239✔
3605

3606
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
239!
3607
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
478!
3608
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->ignoreCodeComment));
478!
3609

3610
  pReq->pFuncNames = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN);
239✔
3611
  if (pReq->pFuncNames == NULL) {
239!
3612
    TAOS_CHECK_EXIT(terrno);
×
3613
  }
3614

3615
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
1,503✔
3616
    char fname[TSDB_FUNC_NAME_LEN] = {0};
1,264✔
3617
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fname));
1,264!
3618
    if (taosArrayPush(pReq->pFuncNames, fname) == NULL) {
2,528!
3619
      TAOS_CHECK_EXIT(terrno);
×
3620
    }
3621
  }
3622
  tEndDecode(&decoder);
239✔
3623

3624
_exit:
239✔
3625
  tDecoderClear(&decoder);
239✔
3626
  return code;
239✔
3627
}
3628

3629
void tFreeSRetrieveFuncReq(SRetrieveFuncReq *pReq) { taosArrayDestroy(pReq->pFuncNames); }
247✔
3630

3631
int32_t tSerializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
452✔
3632
  SEncoder encoder = {0};
452✔
3633
  int32_t  code = 0;
452✔
3634
  int32_t  lino;
3635
  int32_t  tlen;
3636
  tEncoderInit(&encoder, buf, bufLen);
452✔
3637

3638
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
452!
3639
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfFuncs));
904!
3640

3641
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncInfos)) {
452!
3642
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3643
  }
3644
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
906✔
3645
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
454✔
3646

3647
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->name));
908!
3648
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->funcType));
908!
3649
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->scriptType));
908!
3650
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->outputType));
908!
3651
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->outputLen));
908!
3652
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->bufSize));
908!
3653
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pInfo->signature));
908!
3654
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->codeSize));
908!
3655
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->commentSize));
908!
3656
    if (pInfo->codeSize) {
454✔
3657
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pInfo->pCode, pInfo->codeSize));
560!
3658
    }
3659
    if (pInfo->commentSize) {
454✔
3660
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->pComment));
20!
3661
    }
3662
  }
3663

3664
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncExtraInfos)) {
452!
3665
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3666
  }
3667
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
906✔
3668
    SFuncExtraInfo *extraInfo = taosArrayGet(pRsp->pFuncExtraInfos, i);
454✔
3669
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, extraInfo->funcVersion));
908!
3670
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, extraInfo->funcCreatedTime));
908!
3671
  }
3672

3673
  tEndEncode(&encoder);
452✔
3674

3675
_exit:
452✔
3676
  if (code) {
452!
3677
    tlen = code;
×
3678
  } else {
3679
    tlen = encoder.pos;
452✔
3680
  }
3681
  tEncoderClear(&encoder);
452✔
3682
  return tlen;
452✔
3683
}
3684

3685
int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
226✔
3686
  SDecoder decoder = {0};
226✔
3687
  int32_t  code = 0;
226✔
3688
  int32_t  lino;
3689
  tDecoderInit(&decoder, buf, bufLen);
226✔
3690

3691
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
226!
3692
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfFuncs));
452!
3693

3694
  pRsp->pFuncInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncInfo));
226✔
3695
  if (pRsp->pFuncInfos == NULL) {
226!
3696
    TAOS_CHECK_EXIT(terrno);
×
3697
  }
3698

3699
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
453✔
3700
    SFuncInfo fInfo = {0};
227✔
3701
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.name));
227!
3702
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.funcType));
227!
3703
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.scriptType));
227!
3704
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.outputType));
227!
3705
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.outputLen));
227!
3706
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.bufSize));
227!
3707
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &fInfo.signature));
227!
3708
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.codeSize));
227!
3709
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.commentSize));
227!
3710
    if (fInfo.codeSize) {
227✔
3711
      fInfo.pCode = taosMemoryCalloc(1, fInfo.codeSize);
140!
3712
      if (fInfo.pCode == NULL) {
140!
3713
        TAOS_CHECK_EXIT(terrno);
×
3714
      }
3715
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pCode));
140!
3716
    }
3717
    if (fInfo.commentSize) {
227✔
3718
      fInfo.pComment = taosMemoryCalloc(1, fInfo.commentSize);
5!
3719
      if (fInfo.pComment == NULL) {
5!
3720
        TAOS_CHECK_EXIT(terrno);
×
3721
      }
3722
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pComment));
5!
3723
    }
3724

3725
    if (taosArrayPush(pRsp->pFuncInfos, &fInfo) == NULL) {
454!
3726
      TAOS_CHECK_EXIT(terrno);
×
3727
    }
3728
  }
3729

3730
  pRsp->pFuncExtraInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncExtraInfo));
226✔
3731
  if (pRsp->pFuncExtraInfos == NULL) {
226!
3732
    TAOS_CHECK_EXIT(terrno);
×
3733
  }
3734
  if (tDecodeIsEnd(&decoder)) {
226!
3735
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
×
3736
      SFuncExtraInfo extraInfo = {0};
×
3737
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
×
3738
        TAOS_CHECK_EXIT(terrno);
×
3739
      }
3740
    }
3741
  } else {
3742
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
453✔
3743
      SFuncExtraInfo extraInfo = {0};
227✔
3744
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &extraInfo.funcVersion));
227!
3745
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &extraInfo.funcCreatedTime));
227!
3746
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
454!
3747
        TAOS_CHECK_EXIT(terrno);
×
3748
      }
3749
    }
3750
  }
3751
  tEndDecode(&decoder);
226✔
3752

3753
_exit:
226✔
3754
  tDecoderClear(&decoder);
226✔
3755
  return code;
226✔
3756
}
3757

3758
void tFreeSFuncInfo(SFuncInfo *pInfo) {
578✔
3759
  if (NULL == pInfo) {
578!
3760
    return;
×
3761
  }
3762

3763
  taosMemoryFree(pInfo->pCode);
578!
3764
  taosMemoryFree(pInfo->pComment);
578!
3765
}
3766

3767
void tFreeSRetrieveFuncRsp(SRetrieveFuncRsp *pRsp) {
244✔
3768
  int32_t size = taosArrayGetSize(pRsp->pFuncInfos);
244✔
3769
  for (int32_t i = 0; i < size; ++i) {
477✔
3770
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
233✔
3771
    tFreeSFuncInfo(pInfo);
233✔
3772
  }
3773
  taosArrayDestroy(pRsp->pFuncInfos);
244✔
3774
  taosArrayDestroy(pRsp->pFuncExtraInfos);
244✔
3775
}
244✔
3776

3777
int32_t tSerializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
198✔
3778
  int32_t code = 0;
198✔
3779
  int32_t lino;
3780
  int32_t headLen = sizeof(SMsgHead);
198✔
3781
  if (buf != NULL) {
198✔
3782
    buf = (char *)buf + headLen;
99✔
3783
    bufLen -= headLen;
99✔
3784
  }
3785

3786
  SEncoder encoder = {0};
198✔
3787
  tEncoderInit(&encoder, buf, bufLen);
198✔
3788

3789
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
198!
3790
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
396!
3791
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
396!
3792
  tEndEncode(&encoder);
198✔
3793

3794
_exit:
198✔
3795
  if (code) {
198!
3796
    tEncoderClear(&encoder);
×
3797
    return code;
×
3798
  } else {
3799
    int32_t tlen = encoder.pos;
198✔
3800
    tEncoderClear(&encoder);
198✔
3801

3802
    if (buf != NULL) {
198✔
3803
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
99✔
3804
      pHead->vgId = htonl(pReq->header.vgId);
99✔
3805
      pHead->contLen = htonl(tlen + headLen);
99✔
3806
    }
3807

3808
    return tlen + headLen;
198✔
3809
  }
3810
}
3811

3812
int32_t tDeserializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
119✔
3813
  int32_t headLen = sizeof(SMsgHead);
119✔
3814

3815
  int32_t   code = 0;
119✔
3816
  int32_t   lino;
3817
  SMsgHead *pHead = buf;
119✔
3818
  pHead->vgId = pReq->header.vgId;
119✔
3819
  pHead->contLen = pReq->header.contLen;
119✔
3820

3821
  SDecoder decoder = {0};
119✔
3822
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
119✔
3823

3824
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
119!
3825
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
119!
3826
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
119!
3827

3828
  tEndDecode(&decoder);
119✔
3829
_exit:
119✔
3830
  tDecoderClear(&decoder);
119✔
3831
  return code;
119✔
3832
}
3833

3834
int32_t tSerializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
240✔
3835
  SEncoder encoder = {0};
240✔
3836
  int32_t  code = 0;
240✔
3837
  int32_t  lino;
3838
  int32_t  tlen;
3839
  tEncoderInit(&encoder, buf, bufLen);
240✔
3840

3841
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
240!
3842
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
480!
3843
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->stbName));
480!
3844
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
480!
3845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfTags));
480!
3846
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfColumns));
480!
3847
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->tableType));
480!
3848
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay1));
480!
3849
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay2));
480!
3850
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark1));
480!
3851
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark2));
480!
3852
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->ttl));
480!
3853

3854
  int32_t numOfFuncs = taosArrayGetSize(pRsp->pFuncs);
240✔
3855
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfFuncs));
240!
3856
  for (int32_t i = 0; i < numOfFuncs; ++i) {
240!
3857
    const char *pFunc = taosArrayGet(pRsp->pFuncs, i);
×
3858
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
×
3859
  }
3860

3861
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->commentLen));
480!
3862
  if (pRsp->commentLen > 0) {
240!
3863
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->pComment));
×
3864
  }
3865

3866
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
2,652✔
3867
    SSchema *pSchema = &pRsp->pSchemas[i];
2,412✔
3868
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
2,412!
3869
  }
3870

3871
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->tagsLen));
480!
3872
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pRsp->pTags, pRsp->tagsLen));
480!
3873

3874
  if (useCompress(pRsp->tableType)) {
240✔
3875
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
1,800✔
3876
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
1,562✔
3877
      TAOS_CHECK_EXIT(tEncodeSSchemaExt(&encoder, pSchemaExt));
1,562!
3878
    }
3879
  }
3880

3881
  tEndEncode(&encoder);
240✔
3882

3883
_exit:
240✔
3884
  if (code) {
240!
3885
    tlen = code;
×
3886
  } else {
3887
    tlen = encoder.pos;
240✔
3888
  }
3889
  tEncoderClear(&encoder);
240✔
3890
  return tlen;
240✔
3891
}
3892

3893
int32_t tDeserializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
99✔
3894
  SDecoder decoder = {0};
99✔
3895
  int32_t  code = 0;
99✔
3896
  int32_t  lino;
3897
  tDecoderInit(&decoder, buf, bufLen);
99✔
3898

3899
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
99!
3900
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
99!
3901
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->stbName));
99!
3902
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
99!
3903
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfTags));
198!
3904
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfColumns));
198!
3905
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->tableType));
198!
3906
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay1));
198!
3907
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay2));
198!
3908
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark1));
198!
3909
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark2));
198!
3910
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->ttl));
198!
3911

3912
  int32_t numOfFuncs = 0;
99✔
3913
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFuncs));
99!
3914
  if (numOfFuncs > 0) {
99!
3915
    pRsp->pFuncs = taosArrayInit(numOfFuncs, TSDB_FUNC_NAME_LEN);
×
3916
    if (NULL == pRsp->pFuncs) {
×
3917
      TAOS_CHECK_EXIT(terrno);
×
3918
    }
3919
  }
3920
  for (int32_t i = 0; i < numOfFuncs; ++i) {
99!
3921
    char pFunc[TSDB_FUNC_NAME_LEN];
3922
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
×
3923
    if (taosArrayPush(pRsp->pFuncs, pFunc) == NULL) {
×
3924
      TAOS_CHECK_EXIT(terrno);
×
3925
    }
3926
  }
3927

3928
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->commentLen));
198!
3929
  if (pRsp->commentLen > 0) {
99!
3930
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pRsp->pComment));
×
3931
  } else {
3932
    pRsp->pComment = NULL;
99✔
3933
  }
3934

3935
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
99✔
3936
  pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
99!
3937
  if (pRsp->pSchemas == NULL) {
99!
3938
    TAOS_CHECK_EXIT(terrno);
×
3939
  }
3940

3941
  for (int32_t i = 0; i < totalCols; ++i) {
489✔
3942
    SSchema *pSchema = &pRsp->pSchemas[i];
390✔
3943
    TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
390!
3944
  }
3945

3946
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->tagsLen));
198!
3947
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pRsp->pTags, NULL));
198!
3948

3949
  if (!tDecodeIsEnd(&decoder)) {
99✔
3950
    if (useCompress(pRsp->tableType) && pRsp->numOfColumns > 0) {
98!
3951
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
98!
3952
      if (pRsp->pSchemaExt == NULL) {
98!
3953
        TAOS_CHECK_EXIT(terrno);
×
3954
      }
3955

3956
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
369✔
3957
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
271✔
3958
        TAOS_CHECK_EXIT(tDecodeSSchemaExt(&decoder, pSchemaExt));
271!
3959
      }
3960
    } else {
3961
      pRsp->pSchemaExt = NULL;
×
3962
    }
3963
  }
3964
  tEndDecode(&decoder);
99✔
3965

3966
_exit:
99✔
3967
  tDecoderClear(&decoder);
99✔
3968
  return code;
99✔
3969
}
3970

3971
void tFreeSTableCfgRsp(STableCfgRsp *pRsp) {
219✔
3972
  if (NULL == pRsp) {
219!
3973
    return;
×
3974
  }
3975

3976
  taosMemoryFreeClear(pRsp->pComment);
219!
3977
  taosMemoryFreeClear(pRsp->pSchemas);
219!
3978
  taosMemoryFreeClear(pRsp->pSchemaExt);
219!
3979
  taosMemoryFreeClear(pRsp->pTags);
219!
3980

3981
  taosArrayDestroy(pRsp->pFuncs);
219✔
3982
}
3983

3984
int32_t tSerializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
9,894✔
3985
  SEncoder encoder = {0};
9,894✔
3986
  int32_t  code = 0;
9,894✔
3987
  int32_t  lino;
3988
  int32_t  tlen;
3989

3990
  tEncoderInit(&encoder, buf, bufLen);
9,894✔
3991

3992
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
9,894!
3993
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
19,788!
3994
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfVgroups));
19,788!
3995
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
19,788!
3996
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
19,788!
3997
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
19,788!
3998
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
19,788!
3999
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
19,788!
4000
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
19,788!
4001
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
19,788!
4002
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
19,788!
4003
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
19,788!
4004
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
19,788!
4005
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
19,788!
4006
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
19,788!
4007
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
19,788!
4008
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
19,788!
4009
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
19,788!
4010
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
19,788!
4011
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
19,788!
4012
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
19,788!
4013
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->schemaless));
19,788!
4014
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
19,788!
4015
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
19,788!
4016
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
19,788!
4017
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
19,788!
4018
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
19,788!
4019
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
19,788!
4020
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
19,788!
4021
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreExist));
19,788!
4022
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
19,788!
4023
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
9,948✔
4024
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
54✔
4025
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
108!
4026
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
108!
4027
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
108!
4028
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
108!
4029
  }
4030
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
19,788!
4031
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
19,788!
4032

4033
  ENCODESQL();
29,664!
4034

4035
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
19,788!
4036
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
19,788!
4037
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
19,788!
4038
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
19,788!
4039
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
19,788!
4040
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeListStr));
19,788!
4041

4042
  // auto-compact parameters
4043
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
19,788!
4044
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
19,788!
4045
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
19,788!
4046
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
19,788!
4047

4048
  tEndEncode(&encoder);
9,894✔
4049

4050
_exit:
9,894✔
4051
  if (code) {
9,894!
4052
    tlen = code;
×
4053
  } else {
4054
    tlen = encoder.pos;
9,894✔
4055
  }
4056
  tEncoderClear(&encoder);
9,894✔
4057
  return tlen;
9,894✔
4058
}
4059

4060
int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
4,915✔
4061
  SDecoder decoder = {0};
4,915✔
4062
  int32_t  code = 0;
4,915✔
4063
  int32_t  lino;
4064
  tDecoderInit(&decoder, buf, bufLen);
4,915✔
4065

4066
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,915!
4067
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4,915!
4068
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfVgroups));
9,830!
4069
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
9,830!
4070
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
9,830!
4071
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
9,830!
4072
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
9,830!
4073
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
9,830!
4074
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
9,830!
4075
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
9,830!
4076
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
9,830!
4077
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
9,830!
4078
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
9,830!
4079
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
9,830!
4080
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
9,830!
4081
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
9,830!
4082
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
9,830!
4083
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
9,830!
4084
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
9,830!
4085
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
9,830!
4086
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
9,830!
4087
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->schemaless));
9,830!
4088
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
9,830!
4089
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
9,830!
4090
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
9,830!
4091
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
9,830!
4092
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
9,830!
4093
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
9,830!
4094
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
9,830!
4095
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreExist));
9,830!
4096
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
9,830!
4097
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
4,915✔
4098
  if (pReq->pRetensions == NULL) {
4,915!
4099
    TAOS_CHECK_EXIT(terrno);
×
4100
  }
4101

4102
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
4,936✔
4103
    SRetention rentension = {0};
21✔
4104
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
21!
4105
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
21!
4106
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
21!
4107
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
21!
4108
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
42!
4109
      TAOS_CHECK_EXIT(terrno);
×
4110
    }
4111
  }
4112

4113
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
9,830!
4114

4115
  if (!tDecodeIsEnd(&decoder)) {
4,915!
4116
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
9,830!
4117
  } else {
4118
    pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
4119
  }
4120

4121
  DECODESQL();
14,736!
4122

4123
  if (!tDecodeIsEnd(&decoder)) {
4,915!
4124
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
9,830!
4125
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
9,830!
4126
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
9,830!
4127
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
9,830!
4128
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
9,830!
4129
  } else {
4130
    pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
4131
    pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
4132
    pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
4133
    pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
4134
    pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
4135
  }
4136

4137
  if (!tDecodeIsEnd(&decoder)) {
4,915!
4138
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeListStr));
4,915!
4139
  }
4140

4141
  if (!tDecodeIsEnd(&decoder)) {
4,915!
4142
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
9,830!
4143
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
9,830!
4144
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
9,830!
4145
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
9,830!
4146
  } else {
4147
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4148
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4149
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4150
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4151
  }
4152

4153
  tEndDecode(&decoder);
4,915✔
4154

4155
_exit:
4,915✔
4156
  tDecoderClear(&decoder);
4,915✔
4157
  return code;
4,915✔
4158
}
4159

4160
void tFreeSCreateDbReq(SCreateDbReq *pReq) {
9,927✔
4161
  taosArrayDestroy(pReq->pRetensions);
9,927✔
4162
  pReq->pRetensions = NULL;
9,927✔
4163
  FREESQL();
9,927!
4164
}
9,927✔
4165

4166
int32_t tSerializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
490✔
4167
  SEncoder encoder = {0};
490✔
4168
  int32_t  code = 0;
490✔
4169
  int32_t  lino;
4170
  int32_t  tlen;
4171

4172
  tEncoderInit(&encoder, buf, bufLen);
490✔
4173

4174
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
490!
4175
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
980!
4176
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
980!
4177
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
980!
4178
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
980!
4179
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
980!
4180
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
980!
4181
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
980!
4182
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
980!
4183
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
980!
4184
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
980!
4185
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
980!
4186
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
980!
4187
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
980!
4188
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
980!
4189
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
980!
4190

4191
  // 1st modification
4192
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
980!
4193
  // 2nd modification
4194
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
980!
4195
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
980!
4196
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
980!
4197

4198
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
980!
4199
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
980!
4200

4201
  ENCODESQL();
1,470!
4202
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
980!
4203
  // auto compact config
4204
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
980!
4205
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
980!
4206
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
980!
4207
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
980!
4208
  tEndEncode(&encoder);
490✔
4209

4210
_exit:
490✔
4211
  if (code) {
490!
4212
    tlen = code;
×
4213
  } else {
4214
    tlen = encoder.pos;
490✔
4215
  }
4216
  tEncoderClear(&encoder);
490✔
4217
  return tlen;
490✔
4218
}
4219

4220
int32_t tDeserializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
302✔
4221
  SDecoder decoder = {0};
302✔
4222
  int32_t  code = 0;
302✔
4223
  int32_t  lino;
4224
  tDecoderInit(&decoder, buf, bufLen);
302✔
4225

4226
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
302!
4227
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
302!
4228
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
604!
4229
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
604!
4230
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
604!
4231
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
604!
4232
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
604!
4233
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
604!
4234
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
604!
4235
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
604!
4236
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
604!
4237
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
604!
4238
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
604!
4239
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
604!
4240
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
604!
4241
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
604!
4242

4243
  // 1st modification
4244
  if (!tDecodeIsEnd(&decoder)) {
302!
4245
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
604!
4246
  } else {
4247
    pReq->minRows = -1;
×
4248
  }
4249

4250
  // 2nd modification
4251
  if (!tDecodeIsEnd(&decoder)) {
302!
4252
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
604!
4253
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
604!
4254
  } else {
4255
    pReq->walRetentionPeriod = -1;
×
4256
    pReq->walRetentionSize = -1;
×
4257
  }
4258
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
302✔
4259
  if (!tDecodeIsEnd(&decoder)) {
302!
4260
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
604!
4261
  }
4262

4263
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
302✔
4264
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
302✔
4265
  if (!tDecodeIsEnd(&decoder)) {
302!
4266
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
604!
4267
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
604!
4268
  }
4269

4270
  DECODESQL();
906!
4271
  pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
302✔
4272
  if (!tDecodeIsEnd(&decoder)) {
302!
4273
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
604!
4274
  }
4275

4276
  // auto compact config
4277
  if (!tDecodeIsEnd(&decoder)) {
302!
4278
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
604!
4279
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
604!
4280
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
604!
4281
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
604!
4282
  } else {
4283
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4284
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4285
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4286
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4287
  }
4288
  tEndDecode(&decoder);
302✔
4289

4290
_exit:
302✔
4291
  tDecoderClear(&decoder);
302✔
4292
  return code;
302✔
4293
}
4294

4295
void tFreeSAlterDbReq(SAlterDbReq *pReq) { FREESQL(); }
547!
4296

4297
int32_t tSerializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
6,886✔
4298
  SEncoder encoder = {0};
6,886✔
4299
  int32_t  code = 0;
6,886✔
4300
  int32_t  lino;
4301
  int32_t  tlen;
4302
  tEncoderInit(&encoder, buf, bufLen);
6,886✔
4303

4304
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,886!
4305
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
13,772!
4306
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreNotExists));
13,772!
4307
  ENCODESQL();
20,642!
4308
  tEndEncode(&encoder);
6,886✔
4309

4310
_exit:
6,886✔
4311
  if (code) {
6,886!
4312
    tlen = code;
×
4313
  } else {
4314
    tlen = encoder.pos;
6,886✔
4315
  }
4316
  tEncoderClear(&encoder);
6,886✔
4317
  return tlen;
6,886✔
4318
}
4319

4320
int32_t tDeserializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
3,845✔
4321
  SDecoder decoder = {0};
3,845✔
4322
  int32_t  code = 0;
3,845✔
4323
  int32_t  lino;
4324
  tDecoderInit(&decoder, buf, bufLen);
3,845✔
4325

4326
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,845!
4327
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
3,845!
4328
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreNotExists));
7,690!
4329
  DECODESQL();
11,527!
4330
  tEndDecode(&decoder);
3,845✔
4331

4332
_exit:
3,845✔
4333
  tDecoderClear(&decoder);
3,845✔
4334
  return code;
3,845✔
4335
}
4336

4337
void tFreeSDropDbReq(SDropDbReq *pReq) { FREESQL(); }
7,280!
4338

4339
int32_t tSerializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
7,530✔
4340
  SEncoder encoder = {0};
7,530✔
4341
  int32_t  code = 0;
7,530✔
4342
  int32_t  lino;
4343
  int32_t  tlen;
4344
  tEncoderInit(&encoder, buf, bufLen);
7,530✔
4345

4346
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,530!
4347
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->db));
15,060!
4348
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->uid));
15,060!
4349
  tEndEncode(&encoder);
7,530✔
4350

4351
_exit:
7,530✔
4352
  if (code) {
7,530!
4353
    tlen = code;
×
4354
  } else {
4355
    tlen = encoder.pos;
7,530✔
4356
  }
4357
  tEncoderClear(&encoder);
7,530✔
4358
  return tlen;
7,530✔
4359
}
4360

4361
int32_t tDeserializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
3,353✔
4362
  SDecoder decoder = {0};
3,353✔
4363
  int32_t  code = 0;
3,353✔
4364
  int32_t  lino;
4365
  tDecoderInit(&decoder, buf, bufLen);
3,353✔
4366

4367
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,353!
4368
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->db));
3,353!
4369
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->uid));
6,706!
4370
  tEndDecode(&decoder);
3,353✔
4371

4372
_exit:
3,353✔
4373
  tDecoderClear(&decoder);
3,353✔
4374
  return code;
3,353✔
4375
}
4376

4377
int32_t tSerializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
155,688✔
4378
  SEncoder encoder = {0};
155,688✔
4379
  int32_t  code = 0;
155,688✔
4380
  int32_t  lino;
4381
  int32_t  tlen;
4382
  tEncoderInit(&encoder, buf, bufLen);
155,688✔
4383

4384
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
155,688!
4385
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
311,378!
4386
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbId));
311,378!
4387
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
311,378!
4388
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTable));
311,378!
4389
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stateTs));
311,378!
4390
  tEndEncode(&encoder);
155,689✔
4391

4392
_exit:
155,688✔
4393
  if (code) {
155,688!
4394
    tlen = code;
×
4395
  } else {
4396
    tlen = encoder.pos;
155,688✔
4397
  }
4398
  tEncoderClear(&encoder);
155,688✔
4399
  return tlen;
155,689✔
4400
}
4401

4402
int32_t tDeserializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
2,837,916✔
4403
  SDecoder decoder = {0};
2,837,916✔
4404
  int32_t  code = 0;
2,837,916✔
4405
  int32_t  lino;
4406
  tDecoderInit(&decoder, buf, bufLen);
2,837,916✔
4407

4408
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,837,918!
4409
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
2,837,921!
4410
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbId));
5,675,791!
4411
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
5,675,780!
4412
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTable));
5,675,770!
4413
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stateTs));
5,675,767!
4414
  tEndDecode(&decoder);
2,837,883✔
4415

4416
_exit:
2,837,882✔
4417
  tDecoderClear(&decoder);
2,837,882✔
4418
  return code;
2,837,925✔
4419
}
4420

4421
int32_t tSerializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
20,564✔
4422
  SEncoder encoder = {0};
20,564✔
4423
  int32_t  code = 0;
20,564✔
4424
  int32_t  lino;
4425
  int32_t  tlen;
4426

4427
  tEncoderInit(&encoder, buf, bufLen);
20,564✔
4428

4429
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20,564!
4430
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
41,128!
4431
  tEndEncode(&encoder);
20,564✔
4432

4433
_exit:
20,564✔
4434
  if (code) {
20,564!
4435
    tlen = code;
×
4436
  } else {
4437
    tlen = encoder.pos;
20,564✔
4438
  }
4439
  tEncoderClear(&encoder);
20,564✔
4440
  return tlen;
20,564✔
4441
}
4442

4443
int32_t tDeserializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
10,085✔
4444
  SDecoder decoder = {0};
10,085✔
4445
  int32_t  code = 0;
10,085✔
4446
  int32_t  lino;
4447
  tDecoderInit(&decoder, buf, bufLen);
10,085✔
4448

4449
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,085!
4450
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->rowNum));
20,170!
4451
  tEndDecode(&decoder);
10,085✔
4452

4453
_exit:
10,085✔
4454
  tDecoderClear(&decoder);
10,085✔
4455
  return code;
10,085✔
4456
}
4457

4458
int32_t tSerializeSDnodeListReq(void *buf, int32_t bufLen, SDnodeListReq *pReq) {
694✔
4459
  SEncoder encoder = {0};
694✔
4460
  int32_t  code = 0;
694✔
4461
  int32_t  lino;
4462
  int32_t  tlen;
4463
  tEncoderInit(&encoder, buf, bufLen);
694✔
4464

4465
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
694!
4466
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
1,388!
4467
  tEndEncode(&encoder);
694✔
4468

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

4479
int32_t tSerializeSServerVerReq(void *buf, int32_t bufLen, SServerVerReq *pReq) {
2✔
4480
  SEncoder encoder = {0};
2✔
4481
  int32_t  code = 0;
2✔
4482
  int32_t  lino;
4483
  int32_t  tlen;
4484
  tEncoderInit(&encoder, buf, bufLen);
2✔
4485

4486
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4487
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
4!
4488
  tEndEncode(&encoder);
2✔
4489

4490
_exit:
2✔
4491
  if (code) {
2!
4492
    tlen = code;
×
4493
  } else {
4494
    tlen = encoder.pos;
2✔
4495
  }
4496
  tEncoderClear(&encoder);
2✔
4497
  return tlen;
2✔
4498
}
4499

4500
int32_t tSerializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
2✔
4501
  SEncoder encoder = {0};
2✔
4502
  int32_t  code = 0;
2✔
4503
  int32_t  lino;
4504
  int32_t  tlen;
4505
  tEncoderInit(&encoder, buf, bufLen);
2✔
4506

4507
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4508
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->ver));
4!
4509
  tEndEncode(&encoder);
2✔
4510

4511
_exit:
2✔
4512
  if (code) {
2!
4513
    tlen = code;
×
4514
  } else {
4515
    tlen = encoder.pos;
2✔
4516
  }
4517
  tEncoderClear(&encoder);
2✔
4518
  return tlen;
2✔
4519
}
4520

4521
int32_t tDeserializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
1✔
4522
  SDecoder decoder = {0};
1✔
4523
  int32_t  code = 0;
1✔
4524
  int32_t  lino;
4525
  tDecoderInit(&decoder, buf, bufLen);
1✔
4526

4527
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
4528
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->ver));
1!
4529

4530
  tEndDecode(&decoder);
1✔
4531
_exit:
1✔
4532
  tDecoderClear(&decoder);
1✔
4533
  return code;
1✔
4534
}
4535

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

4543
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20,172!
4544
  int32_t num = taosArrayGetSize(pRsp->qnodeList);
20,172✔
4545
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
20,172!
4546
  for (int32_t i = 0; i < num; ++i) {
39,570✔
4547
    SQueryNodeLoad *pLoad = taosArrayGet(pRsp->qnodeList, i);
19,398✔
4548
    TAOS_CHECK_EXIT(tEncodeSQueryNodeLoad(&encoder, pLoad));
19,398!
4549
  }
4550
  tEndEncode(&encoder);
20,172✔
4551

4552
_exit:
20,172✔
4553
  if (code) {
20,172!
4554
    tlen = code;
×
4555
  } else {
4556
    tlen = encoder.pos;
20,172✔
4557
  }
4558
  tEncoderClear(&encoder);
20,172✔
4559
  return tlen;
20,172✔
4560
}
4561

4562
int32_t tDeserializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
10,282✔
4563
  SDecoder decoder = {0};
10,282✔
4564
  int32_t  code = 0;
10,282✔
4565
  int32_t  lino;
4566
  tDecoderInit(&decoder, buf, bufLen);
10,282✔
4567

4568
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,282!
4569
  int32_t num = 0;
10,282✔
4570
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
10,282!
4571
  if (NULL == pRsp->qnodeList) {
10,282!
4572
    pRsp->qnodeList = taosArrayInit(num, sizeof(SQueryNodeLoad));
×
4573
    if (NULL == pRsp->qnodeList) {
×
4574
      TAOS_CHECK_EXIT(terrno);
×
4575
    }
4576
  }
4577

4578
  for (int32_t i = 0; i < num; ++i) {
19,981✔
4579
    SQueryNodeLoad load = {0};
9,699✔
4580
    TAOS_CHECK_EXIT(tDecodeSQueryNodeLoad(&decoder, &load));
9,699!
4581
    if (taosArrayPush(pRsp->qnodeList, &load) == NULL) {
19,398!
4582
      TAOS_CHECK_EXIT(terrno);
×
4583
    }
4584
  }
4585
  tEndDecode(&decoder);
10,282✔
4586

4587
_exit:
10,282✔
4588
  tDecoderClear(&decoder);
10,282✔
4589
  return code;
10,282✔
4590
}
4591

4592
void tFreeSQnodeListRsp(SQnodeListRsp *pRsp) { taosArrayDestroy(pRsp->qnodeList); }
10,086✔
4593

4594
int32_t tSerializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
15,058✔
4595
  SEncoder encoder = {0};
15,058✔
4596
  int32_t  code = 0;
15,058✔
4597
  int32_t  lino;
4598
  int32_t  tlen;
4599
  tEncoderInit(&encoder, buf, bufLen);
15,058✔
4600

4601
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
15,058!
4602
  int32_t num = taosArrayGetSize(pRsp->dnodeList);
15,058✔
4603
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
15,058!
4604
  for (int32_t i = 0; i < num; ++i) {
30,752✔
4605
    SEpSet *pEpSet = taosArrayGet(pRsp->dnodeList, i);
15,694✔
4606
    TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpSet));
15,694!
4607
  }
4608
  tEndEncode(&encoder);
15,058✔
4609

4610
_exit:
15,058✔
4611
  if (code) {
15,058!
4612
    tlen = code;
×
4613
  } else {
4614
    tlen = encoder.pos;
15,058✔
4615
  }
4616
  tEncoderClear(&encoder);
15,058✔
4617
  return tlen;
15,058✔
4618
}
4619

4620
int32_t tDeserializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
347✔
4621
  SDecoder decoder = {0};
347✔
4622
  int32_t  code = 0;
347✔
4623
  int32_t  lino;
4624
  tDecoderInit(&decoder, buf, bufLen);
347✔
4625

4626
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
347!
4627
  int32_t num = 0;
347✔
4628
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
347!
4629
  if (NULL == pRsp->dnodeList) {
347!
4630
    pRsp->dnodeList = taosArrayInit(num, sizeof(SEpSet));
347✔
4631
    if (NULL == pRsp->dnodeList) {
347!
4632
      TAOS_CHECK_EXIT(terrno);
×
4633
    }
4634
  }
4635

4636
  for (int32_t i = 0; i < num; ++i) {
1,340✔
4637
    SEpSet epSet = {0};
993✔
4638
    TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &epSet));
993!
4639
    if (taosArrayPush(pRsp->dnodeList, &epSet) == NULL) {
1,986!
4640
      TAOS_CHECK_EXIT(terrno);
×
4641
    }
4642
  }
4643
  tEndDecode(&decoder);
347✔
4644

4645
_exit:
347✔
4646
  tDecoderClear(&decoder);
347✔
4647
  return code;
347✔
4648
}
4649

4650
void tFreeSDnodeListRsp(SDnodeListRsp *pRsp) { taosArrayDestroy(pRsp->dnodeList); }
7,529✔
4651

4652
int32_t tSerializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
58✔
4653
  SEncoder encoder = {0};
58✔
4654
  int32_t  code = 0;
58✔
4655
  int32_t  lino;
4656
  int32_t  tlen;
4657
  tEncoderInit(&encoder, buf, bufLen);
58✔
4658

4659
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
58!
4660
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
116!
4661
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.skey));
116!
4662
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.ekey));
116!
4663
  ENCODESQL();
174!
4664

4665
  // encode vgroup list
4666
  int32_t numOfVgroups = taosArrayGetSize(pReq->vgroupIds);
58✔
4667
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfVgroups));
58!
4668
  if (numOfVgroups > 0) {
58!
4669
    for (int32_t i = 0; i < numOfVgroups; ++i) {
×
4670
      int64_t vgid = *(int64_t *)taosArrayGet(pReq->vgroupIds, i);
×
4671
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, vgid));
×
4672
    }
4673
  }
4674

4675
  tEndEncode(&encoder);
58✔
4676

4677
_exit:
58✔
4678
  if (code) {
58!
4679
    tlen = code;
×
4680
  } else {
4681
    tlen = encoder.pos;
58✔
4682
  }
4683
  tEncoderClear(&encoder);
58✔
4684
  return tlen;
58✔
4685
}
4686

4687
int32_t tDeserializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
28✔
4688
  SDecoder decoder = {0};
28✔
4689
  int32_t  code = 0;
28✔
4690
  int32_t  lino;
4691
  tDecoderInit(&decoder, buf, bufLen);
28✔
4692

4693
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
28!
4694
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
28!
4695
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.skey));
56!
4696
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.ekey));
56!
4697
  DECODESQL();
84!
4698

4699
  // decode vgroup list
4700
  if (!tDecodeIsEnd(&decoder)) {
28!
4701
    int32_t numOfVgroups = 0;
28✔
4702
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgroups));
28!
4703
    if (numOfVgroups > 0) {
28!
4704
      pReq->vgroupIds = taosArrayInit(numOfVgroups, sizeof(int64_t));
×
4705
      if (NULL == pReq->vgroupIds) {
×
4706
        TAOS_CHECK_EXIT(terrno);
×
4707
      }
4708

4709
      for (int32_t i = 0; i < numOfVgroups; ++i) {
×
4710
        int64_t vgid;
4711
        TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &vgid));
×
4712
        if (taosArrayPush(pReq->vgroupIds, &vgid) == NULL) {
×
4713
          TAOS_CHECK_EXIT(terrno);
×
4714
        }
4715
      }
4716
    }
4717
  }
4718
  tEndDecode(&decoder);
28✔
4719

4720
_exit:
28✔
4721
  tDecoderClear(&decoder);
28✔
4722
  return code;
28✔
4723
}
4724

4725
void tFreeSCompactDbReq(SCompactDbReq *pReq) {
57✔
4726
  FREESQL();
57!
4727
  taosArrayDestroy(pReq->vgroupIds);
57✔
4728
  pReq->vgroupIds = NULL;
57✔
4729
}
57✔
4730

4731
int32_t tSerializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
32✔
4732
  SEncoder encoder = {0};
32✔
4733
  int32_t  code = 0;
32✔
4734
  int32_t  lino;
4735
  int32_t  tlen;
4736
  tEncoderInit(&encoder, buf, bufLen);
32✔
4737

4738
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
4739
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->compactId));
64!
4740
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->bAccepted));
64!
4741
  tEndEncode(&encoder);
32✔
4742

4743
_exit:
32✔
4744
  if (code) {
32!
4745
    tlen = code;
×
4746
  } else {
4747
    tlen = encoder.pos;
32✔
4748
  }
4749
  tEncoderClear(&encoder);
32✔
4750
  return tlen;
32✔
4751
}
4752

4753
int32_t tDeserializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
9✔
4754
  SDecoder decoder = {0};
9✔
4755
  int32_t  code = 0;
9✔
4756
  int32_t  lino;
4757
  tDecoderInit(&decoder, buf, bufLen);
9✔
4758

4759
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9!
4760
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->compactId));
18!
4761
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->bAccepted));
18!
4762
  tEndDecode(&decoder);
9✔
4763

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

4769
int32_t tSerializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
×
4770
  SEncoder encoder = {0};
×
4771
  int32_t  code = 0;
×
4772
  int32_t  lino;
4773
  int32_t  tlen;
4774
  tEncoderInit(&encoder, buf, bufLen);
×
4775

4776
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
4777
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
4778
  ENCODESQL();
×
4779

4780
  tEndEncode(&encoder);
×
4781

4782
_exit:
×
4783
  if (code) {
×
4784
    tlen = code;
×
4785
  } else {
4786
    tlen = encoder.pos;
×
4787
  }
4788
  tEncoderClear(&encoder);
×
4789
  return tlen;
×
4790
}
4791

4792
int32_t tDeserializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
×
4793
  SDecoder decoder = {0};
×
4794
  int32_t  code = 0;
×
4795
  int32_t  lino;
4796
  tDecoderInit(&decoder, buf, bufLen);
×
4797

4798
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
4799
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
4800
  DECODESQL();
×
4801

4802
  tEndDecode(&decoder);
×
4803

4804
_exit:
×
4805
  tDecoderClear(&decoder);
×
4806
  return code;
×
4807
}
4808

4809
void tFreeSKillCompactReq(SKillCompactReq *pReq) { FREESQL(); }
×
4810

4811
int32_t tSerializeSUseDbRspImp(SEncoder *pEncoder, const SUseDbRsp *pRsp) {
5,748,029✔
4812
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
11,496,058!
4813
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->uid));
11,496,058!
4814
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgVersion));
11,496,058!
4815
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgNum));
11,496,058!
4816
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashPrefix));
11,496,058!
4817
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashSuffix));
11,496,058!
4818
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->hashMethod));
11,496,058!
4819

4820
  for (int32_t i = 0; i < pRsp->vgNum; ++i) {
42,407,986✔
4821
    SVgroupInfo *pVgInfo = taosArrayGet(pRsp->pVgroupInfos, i);
36,660,355✔
4822
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->vgId));
73,314,958!
4823
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashBegin));
73,314,958!
4824
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashEnd));
73,314,958!
4825
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
36,657,479!
4826
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->numOfTable));
73,319,914!
4827
  }
4828

4829
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->errCode));
11,495,262!
4830
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->stateTs));
11,495,262!
4831
  return 0;
5,747,631✔
4832
}
4833

4834
int32_t tSerializeSUseDbRsp(void *buf, int32_t bufLen, const SUseDbRsp *pRsp) {
5,680,106✔
4835
  SEncoder encoder = {0};
5,680,106✔
4836
  int32_t  code = 0;
5,680,106✔
4837
  int32_t  lino;
4838
  int32_t  tlen;
4839
  tEncoderInit(&encoder, buf, bufLen);
5,680,106✔
4840

4841
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,680,118!
4842
  TAOS_CHECK_EXIT(tSerializeSUseDbRspImp(&encoder, pRsp));
5,680,189!
4843
  tEndEncode(&encoder);
5,680,164✔
4844

4845
_exit:
5,680,159✔
4846
  if (code) {
5,680,159!
4847
    tlen = code;
×
4848
  } else {
4849
    tlen = encoder.pos;
5,680,159✔
4850
  }
4851
  tEncoderClear(&encoder);
5,680,159✔
4852
  return tlen;
5,680,149✔
4853
}
4854

4855
int32_t tSerializeSDbHbRspImp(SEncoder *pEncoder, const SDbHbRsp *pRsp) {
29,022✔
4856
  if (pRsp->useDbRsp) {
29,022✔
4857
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
7,698!
4858
    TAOS_CHECK_RETURN(tSerializeSUseDbRspImp(pEncoder, pRsp->useDbRsp));
7,698!
4859
  } else {
4860
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
21,324!
4861
  }
4862

4863
  if (pRsp->cfgRsp) {
29,022✔
4864
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
16,346!
4865
    TAOS_CHECK_RETURN(tSerializeSDbCfgRspImpl(pEncoder, pRsp->cfgRsp));
16,346!
4866
  } else {
4867
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
12,676!
4868
  }
4869

4870
  if (pRsp->pTsmaRsp) {
29,022✔
4871
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
24,306!
4872
    TAOS_CHECK_RETURN(tEncodeTableTSMAInfoRsp(pEncoder, pRsp->pTsmaRsp));
24,306!
4873
  } else {
4874
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
4,716!
4875
  }
4876
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->dbTsmaVersion));
58,044!
4877
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
58,044!
4878
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
58,044!
4879
  return 0;
29,022✔
4880
}
4881

4882
int32_t tSerializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
89,401✔
4883
  SEncoder encoder = {0};
89,401✔
4884
  int32_t  code = 0;
89,401✔
4885
  int32_t  lino;
4886
  int32_t  tlen;
4887
  tEncoderInit(&encoder, buf, bufLen);
89,401✔
4888

4889
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
89,401!
4890

4891
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
89,401✔
4892
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
89,401!
4893
  for (int32_t i = 0; i < numOfBatch; ++i) {
118,423✔
4894
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
29,022✔
4895
    TAOS_CHECK_EXIT(tSerializeSDbHbRspImp(&encoder, pDbRsp));
29,022!
4896
  }
4897
  tEndEncode(&encoder);
89,401✔
4898

4899
_exit:
89,401✔
4900
  if (code) {
89,401!
4901
    tlen = code;
×
4902
  } else {
4903
    tlen = encoder.pos;
89,401✔
4904
  }
4905
  tEncoderClear(&encoder);
89,401✔
4906
  return tlen;
89,401✔
4907
}
4908

4909
int32_t tDeserializeSUseDbRspImp(SDecoder *pDecoder, SUseDbRsp *pRsp) {
101,490✔
4910
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->db));
101,490!
4911
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->uid));
202,981!
4912
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgVersion));
202,983!
4913
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgNum));
202,983!
4914
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashPrefix));
202,983!
4915
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashSuffix));
202,982!
4916
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->hashMethod));
202,981!
4917

4918
  if (pRsp->vgNum > 0) {
101,491✔
4919
    pRsp->pVgroupInfos = taosArrayInit(pRsp->vgNum, sizeof(SVgroupInfo));
93,032✔
4920
    if (pRsp->pVgroupInfos == NULL) {
93,033!
4921
      TAOS_CHECK_RETURN(terrno);
×
4922
    }
4923

4924
    for (int32_t i = 0; i < pRsp->vgNum; ++i) {
368,862✔
4925
      SVgroupInfo vgInfo = {0};
275,829✔
4926
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.vgId));
275,832!
4927
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashBegin));
275,832!
4928
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashEnd));
275,832!
4929
      TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &vgInfo.epSet));
275,832!
4930
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.numOfTable));
275,832!
4931
      if (taosArrayPush(pRsp->pVgroupInfos, &vgInfo) == NULL) {
551,660!
4932
        TAOS_CHECK_RETURN(terrno);
×
4933
      }
4934
    }
4935
  }
4936

4937
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->errCode));
202,984!
4938
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->stateTs));
202,982!
4939
  return 0;
101,490✔
4940
}
4941

4942
int32_t tDeserializeSUseDbRsp(void *buf, int32_t bufLen, SUseDbRsp *pRsp) {
77,389✔
4943
  SDecoder decoder = {0};
77,389✔
4944
  int32_t  code = 0;
77,389✔
4945
  int32_t  lino;
4946
  tDecoderInit(&decoder, buf, bufLen);
77,389✔
4947

4948
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
77,389✔
4949
  TAOS_CHECK_EXIT(tDeserializeSUseDbRspImp(&decoder, pRsp));
77,388!
4950
  tEndDecode(&decoder);
77,387✔
4951

4952
_exit:
77,389✔
4953
  tDecoderClear(&decoder);
77,389✔
4954
  return code;
77,389✔
4955
}
4956

4957
int32_t tDeserializeSDbHbRspImp(SDecoder *decoder, SDbHbRsp *pRsp) {
3,803✔
4958
  int8_t flag = 0;
3,803✔
4959
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
3,803!
4960
  if (flag) {
3,803✔
4961
    pRsp->useDbRsp = taosMemoryCalloc(1, sizeof(SUseDbRsp));
2,939!
4962
    if (NULL == pRsp->useDbRsp) {
2,939!
4963
      TAOS_CHECK_RETURN(terrno);
×
4964
    }
4965
    TAOS_CHECK_RETURN(tDeserializeSUseDbRspImp(decoder, pRsp->useDbRsp));
2,939!
4966
  }
4967
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
3,803!
4968
  if (flag) {
3,803✔
4969
    pRsp->cfgRsp = taosMemoryCalloc(1, sizeof(SDbCfgRsp));
500!
4970
    if (NULL == pRsp->cfgRsp) {
500!
4971
      TAOS_CHECK_RETURN(terrno);
×
4972
    }
4973
    TAOS_CHECK_RETURN(tDeserializeSDbCfgRspImpl(decoder, pRsp->cfgRsp));
500!
4974
  }
4975
  if (!tDecodeIsEnd(decoder)) {
3,803!
4976
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
3,803!
4977
    if (flag) {
3,803✔
4978
      pRsp->pTsmaRsp = taosMemoryCalloc(1, sizeof(STableTSMAInfoRsp));
2,149!
4979
      if (!pRsp->pTsmaRsp) {
2,149!
4980
        TAOS_CHECK_RETURN(terrno);
×
4981
      }
4982
      TAOS_CHECK_RETURN(tDecodeTableTSMAInfoRsp(decoder, pRsp->pTsmaRsp));
2,149!
4983
    }
4984
  }
4985
  if (!tDecodeIsEnd(decoder)) {
3,803!
4986
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->dbTsmaVersion));
7,606!
4987
  }
4988
  if (!tDecodeIsEnd(decoder)) {
3,803!
4989
    TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
3,803!
4990
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
7,606!
4991
  }
4992

4993
  return 0;
3,803✔
4994
}
4995

4996
int32_t tDeserializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
9,663✔
4997
  SDecoder decoder = {0};
9,663✔
4998
  int32_t  code = 0;
9,663✔
4999
  int32_t  lino;
5000
  tDecoderInit(&decoder, buf, bufLen);
9,663✔
5001

5002
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,663!
5003

5004
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
9,663✔
5005
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
9,663!
5006

5007
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SDbHbRsp));
9,663✔
5008
  if (pRsp->pArray == NULL) {
9,663!
5009
    TAOS_CHECK_EXIT(terrno);
×
5010
  }
5011

5012
  for (int32_t i = 0; i < numOfBatch; ++i) {
13,466✔
5013
    SDbHbRsp rsp = {0};
3,803✔
5014
    TAOS_CHECK_EXIT(tDeserializeSDbHbRspImp(&decoder, &rsp));
3,803!
5015

5016
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
7,606!
5017
      TAOS_CHECK_EXIT(terrno);
×
5018
    }
5019
  }
5020
  tEndDecode(&decoder);
9,663✔
5021

5022
_exit:
9,663✔
5023
  tDecoderClear(&decoder);
9,663✔
5024
  return code;
9,663✔
5025
}
5026

5027
void tFreeSUsedbRsp(SUseDbRsp *pRsp) { taosArrayDestroy(pRsp->pVgroupInfos); }
2,922,109✔
5028

5029
void tFreeSDbHbRsp(SDbHbRsp *pDbRsp) {
18,314✔
5030
  if (NULL == pDbRsp) {
18,314!
5031
    return;
×
5032
  }
5033

5034
  if (pDbRsp->useDbRsp) {
18,314✔
5035
    tFreeSUsedbRsp(pDbRsp->useDbRsp);
6,788✔
5036
    taosMemoryFree(pDbRsp->useDbRsp);
6,788!
5037
  }
5038

5039
  if (pDbRsp->cfgRsp) {
18,314✔
5040
    tFreeSDbCfgRsp(pDbRsp->cfgRsp);
8,173✔
5041
    taosMemoryFree(pDbRsp->cfgRsp);
8,173!
5042
  }
5043
  if (pDbRsp->pTsmaRsp) {
18,314✔
5044
    tFreeTableTSMAInfoRsp(pDbRsp->pTsmaRsp);
14,302✔
5045
    taosMemoryFree(pDbRsp->pTsmaRsp);
14,302!
5046
  }
5047
}
5048

5049
void tFreeSDbHbBatchRsp(SDbHbBatchRsp *pRsp) {
54,364✔
5050
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
54,364✔
5051
  for (int32_t i = 0; i < numOfBatch; ++i) {
72,678✔
5052
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
18,314✔
5053
    tFreeSDbHbRsp(pDbRsp);
18,314✔
5054
  }
5055

5056
  taosArrayDestroy(pRsp->pArray);
54,364✔
5057
}
54,364✔
5058

5059
int32_t tSerializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
30,480✔
5060
  SEncoder encoder = {0};
30,480✔
5061
  int32_t  code = 0;
30,480✔
5062
  int32_t  lino;
5063
  int32_t  tlen;
5064
  tEncoderInit(&encoder, buf, bufLen);
30,480✔
5065

5066
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30,480!
5067

5068
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
30,480✔
5069
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
30,480!
5070
  for (int32_t i = 0; i < numOfBatch; ++i) {
61,246✔
5071
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
30,766✔
5072
    TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pUserAuthRsp));
30,766!
5073
  }
5074
  tEndEncode(&encoder);
30,480✔
5075

5076
_exit:
30,480✔
5077
  if (code) {
30,480!
5078
    tlen = code;
×
5079
  } else {
5080
    tlen = encoder.pos;
30,480✔
5081
  }
5082
  tEncoderClear(&encoder);
30,480✔
5083
  return tlen;
30,480✔
5084
}
5085

5086
int32_t tDeserializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
2,567✔
5087
  SDecoder decoder = {0};
2,567✔
5088
  int32_t  code = 0;
2,567✔
5089
  int32_t  lino;
5090
  tDecoderInit(&decoder, buf, bufLen);
2,567✔
5091

5092
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,567!
5093

5094
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
2,567✔
5095
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
2,567!
5096

5097
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SGetUserAuthRsp));
2,567✔
5098
  if (pRsp->pArray == NULL) {
2,567!
5099
    TAOS_CHECK_EXIT(terrno);
×
5100
  }
5101

5102
  for (int32_t i = 0; i < numOfBatch; ++i) {
5,297✔
5103
    SGetUserAuthRsp rsp = {0};
2,730✔
5104
    TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, &rsp));
2,730!
5105
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
5,460!
5106
      TAOS_CHECK_EXIT(terrno);
×
5107
    }
5108
  }
5109
  tEndDecode(&decoder);
2,567✔
5110

5111
_exit:
2,567✔
5112
  tDecoderClear(&decoder);
2,567✔
5113
  return code;
2,567✔
5114
}
5115

5116
void tFreeSUserAuthBatchRsp(SUserAuthBatchRsp *pRsp) {
225,373✔
5117
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
225,373✔
5118
  for (int32_t i = 0; i < numOfBatch; ++i) {
240,755✔
5119
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
15,383✔
5120
    tFreeSGetUserAuthRsp(pUserAuthRsp);
15,383✔
5121
  }
5122

5123
  taosArrayDestroy(pRsp->pArray);
225,372✔
5124
}
225,373✔
5125

5126
int32_t tSerializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
7,556✔
5127
  SEncoder encoder = {0};
7,556✔
5128
  int32_t  code = 0;
7,556✔
5129
  int32_t  lino;
5130
  int32_t  tlen;
5131
  tEncoderInit(&encoder, buf, bufLen);
7,556✔
5132

5133
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
7,556!
5134
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
15,112!
5135
  tEndEncode(&encoder);
7,556✔
5136

5137
_exit:
7,556✔
5138
  if (code) {
7,556!
5139
    tlen = code;
×
5140
  } else {
5141
    tlen = encoder.pos;
7,556✔
5142
  }
5143
  tEncoderClear(&encoder);
7,556✔
5144
  return tlen;
7,556✔
5145
}
5146

5147
int32_t tDeserializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
72,498✔
5148
  SDecoder decoder = {0};
72,498✔
5149
  int32_t  code = 0;
72,498✔
5150
  int32_t  lino;
5151
  tDecoderInit(&decoder, buf, bufLen);
72,498✔
5152

5153
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
72,498!
5154
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
72,497!
5155
  tEndDecode(&decoder);
72,497✔
5156

5157
_exit:
72,497✔
5158
  tDecoderClear(&decoder);
72,497✔
5159
  return code;
72,498✔
5160
}
5161

5162
int32_t tSerializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
24✔
5163
  SEncoder encoder = {0};
24✔
5164
  int32_t  code = 0;
24✔
5165
  int32_t  lino;
5166
  int32_t  tlen;
5167
  tEncoderInit(&encoder, buf, bufLen);
24✔
5168

5169
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
24!
5170
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
48!
5171
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxSpeed));
48!
5172
  tEndEncode(&encoder);
24✔
5173

5174
_exit:
24✔
5175
  if (code) {
24!
5176
    tlen = code;
×
5177
  } else {
5178
    tlen = encoder.pos;
24✔
5179
  }
5180
  tEncoderClear(&encoder);
24✔
5181
  return tlen;
24✔
5182
}
5183

5184
int32_t tDeserializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
5✔
5185
  SDecoder decoder = {0};
5✔
5186
  int32_t  code = 0;
5✔
5187
  int32_t  lino;
5188
  tDecoderInit(&decoder, buf, bufLen);
5✔
5189

5190
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5!
5191
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
5!
5192
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxSpeed));
10!
5193
  tEndDecode(&decoder);
5✔
5194

5195
_exit:
5✔
5196
  tDecoderClear(&decoder);
5✔
5197
  return code;
5✔
5198
}
5199

5200
int32_t tSerializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
227✔
5201
  SEncoder encoder = {0};
227✔
5202
  int32_t  code = 0;
227✔
5203
  int32_t  lino;
5204
  int32_t  tlen;
5205
  tEncoderInit(&encoder, buf, bufLen);
227✔
5206

5207
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
227!
5208
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
454!
5209
  tEndEncode(&encoder);
227✔
5210

5211
_exit:
227✔
5212
  if (code) {
227!
5213
    tlen = code;
×
5214
  } else {
5215
    tlen = encoder.pos;
227✔
5216
  }
5217
  tEncoderClear(&encoder);
227✔
5218
  return tlen;
227✔
5219
}
5220

5221
int32_t tDeserializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
225✔
5222
  SDecoder decoder = {0};
225✔
5223
  int32_t  code = 0;
225✔
5224
  int32_t  lino;
5225
  tDecoderInit(&decoder, buf, bufLen);
225✔
5226

5227
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
225!
5228
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
449!
5229

5230
  tEndDecode(&decoder);
224✔
5231

5232
_exit:
224✔
5233
  tDecoderClear(&decoder);
224✔
5234
  return code;
225✔
5235
}
5236

5237
int32_t tSerializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
12✔
5238
  SEncoder encoder = {0};
12✔
5239
  int32_t  code = 0;
12✔
5240
  int32_t  lino;
5241
  int32_t  tlen;
5242
  tEncoderInit(&encoder, buf, bufLen);
12✔
5243

5244
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
5245
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
24!
5246
  tEndEncode(&encoder);
12✔
5247

5248
_exit:
12✔
5249
  if (code) {
12!
5250
    tlen = code;
×
5251
  } else {
5252
    tlen = encoder.pos;
12✔
5253
  }
5254
  tEncoderClear(&encoder);
12✔
5255
  return tlen;
12✔
5256
}
5257

5258
int32_t tDeserializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
×
5259
  SDecoder decoder = {0};
×
5260
  int32_t  code = 0;
×
5261
  int32_t  lino;
5262
  tDecoderInit(&decoder, buf, bufLen);
×
5263

5264
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5265
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
5266
  tEndDecode(&decoder);
×
5267

5268
_exit:
×
5269
  tDecoderClear(&decoder);
×
5270
  return code;
×
5271
}
5272

5273
int32_t tSerializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
5274
  SEncoder encoder = {0};
×
5275
  int32_t  code = 0;
×
5276
  int32_t  lino;
5277
  int32_t  tlen;
5278
  tEncoderInit(&encoder, buf, bufLen);
×
5279

5280
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5281
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
×
5282
  tEndEncode(&encoder);
×
5283

5284
_exit:
×
5285
  if (code) {
×
5286
    tlen = code;
×
5287
  } else {
5288
    tlen = encoder.pos;
×
5289
  }
5290
  tEncoderClear(&encoder);
×
5291
  return tlen;
×
5292
}
5293

5294
int32_t tDeserializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
5295
  SDecoder decoder = {0};
×
5296
  int32_t  code = 0;
×
5297
  int32_t  lino;
5298
  tDecoderInit(&decoder, buf, bufLen);
×
5299

5300
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5301
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
×
5302

5303
  tEndDecode(&decoder);
×
5304

5305
_exit:
×
5306
  tDecoderClear(&decoder);
×
5307
  return code;
×
5308
}
5309

5310
int32_t tSerializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
107,854✔
5311
  SEncoder encoder = {0};
107,854✔
5312
  int32_t  code = 0;
107,854✔
5313
  int32_t  lino;
5314
  int32_t  tlen;
5315
  tEncoderInit(&encoder, buf, bufLen);
107,854✔
5316

5317
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
107,854!
5318
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestampSec));
215,708!
5319
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttlDropMaxCount));
215,708!
5320
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->nUids));
215,708!
5321
  for (int32_t i = 0; i < pReq->nUids; ++i) {
107,864✔
5322
    tb_uid_t *pTbUid = taosArrayGet(pReq->pTbUids, i);
10✔
5323
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, *pTbUid));
20!
5324
  }
5325
  tEndEncode(&encoder);
107,854✔
5326

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

5337
int32_t tDeserializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
100,395✔
5338
  SDecoder decoder = {0};
100,395✔
5339
  int32_t  code = 0;
100,395✔
5340
  int32_t  lino;
5341
  tDecoderInit(&decoder, buf, bufLen);
100,395✔
5342

5343
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
100,459!
5344
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestampSec));
201,843!
5345
  pReq->ttlDropMaxCount = INT32_MAX;
100,901✔
5346
  pReq->nUids = 0;
100,901✔
5347
  pReq->pTbUids = NULL;
100,901✔
5348
  if (!tDecodeIsEnd(&decoder)) {
100,901!
5349
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttlDropMaxCount));
201,739!
5350
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->nUids));
201,604!
5351

5352
    if (pReq->nUids > 0) {
100,771✔
5353
      pReq->pTbUids = taosArrayInit(pReq->nUids, sizeof(tb_uid_t));
5✔
5354
      if (pReq->pTbUids == NULL) {
5!
5355
        TAOS_CHECK_EXIT(terrno);
34!
5356
      }
5357
    }
5358

5359
    tb_uid_t tbUid = 0;
100,737✔
5360
    for (int32_t i = 0; i < pReq->nUids; ++i) {
100,742✔
5361
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &tbUid));
5!
5362
      if (taosArrayPush(pReq->pTbUids, &tbUid) == NULL) {
10!
5363
        TAOS_CHECK_EXIT(terrno);
×
5364
      }
5365
    }
5366
  }
5367
  tEndDecode(&decoder);
100,732✔
5368

5369
_exit:
100,696✔
5370
  tDecoderClear(&decoder);
100,696✔
5371
  return code;
100,817✔
5372
}
5373

5374
int32_t tSerializeSDbCfgRspImpl(SEncoder *encoder, const SDbCfgRsp *pRsp) {
161,246✔
5375
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pRsp->db));
322,492!
5376
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->dbId));
322,492!
5377
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cfgVersion));
322,492!
5378
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfVgroups));
322,492!
5379
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfStables));
322,492!
5380
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->buffer));
322,492!
5381
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cacheSize));
322,492!
5382
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pageSize));
322,492!
5383
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pages));
322,492!
5384
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysPerFile));
322,492!
5385
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep0));
322,492!
5386
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep1));
322,492!
5387
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep2));
322,492!
5388
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->minRows));
322,492!
5389
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->maxRows));
322,492!
5390
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walFsyncPeriod));
322,492!
5391
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashPrefix));
322,492!
5392
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashSuffix));
322,492!
5393
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->walLevel));
322,492!
5394
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->precision));
322,492!
5395
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compression));
322,492!
5396
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->replications));
322,492!
5397
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->strict));
322,492!
5398
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->cacheLast));
322,492!
5399
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->tsdbPageSize));
322,492!
5400
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRetentionPeriod));
322,492!
5401
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRollPeriod));
322,492!
5402
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walRetentionSize));
322,492!
5403
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walSegmentSize));
322,492!
5404
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfRetensions));
322,492!
5405
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
161,264✔
5406
    SRetention *pRetension = taosArrayGet(pRsp->pRetensions, i);
18✔
5407
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->freq));
36!
5408
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->keep));
36!
5409
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->freqUnit));
36!
5410
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->keepUnit));
36!
5411
  }
5412
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->schemaless));
322,492!
5413
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->sstTrigger));
322,492!
5414
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->keepTimeOffset));
322,492!
5415
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->withArbitrator));
322,492!
5416
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->encryptAlgorithm));
322,492!
5417
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3ChunkSize));
322,492!
5418
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3KeepLocal));
322,492!
5419
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->s3Compact));
322,492!
5420
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->hashMethod));
322,492!
5421
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactInterval));
322,492!
5422
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactStartTime));
322,492!
5423
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactEndTime));
322,492!
5424
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compactTimeOffset));
322,492!
5425

5426
  return 0;
161,246✔
5427
}
5428

5429
int32_t tSerializeSDbCfgRsp(void *buf, int32_t bufLen, const SDbCfgRsp *pRsp) {
144,898✔
5430
  SEncoder encoder = {0};
144,898✔
5431
  int32_t  code = 0;
144,898✔
5432
  int32_t  lino;
5433
  int32_t  tlen;
5434
  tEncoderInit(&encoder, buf, bufLen);
144,898✔
5435

5436
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
144,900!
5437
  TAOS_CHECK_EXIT(tSerializeSDbCfgRspImpl(&encoder, pRsp));
144,900!
5438
  tEndEncode(&encoder);
144,900✔
5439

5440
_exit:
144,900✔
5441
  if (code) {
144,900!
5442
    tlen = code;
×
5443
  } else {
5444
    tlen = encoder.pos;
144,900✔
5445
  }
5446
  tEncoderClear(&encoder);
144,900✔
5447
  return tlen;
144,901✔
5448
}
5449

5450
int32_t tDeserializeSDbCfgRspImpl(SDecoder *decoder, SDbCfgRsp *pRsp) {
4,227✔
5451
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
4,227!
5452
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
8,454!
5453
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cfgVersion));
8,454!
5454
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfVgroups));
8,454!
5455
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfStables));
8,454!
5456
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->buffer));
8,454!
5457
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cacheSize));
8,454!
5458
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pageSize));
8,454!
5459
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pages));
8,454!
5460
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysPerFile));
8,454!
5461
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep0));
8,454!
5462
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep1));
8,454!
5463
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep2));
8,454!
5464
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->minRows));
8,454!
5465
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->maxRows));
8,454!
5466
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walFsyncPeriod));
8,454!
5467
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashPrefix));
8,454!
5468
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashSuffix));
8,454!
5469
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->walLevel));
8,454!
5470
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->precision));
8,454!
5471
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compression));
8,454!
5472
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->replications));
8,454!
5473
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->strict));
8,454!
5474
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->cacheLast));
8,454!
5475
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->tsdbPageSize));
8,454!
5476
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRetentionPeriod));
8,454!
5477
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRollPeriod));
8,454!
5478
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walRetentionSize));
8,454!
5479
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walSegmentSize));
8,454!
5480
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfRetensions));
8,454!
5481
  if (pRsp->numOfRetensions > 0) {
4,227✔
5482
    pRsp->pRetensions = taosArrayInit(pRsp->numOfRetensions, sizeof(SRetention));
3✔
5483
    if (pRsp->pRetensions == NULL) {
3!
5484
      TAOS_CHECK_RETURN(terrno);
×
5485
    }
5486
  }
5487

5488
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
4,236✔
5489
    SRetention rentension = {0};
9✔
5490
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.freq));
9!
5491
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.keep));
9!
5492
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.freqUnit));
9!
5493
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.keepUnit));
9!
5494
    if (taosArrayPush(pRsp->pRetensions, &rentension) == NULL) {
18!
5495
      TAOS_CHECK_RETURN(terrno);
×
5496
    }
5497
  }
5498
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->schemaless));
8,454!
5499
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->sstTrigger));
8,454!
5500
  if (!tDecodeIsEnd(decoder)) {
4,227!
5501
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->keepTimeOffset));
8,454!
5502
  } else {
5503
    pRsp->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
5504
  }
5505
  if (!tDecodeIsEnd(decoder)) {
4,227!
5506
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->withArbitrator));
8,454!
5507
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->encryptAlgorithm));
8,454!
5508
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3ChunkSize));
8,454!
5509
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3KeepLocal));
8,454!
5510
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->s3Compact));
8,454!
5511
  } else {
5512
    pRsp->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
5513
    pRsp->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
5514
    pRsp->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
5515
    pRsp->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
5516
    pRsp->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
5517
  }
5518
  if (!tDecodeIsEnd(decoder)) {
4,227!
5519
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->hashMethod));
8,454!
5520
  } else {
5521
    pRsp->hashMethod = 1;  // default value
×
5522
  }
5523
  if (!tDecodeIsEnd(decoder)) {
4,227!
5524
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactInterval));
8,454!
5525
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactStartTime));
8,454!
5526
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactEndTime));
8,454!
5527
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compactTimeOffset));
8,454!
5528
  } else {
5529
    pRsp->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
5530
    pRsp->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
5531
    pRsp->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
5532
    pRsp->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
5533
  }
5534

5535
  return 0;
4,227✔
5536
}
5537

5538
int32_t tDeserializeSDbCfgRsp(void *buf, int32_t bufLen, SDbCfgRsp *pRsp) {
3,726✔
5539
  SDecoder decoder = {0};
3,726✔
5540
  int32_t  code = 0;
3,726✔
5541
  int32_t  lino;
5542
  tDecoderInit(&decoder, buf, bufLen);
3,726✔
5543

5544
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,727!
5545
  TAOS_CHECK_EXIT(tDeserializeSDbCfgRspImpl(&decoder, pRsp));
3,727!
5546
  tEndDecode(&decoder);
3,727✔
5547

5548
_exit:
3,727✔
5549
  tDecoderClear(&decoder);
3,727✔
5550
  return code;
3,727✔
5551
}
5552

5553
void tFreeSDbCfgRsp(SDbCfgRsp *pRsp) {
80,669✔
5554
  if (NULL == pRsp) {
80,669!
5555
    return;
×
5556
  }
5557

5558
  taosArrayDestroy(pRsp->pRetensions);
80,669✔
5559
}
5560

5561
int32_t tSerializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
2✔
5562
  SEncoder encoder = {0};
2✔
5563
  int32_t  code = 0;
2✔
5564
  int32_t  lino;
5565
  int32_t  tlen;
5566
  tEncoderInit(&encoder, buf, bufLen);
2✔
5567

5568
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5569
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->indexFName));
4!
5570
  tEndEncode(&encoder);
2✔
5571

5572
_exit:
2✔
5573
  if (code) {
2!
5574
    tlen = code;
×
5575
  } else {
5576
    tlen = encoder.pos;
2✔
5577
  }
5578
  tEncoderClear(&encoder);
2✔
5579
  return tlen;
2✔
5580
}
5581

5582
int32_t tDeserializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
×
5583
  SDecoder decoder = {0};
×
5584
  int32_t  code = 0;
×
5585
  int32_t  lino;
5586
  tDecoderInit(&decoder, buf, bufLen);
×
5587

5588
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5589
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->indexFName));
×
5590
  tEndDecode(&decoder);
×
5591

5592
_exit:
×
5593
  tDecoderClear(&decoder);
×
5594
  return code;
×
5595
}
5596

5597
int32_t tSerializeSUserIndexRsp(void *buf, int32_t bufLen, const SUserIndexRsp *pRsp) {
×
5598
  SEncoder encoder = {0};
×
5599
  int32_t  code = 0;
×
5600
  int32_t  lino;
5601
  int32_t  tlen;
5602
  tEncoderInit(&encoder, buf, bufLen);
×
5603

5604
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5605
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
×
5606
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tblFName));
×
5607
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->colName));
×
5608
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexType));
×
5609
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexExts));
×
5610
  tEndEncode(&encoder);
×
5611

5612
_exit:
×
5613
  if (code) {
×
5614
    tlen = code;
×
5615
  } else {
5616
    tlen = encoder.pos;
×
5617
  }
5618
  tEncoderClear(&encoder);
×
5619
  return tlen;
×
5620
}
5621

5622
int32_t tDeserializeSUserIndexRsp(void *buf, int32_t bufLen, SUserIndexRsp *pRsp) {
×
5623
  SDecoder decoder = {0};
×
5624
  int32_t  code = 0;
×
5625
  int32_t  lino;
5626
  tDecoderInit(&decoder, buf, bufLen);
×
5627

5628
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5629
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
×
5630
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tblFName));
×
5631
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->colName));
×
5632
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexType));
×
5633
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexExts));
×
5634
  tEndDecode(&decoder);
×
5635

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

5641
int32_t tSerializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
14,492✔
5642
  SEncoder encoder = {0};
14,492✔
5643
  int32_t  code = 0;
14,492✔
5644
  int32_t  lino;
5645
  int32_t  tlen;
5646
  tEncoderInit(&encoder, buf, bufLen);
14,492✔
5647

5648
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14,492!
5649
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbFName));
28,984!
5650
  tEndEncode(&encoder);
14,492✔
5651

5652
_exit:
14,492✔
5653
  if (code) {
14,492!
5654
    tlen = code;
×
5655
  } else {
5656
    tlen = encoder.pos;
14,492✔
5657
  }
5658
  tEncoderClear(&encoder);
14,492✔
5659
  return tlen;
14,492✔
5660
}
5661

5662
int32_t tDeserializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
9,095✔
5663
  SDecoder decoder = {0};
9,095✔
5664
  int32_t  code = 0;
9,095✔
5665
  int32_t  lino;
5666
  tDecoderInit(&decoder, buf, bufLen);
9,095✔
5667

5668
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9,095!
5669
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbFName));
9,095!
5670
  tEndDecode(&decoder);
9,095✔
5671

5672
_exit:
9,095✔
5673
  tDecoderClear(&decoder);
9,095✔
5674
  return code;
9,095✔
5675
}
5676

5677
int32_t tSerializeSTableIndexInfo(SEncoder *pEncoder, STableIndexInfo *pInfo) {
10✔
5678
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->intervalUnit));
20!
5679
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->slidingUnit));
20!
5680
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->interval));
20!
5681
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->offset));
20!
5682
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->sliding));
20!
5683
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->dstTbUid));
20!
5684
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pInfo->dstVgId));
20!
5685
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pInfo->epSet));
10!
5686
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->expr));
20!
5687
  return 0;
10✔
5688
}
5689

5690
int32_t tSerializeSTableIndexRsp(void *buf, int32_t bufLen, const STableIndexRsp *pRsp) {
4✔
5691
  SEncoder encoder = {0};
4✔
5692
  int32_t  code = 0;
4✔
5693
  int32_t  lino;
5694
  int32_t  tlen;
5695
  tEncoderInit(&encoder, buf, bufLen);
4✔
5696

5697
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
5698
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
8!
5699
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
8!
5700
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pRsp->suid));
8!
5701
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->version));
8!
5702
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->indexSize));
8!
5703
  int32_t num = taosArrayGetSize(pRsp->pIndex);
4✔
5704
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
4!
5705
  if (num > 0) {
4!
5706
    for (int32_t i = 0; i < num; ++i) {
14✔
5707
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pRsp->pIndex, i);
10✔
5708
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
10!
5709
    }
5710
  }
5711
  tEndEncode(&encoder);
4✔
5712

5713
_exit:
4✔
5714
  if (code) {
4!
5715
    tlen = code;
×
5716
  } else {
5717
    tlen = encoder.pos;
4✔
5718
  }
5719
  tEncoderClear(&encoder);
4✔
5720
  return tlen;
4✔
5721
}
5722

5723
void tFreeSerializeSTableIndexRsp(STableIndexRsp *pRsp) {
9,095✔
5724
  if (pRsp->pIndex != NULL) {
9,095!
5725
    tFreeSTableIndexRsp(pRsp);
9,095✔
5726
    pRsp->pIndex = NULL;
9,095✔
5727
  }
5728
}
9,095✔
5729

5730
int32_t tDeserializeSTableIndexInfo(SDecoder *pDecoder, STableIndexInfo *pInfo) {
5✔
5731
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->intervalUnit));
10!
5732
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->slidingUnit));
10!
5733
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->interval));
10!
5734
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->offset));
10!
5735
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->sliding));
10!
5736
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->dstTbUid));
10!
5737
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pInfo->dstVgId));
10!
5738
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pInfo->epSet));
5!
5739
  TAOS_CHECK_RETURN(tDecodeCStrAlloc(pDecoder, &pInfo->expr));
10!
5740
  return 0;
5✔
5741
}
5742

5743
int32_t tDeserializeSTableIndexRsp(void *buf, int32_t bufLen, STableIndexRsp *pRsp) {
2✔
5744
  SDecoder decoder = {0};
2✔
5745
  int32_t  code = 0;
2✔
5746
  int32_t  lino;
5747
  tDecoderInit(&decoder, buf, bufLen);
2✔
5748

5749
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
5750
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
2!
5751
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
2!
5752
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->suid));
4!
5753
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->version));
4!
5754
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->indexSize));
4!
5755
  int32_t num = 0;
2✔
5756
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
2!
5757
  if (num > 0) {
2!
5758
    pRsp->pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
2✔
5759
    if (NULL == pRsp->pIndex) {
2!
5760
      TAOS_CHECK_EXIT(terrno);
×
5761
    }
5762
    STableIndexInfo info;
5763
    for (int32_t i = 0; i < num; ++i) {
7✔
5764
      TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
5!
5765
      if (NULL == taosArrayPush(pRsp->pIndex, &info)) {
10!
5766
        taosMemoryFree(info.expr);
×
5767
        TAOS_CHECK_EXIT(terrno);
×
5768
      }
5769
    }
5770
  }
5771
  tEndDecode(&decoder);
2✔
5772

5773
_exit:
2✔
5774
  tDecoderClear(&decoder);
2✔
5775
  return code;
2✔
5776
}
5777

5778
void tFreeSTableIndexInfo(void *info) {
41✔
5779
  if (NULL == info) {
41!
5780
    return;
×
5781
  }
5782

5783
  STableIndexInfo *pInfo = (STableIndexInfo *)info;
41✔
5784

5785
  taosMemoryFree(pInfo->expr);
41!
5786
}
5787

5788
int32_t tSerializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
30✔
5789
  SEncoder encoder = {0};
30✔
5790
  int32_t  code = 0;
30✔
5791
  int32_t  lino;
5792
  int32_t  tlen;
5793
  tEncoderInit(&encoder, buf, bufLen);
30✔
5794

5795
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
30!
5796
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
60!
5797
  tEndEncode(&encoder);
30✔
5798

5799
_exit:
30✔
5800
  if (code) {
30!
5801
    tlen = code;
×
5802
  } else {
5803
    tlen = encoder.pos;
30✔
5804
  }
5805
  tEncoderClear(&encoder);
30✔
5806
  return tlen;
30✔
5807
}
5808

5809
int32_t tEncodeSVariablesInfo(SEncoder *pEncoder, SVariablesInfo *pInfo) {
1,860✔
5810
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->name));
3,720!
5811
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->value));
3,720!
5812
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->scope));
3,720!
5813
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->category));
3,720!
5814
  return 0;
1,860✔
5815
}
5816

5817
int32_t tDecodeSVariablesInfo(SDecoder *pDecoder, SVariablesInfo *pInfo) {
1,023✔
5818
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->name));
1,023!
5819
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->value));
1,023!
5820
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->scope));
1,023!
5821
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->category));
1,023!
5822
  return 0;
1,023✔
5823
}
5824

5825
int32_t tSerializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
20✔
5826
  SEncoder encoder = {0};
20✔
5827
  int32_t  code = 0;
20✔
5828
  int32_t  lino;
5829
  int32_t  tlen;
5830
  tEncoderInit(&encoder, buf, bufLen);
20✔
5831

5832
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
5833
  int32_t varNum = taosArrayGetSize(pRsp->variables);
20✔
5834
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, varNum));
20!
5835
  for (int32_t i = 0; i < varNum; ++i) {
1,880✔
5836
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
1,860✔
5837
    TAOS_CHECK_EXIT(tEncodeSVariablesInfo(&encoder, pInfo));
1,860!
5838
  }
5839

5840
  for (int32_t i = 0; i < varNum; ++i) {
1,880✔
5841
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
1,860✔
5842
    TAOS_CHECK_RETURN(tEncodeCStr(&encoder, pInfo->info));
3,720!
5843
  }
5844

5845
  tEndEncode(&encoder);
20✔
5846

5847
_exit:
20✔
5848
  if (code) {
20!
5849
    tlen = code;
×
5850
  } else {
5851
    tlen = encoder.pos;
20✔
5852
  }
5853
  tEncoderClear(&encoder);
20✔
5854
  return tlen;
20✔
5855
}
5856

5857
int32_t tDeserializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
11✔
5858
  SDecoder decoder = {0};
11✔
5859
  int32_t  code = 0;
11✔
5860
  int32_t  lino;
5861
  tDecoderInit(&decoder, buf, bufLen);
11✔
5862

5863
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11!
5864
  int32_t varNum = 0;
11✔
5865
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &varNum));
11!
5866
  if (varNum > 0) {
11!
5867
    pRsp->variables = taosArrayInit(varNum, sizeof(SVariablesInfo));
11✔
5868
    if (NULL == pRsp->variables) {
11!
5869
      TAOS_CHECK_EXIT(terrno);
×
5870
    }
5871
    for (int32_t i = 0; i < varNum; ++i) {
1,034✔
5872
      SVariablesInfo info = {0};
1,023✔
5873
      TAOS_CHECK_EXIT(tDecodeSVariablesInfo(&decoder, &info));
1,023!
5874
      if (NULL == taosArrayPush(pRsp->variables, &info)) {
2,046!
5875
        TAOS_CHECK_EXIT(terrno);
×
5876
      }
5877
    }
5878

5879
    if (!tDecodeIsEnd(&decoder)) {
11!
5880
      for (int32_t i = 0; i < varNum; ++i) {
1,034✔
5881
        SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
1,023✔
5882
        TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pInfo->info));
1,023!
5883
      }
5884
    }
5885
  }
5886

5887
  tEndDecode(&decoder);
11✔
5888
_exit:
11✔
5889
  tDecoderClear(&decoder);
11✔
5890
  return code;
11✔
5891
}
5892

5893
void tFreeSShowVariablesRsp(SShowVariablesRsp *pRsp) {
21✔
5894
  if (NULL == pRsp) {
21!
5895
    return;
×
5896
  }
5897

5898
  taosArrayDestroy(pRsp->variables);
21✔
5899
}
5900

5901
int32_t tSerializeSShowReq(void *buf, int32_t bufLen, SShowReq *pReq) {
4✔
5902
  SEncoder encoder = {0};
4✔
5903
  int32_t  code = 0;
4✔
5904
  int32_t  lino;
5905
  int32_t  tlen;
5906
  tEncoderInit(&encoder, buf, bufLen);
4✔
5907

5908
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
5909
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
8!
5910
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
8!
5911
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->payloadLen));
8!
5912
  if (pReq->payloadLen > 0) {
4!
5913
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->payload, pReq->payloadLen));
×
5914
  }
5915
  tEndEncode(&encoder);
4✔
5916

5917
_exit:
4✔
5918
  if (code) {
4!
5919
    tlen = code;
×
5920
  } else {
5921
    tlen = encoder.pos;
4✔
5922
  }
5923
  tEncoderClear(&encoder);
4✔
5924
  return tlen;
4✔
5925
}
5926

5927
void tFreeSShowReq(SShowReq *pReq) { taosMemoryFreeClear(pReq->payload); }
2!
5928

5929
int32_t tSerializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
459,828✔
5930
  SEncoder encoder = {0};
459,828✔
5931
  int32_t  code = 0;
459,828✔
5932
  int32_t  lino;
5933
  int32_t  tlen;
5934
  tEncoderInit(&encoder, buf, bufLen);
459,828✔
5935

5936
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
460,104!
5937
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->showId));
919,098!
5938
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
919,098!
5939
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tb));
919,098!
5940
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->filterTb));
919,098!
5941
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
919,098!
5942
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactId));
919,098!
5943
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withFull));
919,098!
5944
  tEndEncode(&encoder);
459,549✔
5945

5946
_exit:
459,902✔
5947
  if (code) {
459,902!
5948
    tlen = code;
×
5949
  } else {
5950
    tlen = encoder.pos;
459,902✔
5951
  }
5952
  tEncoderClear(&encoder);
459,902✔
5953
  return tlen;
459,312✔
5954
}
5955

5956
int32_t tDeserializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
231,058✔
5957
  SDecoder decoder = {0};
231,058✔
5958
  int32_t  code = 0;
231,058✔
5959
  int32_t  lino;
5960

5961
  tDecoderInit(&decoder, buf, bufLen);
231,058✔
5962

5963
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
231,066!
5964
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->showId));
462,342!
5965
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
231,164!
5966
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tb));
231,114!
5967
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->filterTb));
231,058✔
5968
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
231,105!
5969
  if (!tDecodeIsEnd(&decoder)) {
231,100!
5970
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactId));
462,200!
5971
  } else {
5972
    pReq->compactId = -1;
×
5973
  }
5974
  if (!tDecodeIsEnd(&decoder)) {
231,080✔
5975
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->withFull));
461,995!
5976
  }
5977
  tEndDecode(&decoder);
231,069✔
5978
_exit:
231,029✔
5979
  tDecoderClear(&decoder);
231,029✔
5980
  return code;
231,002✔
5981
}
5982

5983
static int32_t tEncodeSTableMetaRsp(SEncoder *pEncoder, STableMetaRsp *pRsp) {
4,799,832✔
5984
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->tbName));
9,599,664!
5985
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->stbName));
9,599,664!
5986
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->dbFName));
9,599,664!
5987
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
9,599,664!
5988
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfTags));
9,599,664!
5989
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColumns));
9,599,664!
5990
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->precision));
9,599,664!
5991
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->tableType));
9,599,664!
5992
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->sversion));
9,599,664!
5993
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->tversion));
9,599,664!
5994
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->suid));
9,599,664!
5995
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->tuid));
9,599,664!
5996
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgId));
9,599,664!
5997
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
175,701,910✔
5998
    SSchema *pSchema = &pRsp->pSchemas[i];
170,902,078✔
5999
    TAOS_CHECK_RETURN(tEncodeSSchema(pEncoder, pSchema));
170,902,078!
6000
  }
6001

6002
  if (useCompress(pRsp->tableType)) {
4,799,832✔
6003
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
111,147,782✔
6004
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
106,619,310✔
6005
      TAOS_CHECK_RETURN(tEncodeSSchemaExt(pEncoder, pSchemaExt));
106,619,310!
6006
    }
6007
  }
6008

6009
  return 0;
4,800,362✔
6010
}
6011

6012
static int32_t tDecodeSTableMetaRsp(SDecoder *pDecoder, STableMetaRsp *pRsp) {
195,329✔
6013
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->tbName));
195,329!
6014
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->stbName));
195,317!
6015
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->dbFName));
195,305!
6016
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->dbId));
390,603!
6017
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfTags));
390,557!
6018
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColumns));
390,526!
6019
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->precision));
390,500!
6020
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->tableType));
390,450!
6021
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->sversion));
390,407!
6022
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->tversion));
390,365!
6023
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->suid));
390,342!
6024
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->tuid));
390,351!
6025
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgId));
390,336!
6026

6027
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
195,158✔
6028
  if (totalCols > 0) {
195,158✔
6029
    pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
82,524!
6030
    if (pRsp->pSchemas == NULL) {
82,525!
6031
      TAOS_CHECK_RETURN(terrno);
×
6032
    }
6033

6034
    for (int32_t i = 0; i < totalCols; ++i) {
2,316,618✔
6035
      SSchema *pSchema = &pRsp->pSchemas[i];
2,234,098✔
6036
      TAOS_CHECK_RETURN(tDecodeSSchema(pDecoder, pSchema));
2,234,093!
6037
    }
6038
  } else {
6039
    pRsp->pSchemas = NULL;
112,634✔
6040
  }
6041

6042
  if (!tDecodeIsEnd(pDecoder)) {
195,154✔
6043
    if (useCompress(pRsp->tableType) && pRsp->numOfColumns > 0) {
81,602!
6044
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
81,112!
6045
      if (pRsp->pSchemaExt == NULL) {
81,112!
6046
        TAOS_CHECK_RETURN(terrno);
×
6047
      }
6048

6049
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
2,069,955✔
6050
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
1,988,846✔
6051
        TAOS_CHECK_RETURN(tDecodeSSchemaExt(pDecoder, pSchemaExt));
1,988,843!
6052
      }
6053
    } else {
6054
      pRsp->pSchemaExt = NULL;
491✔
6055
    }
6056
  }
6057

6058
  return 0;
195,152✔
6059
}
6060

6061
int32_t tSerializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
4,464,455✔
6062
  SEncoder encoder = {0};
4,464,455✔
6063
  int32_t  code = 0;
4,464,455✔
6064
  int32_t  lino;
6065
  int32_t  tlen;
6066
  tEncoderInit(&encoder, buf, bufLen);
4,464,455✔
6067

6068
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,464,826!
6069
  TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pRsp));
4,465,208!
6070
  tEndEncode(&encoder);
4,465,181✔
6071

6072
_exit:
4,465,250✔
6073
  if (code) {
4,465,250!
6074
    tlen = code;
×
6075
  } else {
6076
    tlen = encoder.pos;
4,465,250✔
6077
  }
6078
  tEncoderClear(&encoder);
4,465,250✔
6079
  return tlen;
4,465,132✔
6080
}
6081

6082
int32_t tSerializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
127,488✔
6083
  SEncoder encoder = {0};
127,488✔
6084
  int32_t  code = 0;
127,488✔
6085
  int32_t  lino;
6086
  int32_t  tlen;
6087

6088
  tEncoderInit(&encoder, buf, bufLen);
127,488✔
6089

6090
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
127,488!
6091

6092
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
127,488✔
6093
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
127,487!
6094
  for (int32_t i = 0; i < numOfMeta; ++i) {
129,549✔
6095
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
2,062✔
6096
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pMetaRsp));
2,062!
6097
  }
6098

6099
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
127,487✔
6100
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfIndex));
127,487!
6101
  for (int32_t i = 0; i < numOfIndex; ++i) {
127,487!
6102
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
6103
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->tbName));
×
6104
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->dbFName));
×
6105
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, pIndexRsp->suid));
×
6106
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->version));
×
6107
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->indexSize));
×
6108
    int32_t num = taosArrayGetSize(pIndexRsp->pIndex);
×
6109
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
6110
    for (int32_t j = 0; j < num; ++j) {
×
6111
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pIndexRsp->pIndex, j);
×
6112
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
×
6113
    }
6114
  }
6115

6116
  tEndEncode(&encoder);
127,487✔
6117

6118
_exit:
127,488✔
6119
  if (code) {
127,488!
6120
    tlen = code;
×
6121
  } else {
6122
    tlen = encoder.pos;
127,488✔
6123
  }
6124
  tEncoderClear(&encoder);
127,488✔
6125
  return tlen;
127,488✔
6126
}
6127

6128
int32_t tDeserializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
57,683✔
6129
  SDecoder decoder = {0};
57,683✔
6130
  int32_t  code = 0;
57,683✔
6131
  int32_t  lino;
6132

6133
  tDecoderInit(&decoder, buf, bufLen);
57,683✔
6134

6135
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
57,684!
6136
  TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, pRsp));
57,683!
6137

6138
  tEndDecode(&decoder);
57,682✔
6139
_exit:
57,682✔
6140
  tDecoderClear(&decoder);
57,682✔
6141
  return code;
57,684✔
6142
}
6143

6144
int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
6,593✔
6145
  SDecoder decoder = {0};
6,593✔
6146
  int32_t  code = 0;
6,593✔
6147
  int32_t  lino;
6148

6149
  tDecoderInit(&decoder, buf, bufLen);
6,593✔
6150

6151
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6,593!
6152

6153
  int32_t numOfMeta = 0;
6,593✔
6154
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
6,593!
6155
  pRsp->pMetaRsp = taosArrayInit(numOfMeta, sizeof(STableMetaRsp));
6,593✔
6156
  if (pRsp->pMetaRsp == NULL) {
6,593!
6157
    TAOS_CHECK_EXIT(terrno);
×
6158
  }
6159

6160
  for (int32_t i = 0; i < numOfMeta; ++i) {
7,102✔
6161
    STableMetaRsp tableMetaRsp = {0};
509✔
6162
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, &tableMetaRsp));
509!
6163
    if (taosArrayPush(pRsp->pMetaRsp, &tableMetaRsp) == NULL) {
1,018!
6164
      taosMemoryFree(tableMetaRsp.pSchemas);
×
6165
      taosMemoryFree(tableMetaRsp.pSchemaExt);
×
6166
      TAOS_CHECK_EXIT(terrno);
×
6167
    }
6168
  }
6169

6170
  int32_t numOfIndex = 0;
6,593✔
6171
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfIndex));
6,593!
6172

6173
  pRsp->pIndexRsp = taosArrayInit(numOfIndex, sizeof(STableIndexRsp));
6,593✔
6174
  if (pRsp->pIndexRsp == NULL) {
6,593!
6175
    TAOS_CHECK_EXIT(terrno);
×
6176
  }
6177

6178
  for (int32_t i = 0; i < numOfIndex; ++i) {
6,593!
6179
    STableIndexRsp tableIndexRsp = {0};
×
6180
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.tbName));
×
6181
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.dbFName));
×
6182
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &tableIndexRsp.suid));
×
6183
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.version));
×
6184
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.indexSize));
×
6185
    int32_t num = 0;
×
6186
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
6187
    if (num > 0) {
×
6188
      tableIndexRsp.pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
×
6189
      if (NULL == tableIndexRsp.pIndex) {
×
6190
        TAOS_CHECK_EXIT(terrno);
×
6191
      }
6192
      STableIndexInfo info;
6193
      for (int32_t j = 0; j < num; ++j) {
×
6194
        TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
×
6195
        if (NULL == taosArrayPush(tableIndexRsp.pIndex, &info)) {
×
6196
          taosMemoryFree(info.expr);
×
6197
          TAOS_CHECK_EXIT(terrno);
×
6198
        }
6199
      }
6200
    }
6201
    if (taosArrayPush(pRsp->pIndexRsp, &tableIndexRsp) == NULL) {
×
6202
      taosArrayDestroyEx(tableIndexRsp.pIndex, tFreeSTableIndexInfo);
×
6203
      TAOS_CHECK_EXIT(terrno);
×
6204
    }
6205
  }
6206

6207
  tEndDecode(&decoder);
6,593✔
6208

6209
_exit:
6,593✔
6210
  tDecoderClear(&decoder);
6,593✔
6211
  return code;
6,593✔
6212
}
6213

6214
void tFreeSTableMetaRsp(void *pRsp) {
1,123,110✔
6215
  if (NULL == pRsp) {
1,123,110!
6216
    return;
×
6217
  }
6218

6219
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemas);
1,123,110!
6220
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemaExt);
1,123,113!
6221
}
6222

6223
void tFreeSTableIndexRsp(void *info) {
9,096✔
6224
  if (NULL == info) {
9,096!
6225
    return;
×
6226
  }
6227

6228
  STableIndexRsp *pInfo = (STableIndexRsp *)info;
9,096✔
6229

6230
  taosArrayDestroyEx(pInfo->pIndex, tFreeSTableIndexInfo);
9,096✔
6231
}
6232

6233
void tFreeSSTbHbRsp(SSTbHbRsp *pRsp) {
70,337✔
6234
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
70,337✔
6235
  for (int32_t i = 0; i < numOfMeta; ++i) {
71,877✔
6236
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
1,540✔
6237
    tFreeSTableMetaRsp(pMetaRsp);
1,540✔
6238
  }
6239

6240
  taosArrayDestroy(pRsp->pMetaRsp);
70,337✔
6241

6242
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
70,337✔
6243
  for (int32_t i = 0; i < numOfIndex; ++i) {
70,337!
6244
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
6245
    tFreeSTableIndexRsp(pIndexRsp);
×
6246
  }
6247

6248
  taosArrayDestroy(pRsp->pIndexRsp);
70,337✔
6249
}
70,337✔
6250

6251
int32_t tSerializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
138,247✔
6252
  int32_t headLen = sizeof(SMsgHead);
138,247✔
6253
  int32_t code = 0;
138,247✔
6254
  int32_t lino;
6255
  if (buf != NULL) {
138,247✔
6256
    buf = (char *)buf + headLen;
69,128✔
6257
    bufLen -= headLen;
69,128✔
6258
  }
6259

6260
  SEncoder encoder = {0};
138,247✔
6261
  tEncoderInit(&encoder, buf, bufLen);
138,247✔
6262

6263
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
138,248!
6264
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
276,498!
6265
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
276,498!
6266
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->option));
276,498!
6267
  tEndEncode(&encoder);
138,249✔
6268

6269
_exit:
138,252✔
6270
  if (code) {
138,252!
6271
    tEncoderClear(&encoder);
×
6272
    return code;
×
6273
  } else {
6274
    int32_t tlen = encoder.pos;
138,252✔
6275
    tEncoderClear(&encoder);
138,252✔
6276

6277
    if (buf != NULL) {
138,249✔
6278
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
69,132✔
6279
      pHead->vgId = htonl(pReq->header.vgId);
69,132✔
6280
      pHead->contLen = htonl(tlen + headLen);
69,132✔
6281
    }
6282

6283
    return tlen + headLen;
138,249✔
6284
  }
6285
}
6286

6287
int32_t tDeserializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
2,246,525✔
6288
  int32_t   headLen = sizeof(SMsgHead);
2,246,525✔
6289
  int32_t   code = 0;
2,246,525✔
6290
  int32_t   lino;
6291
  SMsgHead *pHead = buf;
2,246,525✔
6292
  pHead->vgId = pReq->header.vgId;
2,246,525✔
6293
  pHead->contLen = pReq->header.contLen;
2,246,525✔
6294

6295
  SDecoder decoder = {0};
2,246,525✔
6296
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
2,246,525✔
6297

6298
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,246,788!
6299
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
2,247,125!
6300
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
2,246,872!
6301
  if (!tDecodeIsEnd(&decoder)) {
2,246,910✔
6302
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->option));
4,493,423!
6303
  } else {
6304
    pReq->option = 0;
209✔
6305
  }
6306

6307
  tEndDecode(&decoder);
2,246,931✔
6308
_exit:
2,246,745✔
6309
  tDecoderClear(&decoder);
2,246,745✔
6310
  return code;
2,247,103✔
6311
}
6312

6313
int32_t tSerializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
682✔
6314
  SEncoder encoder = {0};
682✔
6315
  int32_t  code = 0;
682✔
6316
  int32_t  lino;
6317
  int32_t  tlen;
6318
  tEncoderInit(&encoder, buf, bufLen);
682✔
6319

6320
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
682!
6321
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
1,364!
6322
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
1,364!
6323
  ENCODESQL();
2,046!
6324
  tEndEncode(&encoder);
682✔
6325

6326
_exit:
682✔
6327
  if (code) {
682!
6328
    tlen = code;
×
6329
  } else {
6330
    tlen = encoder.pos;
682✔
6331
  }
6332
  tEncoderClear(&encoder);
682✔
6333
  return tlen;
682✔
6334
}
6335

6336
int32_t tDeserializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
343✔
6337
  SDecoder decoder = {0};
343✔
6338
  int32_t  code = 0;
343✔
6339
  int32_t  lino;
6340

6341
  tDecoderInit(&decoder, buf, bufLen);
343✔
6342

6343
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
343!
6344
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
343!
6345
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
686!
6346
  DECODESQL();
1,029!
6347
  tEndDecode(&decoder);
343✔
6348

6349
_exit:
343✔
6350
  tDecoderClear(&decoder);
343✔
6351
  return code;
343✔
6352
}
6353

6354
void tFreeSMDropTopicReq(SMDropTopicReq *pReq) { FREESQL(); }
684!
6355

6356
int32_t tSerializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
26✔
6357
  SEncoder encoder = {0};
26✔
6358
  int32_t  code = 0;
26✔
6359
  int32_t  lino;
6360
  int32_t  tlen;
6361
  tEncoderInit(&encoder, buf, bufLen);
26✔
6362

6363
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
26!
6364
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->topic));
52!
6365
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
52!
6366
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
52!
6367
  tEndEncode(&encoder);
26✔
6368

6369
_exit:
26✔
6370
  if (code) {
26!
6371
    tlen = code;
×
6372
  } else {
6373
    tlen = encoder.pos;
26✔
6374
  }
6375
  tEncoderClear(&encoder);
26✔
6376
  return tlen;
26✔
6377
}
6378

6379
int32_t tDeserializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
9✔
6380
  SDecoder decoder = {0};
9✔
6381
  int32_t  code = 0;
9✔
6382
  int32_t  lino;
6383
  tDecoderInit(&decoder, buf, bufLen);
9✔
6384

6385
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9!
6386
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->topic));
9!
6387
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
9!
6388
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
18!
6389
  tEndDecode(&decoder);
9✔
6390

6391
_exit:
9✔
6392
  tDecoderClear(&decoder);
9✔
6393
  return code;
9✔
6394
}
6395

6396
int32_t tSerializeSCMCreateTopicReq(void *buf, int32_t bufLen, const SCMCreateTopicReq *pReq) {
1,066✔
6397
  SEncoder encoder = {0};
1,066✔
6398
  int32_t  code = 0;
1,066✔
6399
  int32_t  lino;
6400
  int32_t  tlen;
6401
  tEncoderInit(&encoder, buf, bufLen);
1,066✔
6402

6403
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,066!
6404
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
2,132!
6405
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
2,132!
6406
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->subType));
2,132!
6407
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withMeta));
2,132!
6408
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subDbName));
2,132!
6409
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
1,066✔
6410
  } else {
6411
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
900✔
6412
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subStbName));
188!
6413
    }
6414
    if (pReq->ast && strlen(pReq->ast) > 0) {
900!
6415
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->ast)));
1,692!
6416
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
1,692!
6417
    } else {
6418
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
54!
6419
    }
6420
  }
6421
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->sql)));
2,132!
6422
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
2,132!
6423

6424
  tEndEncode(&encoder);
1,066✔
6425

6426
_exit:
1,066✔
6427
  if (code) {
1,066!
6428
    tlen = code;
×
6429
  } else {
6430
    tlen = encoder.pos;
1,066✔
6431
  }
6432
  tEncoderClear(&encoder);
1,066✔
6433
  return tlen;
1,066✔
6434
}
6435

6436
int32_t tDeserializeSCMCreateTopicReq(void *buf, int32_t bufLen, SCMCreateTopicReq *pReq) {
526✔
6437
  int32_t  sqlLen = 0;
526✔
6438
  int32_t  astLen = 0;
526✔
6439
  int32_t  code = 0;
526✔
6440
  int32_t  lino;
6441
  SDecoder decoder = {0};
526✔
6442
  tDecoderInit(&decoder, buf, bufLen);
526✔
6443

6444
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
526!
6445
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
526!
6446
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
1,052!
6447
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->subType));
1,052!
6448
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withMeta));
1,052!
6449
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subDbName));
526!
6450
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
526✔
6451
  } else {
6452
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
450✔
6453
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subStbName));
37!
6454
    }
6455
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
450!
6456
    if (astLen > 0) {
450✔
6457
      pReq->ast = taosMemoryCalloc(1, astLen + 1);
429!
6458
      if (pReq->ast == NULL) {
429!
6459
        TAOS_CHECK_EXIT(terrno);
×
6460
      }
6461
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
429!
6462
    }
6463
  }
6464
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
526!
6465
  if (sqlLen > 0) {
526!
6466
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
526!
6467
    if (pReq->sql == NULL) {
526!
6468
      TAOS_CHECK_EXIT(terrno);
×
6469
    }
6470
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
526!
6471
  }
6472

6473
  tEndDecode(&decoder);
526✔
6474

6475
_exit:
526✔
6476
  tDecoderClear(&decoder);
526✔
6477
  return code;
526✔
6478
}
6479

6480
void tFreeSCMCreateTopicReq(SCMCreateTopicReq *pReq) {
1,167✔
6481
  taosMemoryFreeClear(pReq->sql);
1,167!
6482
  if (TOPIC_SUB_TYPE__DB != pReq->subType) {
1,167✔
6483
    taosMemoryFreeClear(pReq->ast);
1,008!
6484
  }
6485
}
1,167✔
6486

6487
int32_t tSerializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
23,549✔
6488
  SEncoder encoder = {0};
23,549✔
6489
  int32_t  code = 0;
23,549✔
6490
  int32_t  lino;
6491
  int32_t  tlen;
6492
  tEncoderInit(&encoder, buf, bufLen);
23,549✔
6493

6494
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
23,549!
6495
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->connType));
47,100!
6496
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pid));
47,100!
6497
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->app));
47,100!
6498
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
47,100!
6499
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
47,100!
6500
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->passwd, TSDB_PASSWORD_LEN));
47,100!
6501
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->startTime));
47,100!
6502
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sVer));
47,100!
6503
  tEndEncode(&encoder);
23,550✔
6504

6505
_exit:
23,550✔
6506
  if (code) {
23,550!
6507
    tlen = code;
×
6508
  } else {
6509
    tlen = encoder.pos;
23,550✔
6510
  }
6511
  tEncoderClear(&encoder);
23,550✔
6512
  return tlen;
23,549✔
6513
}
6514

6515
int32_t tDeserializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
88,374✔
6516
  SDecoder decoder = {0};
88,374✔
6517
  int32_t  code = 0;
88,374✔
6518
  int32_t  lino;
6519
  tDecoderInit(&decoder, buf, bufLen);
88,374✔
6520

6521
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
88,374!
6522
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->connType));
176,748!
6523
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pid));
176,748!
6524
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->app));
88,374!
6525
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
88,374!
6526
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
88,374!
6527
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->passwd));
88,374!
6528
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->startTime));
176,748!
6529
  // Check the client version from version 3.0.3.0
6530
  if (tDecodeIsEnd(&decoder)) {
88,374!
6531
    tDecoderClear(&decoder);
×
6532
    TAOS_CHECK_EXIT(TSDB_CODE_VERSION_NOT_COMPATIBLE);
×
6533
  }
6534
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sVer));
88,374!
6535
  tEndDecode(&decoder);
88,374✔
6536

6537
_exit:
88,374✔
6538
  tDecoderClear(&decoder);
88,374✔
6539
  return code;
88,374✔
6540
}
6541

6542
int32_t tSerializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
176,732✔
6543
  SEncoder encoder = {0};
176,732✔
6544
  int32_t  code = 0;
176,732✔
6545
  int32_t  lino;
6546
  int32_t  tlen;
6547
  tEncoderInit(&encoder, buf, bufLen);
176,732✔
6548

6549
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
176,732!
6550
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->acctId));
353,464!
6551
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->clusterId));
353,464!
6552
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->connId));
353,464!
6553
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeNum));
353,464!
6554
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->superUser));
353,464!
6555
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->sysInfo));
353,464!
6556
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->connType));
353,464!
6557
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, &pRsp->epSet));
176,732!
6558
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->svrTimestamp));
353,464!
6559
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sVer));
353,464!
6560
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sDetailVer));
353,464!
6561
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->passVer));
353,464!
6562
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->authVer));
353,464!
6563
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->whiteListVer));
353,464!
6564
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pRsp->monitorParas));
176,732!
6565
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->enableAuditDelete));
353,460!
6566
  tEndEncode(&encoder);
176,730✔
6567

6568
_exit:
176,730✔
6569
  if (code) {
176,730!
6570
    tlen = code;
×
6571
  } else {
6572
    tlen = encoder.pos;
176,730✔
6573
  }
6574
  tEncoderClear(&encoder);
176,730✔
6575
  return tlen;
176,730✔
6576
}
6577

6578
int32_t tDeserializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
11,729✔
6579
  SDecoder decoder = {0};
11,729✔
6580
  int32_t  code = 0;
11,729✔
6581
  int32_t  lino;
6582
  tDecoderInit(&decoder, buf, bufLen);
11,729✔
6583

6584
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,729!
6585
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->acctId));
23,458!
6586
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->clusterId));
23,458!
6587
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->connId));
23,458!
6588
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeNum));
23,458!
6589
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->superUser));
23,458!
6590
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->sysInfo));
23,458!
6591
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->connType));
23,458!
6592
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &pRsp->epSet));
11,729!
6593
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->svrTimestamp));
23,458!
6594
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sVer));
11,729!
6595
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sDetailVer));
11,729!
6596

6597
  if (!tDecodeIsEnd(&decoder)) {
11,729!
6598
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->passVer));
23,458!
6599
  } else {
6600
    pRsp->passVer = 0;
×
6601
  }
6602
  // since 3.0.7.0
6603
  if (!tDecodeIsEnd(&decoder)) {
11,729!
6604
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->authVer));
23,458!
6605
  } else {
6606
    pRsp->authVer = 0;
×
6607
  }
6608

6609
  if (!tDecodeIsEnd(&decoder)) {
11,729!
6610
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->whiteListVer));
23,458!
6611
  } else {
6612
    pRsp->whiteListVer = 0;
×
6613
  }
6614
  if (!tDecodeIsEnd(&decoder)) {
11,729!
6615
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pRsp->monitorParas));
11,729!
6616
  }
6617
  if (!tDecodeIsEnd(&decoder)) {
11,729!
6618
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->enableAuditDelete));
23,458!
6619
  } else {
6620
    pRsp->enableAuditDelete = 0;
×
6621
  }
6622
  tEndDecode(&decoder);
11,729✔
6623

6624
_exit:
11,729✔
6625
  tDecoderClear(&decoder);
11,729✔
6626
  return code;
11,729✔
6627
}
6628

6629
int32_t tSerializeSMTimerMsg(void *buf, int32_t bufLen, SMTimerReq *pReq) {
237,840✔
6630
  SEncoder encoder = {0};
237,840✔
6631
  int32_t  code = 0;
237,840✔
6632
  int32_t  lino;
6633
  int32_t  tlen;
6634
  tEncoderInit(&encoder, buf, bufLen);
237,840✔
6635

6636
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
237,840!
6637
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
475,680!
6638
  tEndEncode(&encoder);
237,840✔
6639

6640
_exit:
237,840✔
6641
  if (code) {
237,840!
6642
    tlen = code;
×
6643
  } else {
6644
    tlen = encoder.pos;
237,840✔
6645
  }
6646
  tEncoderClear(&encoder);
237,840✔
6647
  return tlen;
237,840✔
6648
}
6649

6650
int32_t tSerializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
4✔
6651
  SEncoder encoder = {0};
4✔
6652
  int32_t  code = 0;
4✔
6653
  int32_t  lino;
6654
  int32_t  tlen;
6655
  tEncoderInit(&encoder, buf, bufLen);
4✔
6656

6657
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
6658

6659
  int32_t size = taosArrayGetSize(pMsg->pList);
4✔
6660
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
4!
6661

6662
  for (int32_t i = 0; i < size; i++) {
10✔
6663
    SOrphanTask *pTask = taosArrayGet(pMsg->pList, i);
6✔
6664
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pTask->streamId));
12!
6665
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->taskId));
12!
6666
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->nodeId));
12!
6667
  }
6668

6669
  tEndEncode(&encoder);
4✔
6670

6671
_exit:
4✔
6672
  if (code) {
4!
6673
    tlen = code;
×
6674
  } else {
6675
    tlen = encoder.pos;
4✔
6676
  }
6677
  tEncoderClear(&encoder);
4✔
6678
  return tlen;
4✔
6679
}
6680

6681
int32_t tDeserializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
2✔
6682
  SDecoder decoder = {0};
2✔
6683
  int32_t  code = 0;
2✔
6684
  int32_t  lino;
6685
  tDecoderInit(&decoder, buf, bufLen);
2✔
6686

6687
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
6688

6689
  int32_t num = 0;
2✔
6690
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
2!
6691

6692
  if (num > 0) {
2!
6693
    pMsg->pList = taosArrayInit(num, sizeof(SOrphanTask));
2✔
6694
    if (NULL == pMsg->pList) {
2!
6695
      TAOS_CHECK_EXIT(terrno);
×
6696
    }
6697
    for (int32_t i = 0; i < num; ++i) {
5✔
6698
      SOrphanTask info = {0};
3✔
6699
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &info.streamId));
3!
6700
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.taskId));
3!
6701
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.nodeId));
3!
6702

6703
      if (taosArrayPush(pMsg->pList, &info) == NULL) {
6!
6704
        TAOS_CHECK_EXIT(terrno);
×
6705
      }
6706
    }
6707
  }
6708

6709
  tEndDecode(&decoder);
2✔
6710
_exit:
2✔
6711
  tDecoderClear(&decoder);
2✔
6712
  return code;
2✔
6713
}
6714

6715
void tDestroyDropOrphanTaskMsg(SMStreamDropOrphanMsg *pMsg) {
2✔
6716
  if (pMsg == NULL) {
2!
6717
    return;
×
6718
  }
6719

6720
  taosArrayDestroy(pMsg->pList);
2✔
6721
}
6722

6723
int32_t tEncodeSReplica(SEncoder *pEncoder, SReplica *pReplica) {
350,010✔
6724
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReplica->id));
700,020!
6725
  TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pReplica->port));
700,020!
6726
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReplica->fqdn));
700,020!
6727
  return 0;
350,010✔
6728
}
6729

6730
int32_t tDecodeSReplica(SDecoder *pDecoder, SReplica *pReplica) {
237,924✔
6731
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReplica->id));
475,744!
6732
  TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pReplica->port));
475,407!
6733
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReplica->fqdn));
237,587✔
6734
  return 0;
238,246✔
6735
}
6736

6737
int32_t tSerializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
20,110✔
6738
  SEncoder encoder = {0};
20,110✔
6739
  int32_t  code = 0;
20,110✔
6740
  int32_t  lino;
6741
  int32_t  tlen;
6742
  tEncoderInit(&encoder, buf, bufLen);
20,110✔
6743

6744
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20,110!
6745
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
40,220!
6746
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
40,220!
6747
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
40,220!
6748
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
40,220!
6749
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
40,220!
6750
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
40,220!
6751
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
40,220!
6752
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
40,220!
6753
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
40,220!
6754
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
40,220!
6755
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
40,220!
6756
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
40,220!
6757
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
40,220!
6758
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
40,220!
6759
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
40,220!
6760
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
40,220!
6761
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashBegin));
40,220!
6762
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashEnd));
40,220!
6763
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->hashMethod));
40,220!
6764
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
40,220!
6765
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
40,220!
6766
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
40,220!
6767
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
40,220!
6768
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
40,220!
6769
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
40,220!
6770
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
40,220!
6771
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
120,660✔
6772
    SReplica *pReplica = &pReq->replicas[i];
100,550✔
6773
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
100,550!
6774
  }
6775
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
40,220!
6776
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
20,146✔
6777
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
36✔
6778
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
72!
6779
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
72!
6780
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
72!
6781
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
72!
6782
  }
6783

6784
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isTsma));
40,220!
6785
  if (pReq->isTsma) {
20,110✔
6786
    uint32_t tsmaLen = (uint32_t)(htonl(((SMsgHead *)pReq->pTsma)->contLen));
58✔
6787
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pTsma, tsmaLen));
116!
6788
  }
6789
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
40,220!
6790
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
40,220!
6791
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
40,220!
6792
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
40,220!
6793
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sstTrigger));
40,220!
6794
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
40,220!
6795
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
40,220!
6796
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
40,220!
6797
  for (int32_t i = 0; i < 6; ++i) {
140,770✔
6798
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
241,320!
6799
  }
6800
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
40,220!
6801
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
40,220!
6802
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
221,210✔
6803
    SReplica *pReplica = &pReq->learnerReplicas[i];
201,100✔
6804
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
201,100!
6805
  }
6806
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
40,220!
6807
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
40,220!
6808
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
40,220!
6809
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
40,220!
6810
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
40,220!
6811
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
40,220!
6812

6813
  tEndEncode(&encoder);
20,110✔
6814

6815
_exit:
20,110✔
6816
  if (code) {
20,110!
6817
    tlen = code;
×
6818
  } else {
6819
    tlen = encoder.pos;
20,110✔
6820
  }
6821
  tEncoderClear(&encoder);
20,110✔
6822
  return tlen;
20,110✔
6823
}
6824

6825
int32_t tDeserializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
10,072✔
6826
  SDecoder decoder = {0};
10,072✔
6827
  int32_t  code = 0;
10,072✔
6828
  int32_t  lino;
6829

6830
  tDecoderInit(&decoder, buf, bufLen);
10,072✔
6831

6832
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10,077!
6833
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
20,129!
6834
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
10,066!
6835
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
20,132!
6836
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
20,126!
6837
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
20,140!
6838
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
20,142!
6839
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
20,131!
6840
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
20,130!
6841
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
20,135!
6842
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
20,132!
6843
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
20,106!
6844
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
20,094!
6845
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
20,113!
6846
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
20,121!
6847
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
20,109!
6848
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
20,104!
6849
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashBegin));
20,125!
6850
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashEnd));
20,134!
6851
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->hashMethod));
20,133!
6852
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
20,129!
6853
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
20,125!
6854
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
20,122!
6855
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
20,118!
6856
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
20,116!
6857
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
20,114!
6858
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
20,112!
6859
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
60,266✔
6860
    SReplica *pReplica = &pReq->replicas[i];
50,131✔
6861
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
50,131!
6862
  }
6863
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
20,212!
6864
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
10,077✔
6865
  if (pReq->pRetensions == NULL) {
10,044!
UNCOV
6866
    TAOS_CHECK_EXIT(terrno);
×
6867
  }
6868

6869
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
10,064✔
6870
    SRetention rentension = {0};
18✔
6871
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
18!
6872
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
18!
6873
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
18!
6874
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
18!
6875
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
36!
6876
      TAOS_CHECK_EXIT(terrno);
×
6877
    }
6878
  }
6879

6880
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isTsma));
20,074!
6881
  if (pReq->isTsma) {
10,028✔
6882
    TAOS_CHECK_EXIT(tDecodeBinary(&decoder, (uint8_t **)&pReq->pTsma, NULL));
58!
6883
  }
6884

6885
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
20,051!
6886
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
20,034!
6887
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
20,051!
6888
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
20,086!
6889
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sstTrigger));
20,085!
6890
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
20,081!
6891
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
20,094!
6892
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
20,094!
6893
  for (int32_t i = 0; i < 6; ++i) {
70,093✔
6894
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
120,068!
6895
  }
6896
  if (!tDecodeIsEnd(&decoder)) {
10,076✔
6897
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
20,087!
6898
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
20,097!
6899
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
110,542✔
6900
      SReplica *pReplica = &pReq->learnerReplicas[i];
100,318✔
6901
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
100,318!
6902
    }
6903
  }
6904
  if (!tDecodeIsEnd(&decoder)) {
10,260✔
6905
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
20,164!
6906
  }
6907
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
10,256✔
6908
  if (!tDecodeIsEnd(&decoder)) {
10,256✔
6909
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
20,151!
6910
  }
6911
  pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
10,253✔
6912
  pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
10,253✔
6913
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
10,253✔
6914
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
10,253✔
6915
  if (!tDecodeIsEnd(&decoder)) {
10,253✔
6916
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
20,106!
6917
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
20,088!
6918
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
20,102!
6919
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
20,096!
6920
  }
6921

6922
  tEndDecode(&decoder);
10,229✔
6923

6924
_exit:
10,051✔
6925
  tDecoderClear(&decoder);
10,051✔
6926
  return code;
10,034✔
6927
}
6928

6929
int32_t tFreeSCreateVnodeReq(SCreateVnodeReq *pReq) {
10,088✔
6930
  taosArrayDestroy(pReq->pRetensions);
10,088✔
6931
  pReq->pRetensions = NULL;
10,088✔
6932
  return 0;
10,088✔
6933
}
6934

6935
int32_t tSerializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
84✔
6936
  SEncoder encoder = {0};
84✔
6937
  int32_t  code = 0;
84✔
6938
  int32_t  lino;
6939
  int32_t  tlen;
6940
  tEncoderInit(&encoder, buf, bufLen);
84✔
6941

6942
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
84!
6943

6944
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
168!
6945
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
168!
6946
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
168!
6947

6948
  tEndEncode(&encoder);
84✔
6949

6950
_exit:
84✔
6951
  if (code) {
84!
6952
    tlen = code;
×
6953
  } else {
6954
    tlen = encoder.pos;
84✔
6955
  }
6956
  tEncoderClear(&encoder);
84✔
6957
  return tlen;
84✔
6958
}
6959

6960
int32_t tDeserializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
48✔
6961
  int32_t  headLen = sizeof(SMsgHead);
48✔
6962
  SDecoder decoder = {0};
48✔
6963
  int32_t  code = 0;
48✔
6964
  int32_t  lino;
6965
  tDecoderInit(&decoder, ((uint8_t *)buf) + headLen, bufLen - headLen);
48✔
6966

6967
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
48!
6968
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
96!
6969
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
96!
6970
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
96!
6971

6972
  tEndDecode(&decoder);
48✔
6973
_exit:
48✔
6974
  tDecoderClear(&decoder);
48✔
6975
  return code;
48✔
6976
}
6977

6978
int32_t tSerializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
96✔
6979
  SEncoder encoder = {0};
96✔
6980
  int32_t  code = 0;
96✔
6981
  int32_t  lino;
6982
  int32_t  tlen;
6983
  tEncoderInit(&encoder, buf, bufLen);
96✔
6984

6985
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
96!
6986
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
192!
6987
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
192!
6988
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
192!
6989
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numberFileset));
192!
6990
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->finished));
192!
6991
  // 1. add progress and remaining time
6992
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->progress));
192!
6993
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->remainingTime));
192!
6994

6995
  tEndEncode(&encoder);
96✔
6996

6997
_exit:
96✔
6998
  if (code) {
96!
6999
    tlen = code;
×
7000
  } else {
7001
    tlen = encoder.pos;
96✔
7002
  }
7003
  tEncoderClear(&encoder);
96✔
7004
  return tlen;
96✔
7005
}
7006
int32_t tDeserializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
42✔
7007
  SDecoder decoder = {0};
42✔
7008
  int32_t  code = 0;
42✔
7009
  int32_t  lino;
7010
  tDecoderInit(&decoder, buf, bufLen);
42✔
7011

7012
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
42!
7013
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
84!
7014
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
84!
7015
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
84!
7016
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numberFileset));
84!
7017
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->finished));
84!
7018
  // 1. decode progress and remaining time
7019
  if (!tDecodeIsEnd(&decoder)) {
42!
7020
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->progress));
84!
7021
    TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->remainingTime));
84!
7022
  } else {
7023
    pReq->progress = 0;
×
7024
    pReq->remainingTime = 0;
×
7025
  }
7026

7027
  tEndDecode(&decoder);
42✔
7028
_exit:
42✔
7029
  tDecoderClear(&decoder);
42✔
7030
  return code;
42✔
7031
}
7032

7033
int32_t tSerializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
28,656✔
7034
  SEncoder encoder = {0};
28,656✔
7035
  int32_t  code = 0;
28,656✔
7036
  int32_t  lino;
7037
  int32_t  tlen;
7038
  tEncoderInit(&encoder, buf, bufLen);
28,656✔
7039

7040
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
28,656!
7041
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
57,312!
7042
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
57,312!
7043
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
57,312!
7044
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
57,312!
7045
  for (int32_t i = 0; i < 8; ++i) {
257,904✔
7046
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
458,496!
7047
  }
7048
  tEndEncode(&encoder);
28,656✔
7049

7050
_exit:
28,656✔
7051
  if (code) {
28,656!
7052
    tlen = code;
×
7053
  } else {
7054
    tlen = encoder.pos;
28,656✔
7055
  }
7056
  tEncoderClear(&encoder);
28,656✔
7057
  return tlen;
28,656✔
7058
}
7059

7060
int32_t tDeserializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
4,574✔
7061
  SDecoder decoder = {0};
4,574✔
7062
  int32_t  code = 0;
4,574✔
7063
  int32_t  lino;
7064
  tDecoderInit(&decoder, buf, bufLen);
4,574✔
7065

7066
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,574!
7067
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
9,148!
7068
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
9,148!
7069
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
9,148!
7070
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4,574!
7071
  for (int32_t i = 0; i < 8; ++i) {
41,166✔
7072
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
73,184!
7073
  }
7074
  tEndDecode(&decoder);
4,574✔
7075

7076
_exit:
4,574✔
7077
  tDecoderClear(&decoder);
4,574✔
7078
  return code;
4,574✔
7079
}
7080
int32_t tSerializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
4,268✔
7081
  SEncoder encoder = {0};
4,268✔
7082
  int32_t  code = 0;
4,268✔
7083
  int32_t  lino;
7084
  int32_t  tlen;
7085
  tEncoderInit(&encoder, buf, bufLen);
4,268✔
7086

7087
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,268!
7088
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
8,536!
7089
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
8,536!
7090
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stbUid));
8,536!
7091
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
8,536!
7092
  for (int32_t i = 0; i < 8; ++i) {
38,412✔
7093
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
68,288!
7094
  }
7095
  tEndEncode(&encoder);
4,268✔
7096

7097
_exit:
4,268✔
7098
  if (code) {
4,268!
7099
    tlen = code;
×
7100
  } else {
7101
    tlen = encoder.pos;
4,268✔
7102
  }
7103
  tEncoderClear(&encoder);
4,268✔
7104
  return tlen;
4,268✔
7105
}
7106

7107
int32_t tDeserializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
2,134✔
7108
  SDecoder decoder = {0};
2,134✔
7109
  int32_t  code = 0;
2,134✔
7110
  int32_t  lino;
7111
  tDecoderInit(&decoder, buf, bufLen);
2,134✔
7112

7113
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,134!
7114
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
2,134!
7115
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
2,134!
7116
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stbUid));
4,268!
7117
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
4,268!
7118
  for (int32_t i = 0; i < 8; ++i) {
19,206✔
7119
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
34,144!
7120
  }
7121
  tEndDecode(&decoder);
2,134✔
7122

7123
_exit:
2,134✔
7124
  tDecoderClear(&decoder);
2,134✔
7125
  return code;
2,134✔
7126
}
7127

7128
int32_t tSerializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
56✔
7129
  SEncoder encoder = {0};
56✔
7130
  int32_t  code = 0;
56✔
7131
  int32_t  lino;
7132
  int32_t  tlen;
7133
  tEncoderInit(&encoder, buf, bufLen);
56✔
7134

7135
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
56!
7136
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
112!
7137
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
112!
7138
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactStartTime));
112!
7139

7140
  // 1.1 add tw.skey and tw.ekey
7141
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.skey));
112!
7142
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.ekey));
112!
7143

7144
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
112!
7145

7146
  tEndEncode(&encoder);
56✔
7147

7148
_exit:
56✔
7149
  if (code) {
56!
7150
    tlen = code;
×
7151
  } else {
7152
    tlen = encoder.pos;
56✔
7153
  }
7154
  tEncoderClear(&encoder);
56✔
7155
  return tlen;
56✔
7156
}
7157

7158
int32_t tDeserializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
30✔
7159
  SDecoder decoder = {0};
30✔
7160
  int32_t  code = 0;
30✔
7161
  int32_t  lino;
7162
  tDecoderInit(&decoder, buf, bufLen);
30✔
7163

7164
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
30!
7165
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
60!
7166
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
30!
7167
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactStartTime));
60!
7168

7169
  // 1.1
7170
  if (tDecodeIsEnd(&decoder)) {
30!
7171
    pReq->tw.skey = TSKEY_MIN;
×
7172
    pReq->tw.ekey = TSKEY_MAX;
×
7173
  } else {
7174
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.skey));
60!
7175
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.ekey));
60!
7176
  }
7177

7178
  if (!tDecodeIsEnd(&decoder)) {
30!
7179
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
60!
7180
  }
7181

7182
  tEndDecode(&decoder);
30✔
7183
_exit:
30✔
7184
  tDecoderClear(&decoder);
30✔
7185
  return code;
30✔
7186
}
7187

7188
int32_t tSerializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
×
7189
  SEncoder encoder = {0};
×
7190
  int32_t  code = 0;
×
7191
  int32_t  lino;
7192
  int32_t  tlen;
7193
  tEncoderInit(&encoder, buf, bufLen);
×
7194

7195
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7196
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
7197
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
7198
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
7199

7200
  tEndEncode(&encoder);
×
7201

7202
_exit:
×
7203
  if (code) {
×
7204
    tlen = code;
×
7205
  } else {
7206
    tlen = encoder.pos;
×
7207
  }
7208
  tEncoderClear(&encoder);
×
7209
  return tlen;
×
7210
}
7211

7212
int32_t tDeserializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
×
7213
  int32_t  code = 0;
×
7214
  int32_t  lino;
7215
  SDecoder decoder = {0};
×
7216

7217
  tDecoderInit(&decoder, buf, bufLen);
×
7218

7219
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7220
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
7221
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
7222
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
7223
  tEndDecode(&decoder);
×
7224

7225
_exit:
×
7226
  tDecoderClear(&decoder);
×
7227
  return code;
×
7228
}
7229

7230
int32_t tSerializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
1,112✔
7231
  int32_t  code = 0;
1,112✔
7232
  int32_t  lino;
7233
  int32_t  tlen;
7234
  SEncoder encoder = {0};
1,112✔
7235

7236
  tEncoderInit(&encoder, buf, bufLen);
1,112✔
7237

7238
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,112!
7239
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
2,224!
7240
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
2,224!
7241
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
2,224!
7242
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
2,224!
7243
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
2,224!
7244
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
2,224!
7245
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
2,224!
7246
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
2,224!
7247
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
2,224!
7248
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
2,224!
7249
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
2,224!
7250
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
2,224!
7251
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
2,224!
7252
  for (int32_t i = 0; i < 7; ++i) {
8,896✔
7253
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
15,568!
7254
  }
7255

7256
  // 1st modification
7257
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sttTrigger));
2,224!
7258
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
2,224!
7259
  // 2nd modification
7260
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
2,224!
7261
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
2,224!
7262
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
2,224!
7263

7264
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
2,224!
7265
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
2,224!
7266

7267
  tEndEncode(&encoder);
1,112✔
7268

7269
_exit:
1,112✔
7270
  if (code) {
1,112!
7271
    tlen = code;
×
7272
  } else {
7273
    tlen = encoder.pos;
1,112✔
7274
  }
7275
  tEncoderClear(&encoder);
1,112✔
7276
  return tlen;
1,112✔
7277
}
7278

7279
int32_t tDeserializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
760✔
7280
  SDecoder decoder = {0};
760✔
7281
  int32_t  code = 0;
760✔
7282
  int32_t  lino;
7283
  tDecoderInit(&decoder, buf, bufLen);
760✔
7284

7285
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
761!
7286
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
1,523!
7287
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
1,523!
7288
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
1,524!
7289
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
1,524!
7290
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
1,524!
7291
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
1,524!
7292
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
1,522!
7293
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
1,521!
7294
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
1,522!
7295
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
1,522!
7296
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
1,523!
7297
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
1,524!
7298
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
1,524!
7299
  for (int32_t i = 0; i < 7; ++i) {
6,081✔
7300
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
10,636!
7301
  }
7302

7303
  // 1st modification
7304
  if (tDecodeIsEnd(&decoder)) {
764!
7305
    pReq->sttTrigger = -1;
×
7306
    pReq->minRows = -1;
×
7307
  } else {
7308
    TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sttTrigger));
1,526!
7309
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
1,524!
7310
  }
7311

7312
  // 2n modification
7313
  if (tDecodeIsEnd(&decoder)) {
762!
7314
    pReq->walRetentionPeriod = -1;
×
7315
    pReq->walRetentionSize = -1;
×
7316
  } else {
7317
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
1,524!
7318
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
1,523!
7319
  }
7320
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
761✔
7321
  if (!tDecodeIsEnd(&decoder)) {
761!
7322
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
1,524!
7323
  }
7324

7325
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
761✔
7326
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
761✔
7327
  if (!tDecodeIsEnd(&decoder)) {
761!
7328
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal) < 0);
1,522!
7329
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact) < 0);
1,523!
7330
  }
7331

7332
  tEndDecode(&decoder);
762✔
7333

7334
_exit:
762✔
7335
  tDecoderClear(&decoder);
762✔
7336
  return code;
762✔
7337
}
7338

7339
int32_t tSerializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
2,828✔
7340
  SEncoder encoder = {0};
2,828✔
7341
  int32_t  code = 0;
2,828✔
7342
  int32_t  lino;
7343
  int32_t  tlen;
7344
  tEncoderInit(&encoder, buf, bufLen);
2,828✔
7345

7346
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,828!
7347
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
5,656!
7348
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
5,656!
7349
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
5,656!
7350
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
5,656!
7351
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
16,968✔
7352
    SReplica *pReplica = &pReq->replicas[i];
14,140✔
7353
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
14,140!
7354
  }
7355
  for (int32_t i = 0; i < 8; ++i) {
25,452✔
7356
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
45,248!
7357
  }
7358
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
5,656!
7359
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
5,656!
7360
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
31,108✔
7361
    SReplica *pReplica = &pReq->learnerReplicas[i];
28,280✔
7362
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
28,280!
7363
  }
7364
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
5,656!
7365
  tEndEncode(&encoder);
2,828✔
7366

7367
_exit:
2,828✔
7368
  if (code) {
2,828!
7369
    tlen = code;
×
7370
  } else {
7371
    tlen = encoder.pos;
2,828✔
7372
  }
7373
  tEncoderClear(&encoder);
2,828✔
7374
  return tlen;
2,828✔
7375
}
7376

7377
int32_t tDeserializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
5,660✔
7378
  SDecoder decoder = {0};
5,660✔
7379
  int32_t  code = 0;
5,660✔
7380
  int32_t  lino;
7381
  tDecoderInit(&decoder, buf, bufLen);
5,660✔
7382

7383
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,660!
7384
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
11,320!
7385
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
11,320!
7386
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
11,320!
7387
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
11,320!
7388
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
33,960✔
7389
    SReplica *pReplica = &pReq->replicas[i];
28,300✔
7390
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
28,300!
7391
  }
7392
  for (int32_t i = 0; i < 8; ++i) {
50,940✔
7393
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
90,560!
7394
  }
7395
  if (!tDecodeIsEnd(&decoder)) {
5,660!
7396
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
11,320!
7397
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
11,320!
7398
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
62,260✔
7399
      SReplica *pReplica = &pReq->learnerReplicas[i];
56,600✔
7400
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
56,600!
7401
    }
7402
  }
7403
  if (!tDecodeIsEnd(&decoder)) {
5,660!
7404
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
11,320!
7405
  }
7406

7407
  tEndDecode(&decoder);
5,660✔
7408
_exit:
5,660✔
7409
  tDecoderClear(&decoder);
5,660✔
7410
  return code;
5,660✔
7411
}
7412

7413
int32_t tSerializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
128✔
7414
  SEncoder encoder = {0};
128✔
7415
  int32_t  code = 0;
128✔
7416
  int32_t  lino;
7417
  int32_t  tlen;
7418
  tEncoderInit(&encoder, buf, bufLen);
128✔
7419

7420
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
128!
7421
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
256!
7422
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->disable));
256!
7423

7424
  tEndEncode(&encoder);
128✔
7425

7426
_exit:
128✔
7427
  if (code) {
128!
7428
    tlen = code;
×
7429
  } else {
7430
    tlen = encoder.pos;
128✔
7431
  }
7432
  tEncoderClear(&encoder);
128✔
7433
  return tlen;
128✔
7434
}
7435

7436
int32_t tDeserializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
42✔
7437
  SDecoder decoder = {0};
42✔
7438
  int32_t  code = 0;
42✔
7439
  int32_t  lino;
7440
  tDecoderInit(&decoder, buf, bufLen);
42✔
7441

7442
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
42!
7443
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
84!
7444
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->disable));
84!
7445

7446
  tEndDecode(&decoder);
42✔
7447
_exit:
42✔
7448
  tDecoderClear(&decoder);
42✔
7449
  return code;
42✔
7450
}
7451

7452
int32_t tSerializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
128✔
7453
  SEncoder encoder = {0};
128✔
7454
  int32_t  code = 0;
128✔
7455
  int32_t  lino;
7456
  int32_t  tlen;
7457
  tEncoderInit(&encoder, buf, bufLen);
128✔
7458

7459
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
128!
7460
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->srcVgId));
256!
7461
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
256!
7462
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashBegin));
256!
7463
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashEnd));
256!
7464
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
256!
7465
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
256!
7466

7467
  tEndEncode(&encoder);
128✔
7468

7469
_exit:
128✔
7470
  if (code) {
128!
7471
    tlen = code;
×
7472
  } else {
7473
    tlen = encoder.pos;
128✔
7474
  }
7475
  tEncoderClear(&encoder);
128✔
7476
  return tlen;
128✔
7477
}
7478

7479
int32_t tDeserializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
42✔
7480
  SDecoder decoder = {0};
42✔
7481
  int32_t  code = 0;
42✔
7482
  int32_t  lino;
7483
  tDecoderInit(&decoder, buf, bufLen);
42✔
7484

7485
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
42!
7486
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->srcVgId));
84!
7487
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
84!
7488
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashBegin));
84!
7489
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashEnd));
84!
7490
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
84!
7491
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
84!
7492

7493
  tEndDecode(&decoder);
42✔
7494
_exit:
42✔
7495
  tDecoderClear(&decoder);
42✔
7496
  return code;
42✔
7497
}
7498

7499
int32_t tSerializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
2✔
7500
  SEncoder encoder = {0};
2✔
7501
  int32_t  code = 0;
2✔
7502
  int32_t  lino;
7503
  int32_t  tlen;
7504
  tEncoderInit(&encoder, buf, bufLen);
2✔
7505

7506
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
7507
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->queryStrId));
4!
7508
  tEndEncode(&encoder);
2✔
7509

7510
_exit:
2✔
7511
  if (code) {
2!
7512
    tlen = code;
×
7513
  } else {
7514
    tlen = encoder.pos;
2✔
7515
  }
7516
  tEncoderClear(&encoder);
2✔
7517
  return tlen;
2✔
7518
}
7519

7520
int32_t tDeserializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
1✔
7521
  SDecoder decoder = {0};
1✔
7522
  int32_t  code = 0;
1✔
7523
  int32_t  lino;
7524
  tDecoderInit(&decoder, buf, bufLen);
1✔
7525

7526
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
7527
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->queryStrId));
1!
7528
  tEndDecode(&decoder);
1✔
7529

7530
_exit:
1✔
7531
  tDecoderClear(&decoder);
1✔
7532
  return code;
1✔
7533
}
7534

7535
int32_t tSerializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
4✔
7536
  SEncoder encoder = {0};
4✔
7537
  int32_t  code = 0;
4✔
7538
  int32_t  lino;
7539
  int32_t  tlen;
7540
  tEncoderInit(&encoder, buf, bufLen);
4✔
7541

7542
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
7543
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->connId));
8!
7544
  tEndEncode(&encoder);
4✔
7545

7546
_exit:
4✔
7547
  if (code) {
4!
7548
    tlen = code;
×
7549
  } else {
7550
    tlen = encoder.pos;
4✔
7551
  }
7552
  tEncoderClear(&encoder);
4✔
7553
  return tlen;
4✔
7554
}
7555

7556
int32_t tDeserializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
2✔
7557
  SDecoder decoder = {0};
2✔
7558
  int32_t  code = 0;
2✔
7559
  int32_t  lino;
7560
  tDecoderInit(&decoder, buf, bufLen);
2✔
7561

7562
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
7563
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->connId));
4!
7564
  tEndDecode(&decoder);
2✔
7565

7566
_exit:
2✔
7567
  tDecoderClear(&decoder);
2✔
7568
  return code;
2✔
7569
}
7570

7571
int32_t tSerializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
2✔
7572
  SEncoder encoder = {0};
2✔
7573
  int32_t  code = 0;
2✔
7574
  int32_t  lino;
7575
  int32_t  tlen;
7576
  tEncoderInit(&encoder, buf, bufLen);
2✔
7577

7578
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
7579
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->transId));
4!
7580
  tEndEncode(&encoder);
2✔
7581

7582
_exit:
2✔
7583
  if (code) {
2!
7584
    tlen = code;
×
7585
  } else {
7586
    tlen = encoder.pos;
2✔
7587
  }
7588
  tEncoderClear(&encoder);
2✔
7589
  return tlen;
2✔
7590
}
7591

7592
int32_t tDeserializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
1✔
7593
  SDecoder decoder = {0};
1✔
7594
  int32_t  code = 0;
1✔
7595
  int32_t  lino;
7596
  tDecoderInit(&decoder, buf, bufLen);
1✔
7597

7598
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
7599
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->transId));
2!
7600
  tEndDecode(&decoder);
1✔
7601

7602
_exit:
1✔
7603
  tDecoderClear(&decoder);
1✔
7604
  return code;
1✔
7605
}
7606

7607
int32_t tSerializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
46✔
7608
  SEncoder encoder = {0};
46✔
7609
  int32_t  code = 0;
46✔
7610
  int32_t  lino;
7611
  int32_t  tlen;
7612
  tEncoderInit(&encoder, buf, bufLen);
46✔
7613

7614
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
46!
7615
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
92!
7616
  ENCODESQL();
138!
7617
  tEndEncode(&encoder);
46✔
7618

7619
_exit:
46✔
7620
  if (code) {
46!
7621
    tlen = code;
×
7622
  } else {
7623
    tlen = encoder.pos;
46✔
7624
  }
7625
  tEncoderClear(&encoder);
46✔
7626
  return tlen;
46✔
7627
}
7628

7629
int32_t tDeserializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
22✔
7630
  SDecoder decoder = {0};
22✔
7631
  int32_t  code = 0;
22✔
7632
  int32_t  lino;
7633
  tDecoderInit(&decoder, buf, bufLen);
22✔
7634

7635
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
22!
7636
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
44!
7637
  DECODESQL();
66!
7638
  tEndDecode(&decoder);
22✔
7639

7640
_exit:
22✔
7641
  tDecoderClear(&decoder);
22✔
7642
  return code;
22✔
7643
}
7644

7645
void tFreeSBalanceVgroupReq(SBalanceVgroupReq *pReq) { FREESQL(); }
45!
7646

7647
int32_t tSerializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
20✔
7648
  SEncoder encoder = {0};
20✔
7649
  int32_t  code = 0;
20✔
7650
  int32_t  lino;
7651
  int32_t  tlen;
7652
  tEncoderInit(&encoder, buf, bufLen);
20✔
7653

7654
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
7655
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
40!
7656
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
40!
7657
  ENCODESQL();
60!
7658
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
40!
7659

7660
  tEndEncode(&encoder);
20✔
7661

7662
_exit:
20✔
7663
  if (code) {
20!
7664
    tlen = code;
×
7665
  } else {
7666
    tlen = encoder.pos;
20✔
7667
  }
7668
  tEncoderClear(&encoder);
20✔
7669
  return tlen;
20✔
7670
}
7671

7672
int32_t tDeserializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
6✔
7673
  SDecoder decoder = {0};
6✔
7674
  int32_t  code = 0;
6✔
7675
  int32_t  lino;
7676
  tDecoderInit(&decoder, buf, bufLen);
6✔
7677

7678
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
7679
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
12!
7680
  if (!tDecodeIsEnd(&decoder)) {
6!
7681
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
12!
7682
  }
7683
  DECODESQL();
18!
7684
  if (!tDecodeIsEnd(&decoder)) {
6!
7685
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
6!
7686
  }
7687

7688
  tEndDecode(&decoder);
6✔
7689

7690
_exit:
6✔
7691
  tDecoderClear(&decoder);
6✔
7692
  return code;
6✔
7693
}
7694

7695
void tFreeSBalanceVgroupLeaderReq(SBalanceVgroupLeaderReq *pReq) { FREESQL(); }
16!
7696

7697
int32_t tSerializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
8✔
7698
  SEncoder encoder = {0};
8✔
7699
  int32_t  code = 0;
8✔
7700
  int32_t  lino;
7701
  int32_t  tlen;
7702
  tEncoderInit(&encoder, buf, bufLen);
8✔
7703

7704
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
7705
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId1));
16!
7706
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId2));
16!
7707
  tEndEncode(&encoder);
8✔
7708

7709
_exit:
8✔
7710
  if (code) {
8!
7711
    tlen = code;
×
7712
  } else {
7713
    tlen = encoder.pos;
8✔
7714
  }
7715
  tEncoderClear(&encoder);
8✔
7716
  return tlen;
8✔
7717
}
7718

7719
int32_t tDeserializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
2✔
7720
  SDecoder decoder = {0};
2✔
7721
  int32_t  code = 0;
2✔
7722
  int32_t  lino;
7723
  tDecoderInit(&decoder, buf, bufLen);
2✔
7724

7725
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
7726
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId1));
4!
7727
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId2));
4!
7728
  tEndDecode(&decoder);
2✔
7729

7730
_exit:
2✔
7731
  tDecoderClear(&decoder);
2✔
7732
  return code;
2✔
7733
}
7734

7735
int32_t tSerializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
172✔
7736
  SEncoder encoder = {0};
172✔
7737
  int32_t  code = 0;
172✔
7738
  int32_t  lino;
7739
  int32_t  tlen;
7740
  tEncoderInit(&encoder, buf, bufLen);
172✔
7741

7742
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
172!
7743
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
344!
7744
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId1));
344!
7745
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId2));
344!
7746
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId3));
344!
7747
  ENCODESQL();
516!
7748
  tEndEncode(&encoder);
172✔
7749

7750
_exit:
172✔
7751
  if (code) {
172!
7752
    tlen = code;
×
7753
  } else {
7754
    tlen = encoder.pos;
172✔
7755
  }
7756
  tEncoderClear(&encoder);
172✔
7757
  return tlen;
172✔
7758
}
7759

7760
int32_t tDeserializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
98✔
7761
  SDecoder decoder = {0};
98✔
7762
  int32_t  code = 0;
98✔
7763
  int32_t  lino;
7764
  tDecoderInit(&decoder, buf, bufLen);
98✔
7765

7766
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
98!
7767
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
196!
7768
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId1));
196!
7769
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId2));
196!
7770
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId3));
196!
7771
  DECODESQL();
294!
7772
  tEndDecode(&decoder);
98✔
7773

7774
_exit:
98✔
7775
  tDecoderClear(&decoder);
98✔
7776
  return code;
98✔
7777
}
7778

7779
void tFreeSRedistributeVgroupReq(SRedistributeVgroupReq *pReq) { FREESQL(); }
184!
7780

7781
int32_t tSerializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
66✔
7782
  SEncoder encoder = {0};
66✔
7783
  int32_t  code = 0;
66✔
7784
  int32_t  lino;
7785
  int32_t  tlen;
7786
  tEncoderInit(&encoder, buf, bufLen);
66✔
7787

7788
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
66!
7789
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
132!
7790
  tEndEncode(&encoder);
66✔
7791

7792
_exit:
66✔
7793
  if (code) {
66!
7794
    tlen = code;
×
7795
  } else {
7796
    tlen = encoder.pos;
66✔
7797
  }
7798
  tEncoderClear(&encoder);
66✔
7799
  return tlen;
66✔
7800
}
7801

7802
int32_t tDeserializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
35✔
7803
  SDecoder decoder = {0};
35✔
7804
  int32_t  code = 0;
35✔
7805
  int32_t  lino;
7806
  tDecoderInit(&decoder, buf, bufLen);
35✔
7807

7808
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
35!
7809
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
70!
7810
  tEndDecode(&decoder);
35✔
7811

7812
_exit:
35✔
7813
  tDecoderClear(&decoder);
35✔
7814
  return code;
35✔
7815
}
7816

7817
int32_t tSerializeSForceBecomeFollowerReq(void *buf, int32_t bufLen, SForceBecomeFollowerReq *pReq) {
4✔
7818
  SEncoder encoder = {0};
4✔
7819
  int32_t  code = 0;
4✔
7820
  int32_t  lino;
7821
  int32_t  tlen;
7822
  tEncoderInit(&encoder, buf, bufLen);
4✔
7823

7824
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
7825
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
8!
7826
  tEndEncode(&encoder);
4✔
7827

7828
_exit:
4✔
7829
  if (code) {
4!
7830
    tlen = code;
×
7831
  } else {
7832
    tlen = encoder.pos;
4✔
7833
  }
7834
  tEncoderClear(&encoder);
4✔
7835
  return tlen;
4✔
7836
}
7837

7838
int32_t tSerializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
396✔
7839
  SEncoder encoder = {0};
396✔
7840
  int32_t  code = 0;
396✔
7841
  int32_t  lino;
7842
  int32_t  tlen;
7843
  tEncoderInit(&encoder, buf, bufLen);
396✔
7844

7845
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
396!
7846
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
792!
7847
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
2,376✔
7848
    SReplica *pReplica = &pReq->replicas[i];
1,980✔
7849
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
1,980!
7850
  }
7851
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
792!
7852
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
4,356✔
7853
    SReplica *pReplica = &pReq->learnerReplicas[i];
3,960✔
7854
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
3,960!
7855
  }
7856
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastIndex));
792!
7857
  tEndEncode(&encoder);
396✔
7858

7859
_exit:
396✔
7860
  if (code) {
396!
7861
    tlen = code;
×
7862
  } else {
7863
    tlen = encoder.pos;
396✔
7864
  }
7865
  tEncoderClear(&encoder);
396✔
7866
  return tlen;
396✔
7867
}
7868

7869
int32_t tDeserializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
198✔
7870
  SDecoder decoder = {0};
198✔
7871
  int32_t  code = 0;
198✔
7872
  int32_t  lino;
7873
  tDecoderInit(&decoder, buf, bufLen);
198✔
7874

7875
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
198!
7876
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
396!
7877
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
1,188✔
7878
    SReplica *pReplica = &pReq->replicas[i];
990✔
7879
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
990!
7880
  }
7881
  if (!tDecodeIsEnd(&decoder)) {
198!
7882
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
396!
7883
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
2,178✔
7884
      SReplica *pReplica = &pReq->learnerReplicas[i];
1,980✔
7885
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
1,980!
7886
    }
7887
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastIndex));
396!
7888
  }
7889
  tEndDecode(&decoder);
198✔
7890

7891
_exit:
198✔
7892
  tDecoderClear(&decoder);
198✔
7893
  return code;
198✔
7894
}
7895

7896
int32_t tSerializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
42✔
7897
  SEncoder encoder = {0};
42✔
7898
  int32_t  code = 0;
42✔
7899
  int32_t  lino;
7900
  int32_t  tlen;
7901
  tEncoderInit(&encoder, buf, bufLen);
42✔
7902

7903
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
42!
7904
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
84!
7905
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
84!
7906
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
84!
7907

7908
  int32_t size = taosArrayGetSize(pReq->hbMembers);
42✔
7909
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
42!
7910
  for (int32_t i = 0; i < size; i++) {
98✔
7911
    SVArbHbReqMember *pMember = taosArrayGet(pReq->hbMembers, i);
56✔
7912
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
112!
7913
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
112!
7914
  }
7915

7916
  tEndEncode(&encoder);
42✔
7917

7918
_exit:
42✔
7919
  if (code) {
42!
7920
    tlen = code;
×
7921
  } else {
7922
    tlen = encoder.pos;
42✔
7923
  }
7924
  tEncoderClear(&encoder);
42✔
7925
  return tlen;
42✔
7926
}
7927

7928
int32_t tDeserializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
25✔
7929
  SDecoder decoder = {0};
25✔
7930
  int32_t  code = 0;
25✔
7931
  int32_t  lino;
7932
  tDecoderInit(&decoder, buf, bufLen);
25✔
7933

7934
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
25!
7935
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
50!
7936
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
25!
7937
    TAOS_CHECK_EXIT(terrno);
×
7938
  }
7939
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
25!
7940
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
50!
7941

7942
  if ((pReq->hbMembers = taosArrayInit(16, sizeof(SVArbHbReqMember))) == NULL) {
25!
7943
    TAOS_CHECK_EXIT(terrno);
×
7944
  }
7945
  int32_t size = 0;
25✔
7946
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
25!
7947
  for (int32_t i = 0; i < size; i++) {
57✔
7948
    SVArbHbReqMember member = {0};
32✔
7949
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.vgId));
32!
7950
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.hbSeq));
32!
7951
    if (taosArrayPush(pReq->hbMembers, &member) == NULL) {
64!
7952
      TAOS_CHECK_EXIT(terrno);
×
7953
    }
7954
  }
7955

7956
  tEndDecode(&decoder);
25✔
7957

7958
_exit:
25✔
7959
  tDecoderClear(&decoder);
25✔
7960
  return code;
25✔
7961
}
7962

7963
void tFreeSVArbHeartBeatReq(SVArbHeartBeatReq *pReq) {
25✔
7964
  if (!pReq) return;
25!
7965
  taosMemoryFree(pReq->arbToken);
25!
7966
  taosArrayDestroy(pReq->hbMembers);
25✔
7967
}
7968

7969
int32_t tSerializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
50✔
7970
  SEncoder encoder = {0};
50✔
7971
  int32_t  code = 0;
50✔
7972
  int32_t  lino;
7973
  int32_t  tlen;
7974
  tEncoderInit(&encoder, buf, bufLen);
50✔
7975

7976
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
50!
7977
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
100!
7978
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeId));
100!
7979
  int32_t sz = taosArrayGetSize(pRsp->hbMembers);
50✔
7980
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
50!
7981
  for (int32_t i = 0; i < sz; i++) {
114✔
7982
    SVArbHbRspMember *pMember = taosArrayGet(pRsp->hbMembers, i);
64✔
7983
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
128!
7984
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
128!
7985
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pMember->memberToken));
128!
7986
  }
7987
  tEndEncode(&encoder);
50✔
7988

7989
_exit:
50✔
7990
  if (code) {
50!
7991
    tlen = code;
×
7992
  } else {
7993
    tlen = encoder.pos;
50✔
7994
  }
7995
  tEncoderClear(&encoder);
50✔
7996
  return tlen;
50✔
7997
}
7998

7999
int32_t tDeserializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
21✔
8000
  SDecoder decoder = {0};
21✔
8001
  int32_t  code = 0;
21✔
8002
  int32_t  lino;
8003
  tDecoderInit(&decoder, buf, bufLen);
21✔
8004

8005
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
21!
8006
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
21!
8007
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeId));
42!
8008
  int32_t sz = 0;
21✔
8009
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
21!
8010
  if ((pRsp->hbMembers = taosArrayInit(sz, sizeof(SVArbHbRspMember))) == NULL) {
21!
8011
    TAOS_CHECK_EXIT(terrno);
×
8012
  }
8013
  for (int32_t i = 0; i < sz; i++) {
49✔
8014
    SVArbHbRspMember hbMember = {0};
28✔
8015
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.vgId));
28!
8016
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.hbSeq));
28!
8017
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, hbMember.memberToken));
28!
8018
    if (taosArrayPush(pRsp->hbMembers, &hbMember) == NULL) {
56!
8019
      TAOS_CHECK_EXIT(terrno);
×
8020
    }
8021
  }
8022
  tEndDecode(&decoder);
21✔
8023

8024
_exit:
21✔
8025
  tDecoderClear(&decoder);
21✔
8026
  return code;
21✔
8027
}
8028

8029
void tFreeSVArbHeartBeatRsp(SVArbHeartBeatRsp *pRsp) {
46✔
8030
  if (NULL == pRsp) {
46!
8031
    return;
×
8032
  }
8033
  taosArrayDestroy(pRsp->hbMembers);
46✔
8034
}
8035

8036
int32_t tSerializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
8✔
8037
  SEncoder encoder = {0};
8✔
8038
  int32_t  code = 0;
8✔
8039
  int32_t  lino;
8040
  int32_t  tlen;
8041
  tEncoderInit(&encoder, buf, bufLen);
8✔
8042

8043
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
8044
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
16!
8045
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
16!
8046
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member0Token));
16!
8047
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member1Token));
16!
8048

8049
  tEndEncode(&encoder);
8✔
8050

8051
_exit:
8✔
8052
  if (code) {
8!
8053
    tlen = code;
×
8054
  } else {
8055
    tlen = encoder.pos;
8✔
8056
  }
8057
  tEncoderClear(&encoder);
8✔
8058
  return tlen;
8✔
8059
}
8060

8061
int32_t tDeserializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
8✔
8062
  SDecoder decoder = {0};
8✔
8063
  int32_t  code = 0;
8✔
8064
  int32_t  lino;
8065
  tDecoderInit(&decoder, buf, bufLen);
8✔
8066

8067
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
8068
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
8!
8069
    TAOS_CHECK_EXIT(terrno);
×
8070
  }
8071
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
8!
8072
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
16!
8073
  if ((pReq->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
8!
8074
    TAOS_CHECK_EXIT(terrno);
×
8075
  }
8076
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member0Token));
8!
8077
  if ((pReq->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
8!
8078
    TAOS_CHECK_EXIT(terrno);
×
8079
  }
8080
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member1Token));
8!
8081

8082
  tEndDecode(&decoder);
8✔
8083

8084
_exit:
8✔
8085
  tDecoderClear(&decoder);
8✔
8086
  return code;
8✔
8087
}
8088

8089
void tFreeSVArbCheckSyncReq(SVArbCheckSyncReq *pRsp) {
8✔
8090
  if (NULL == pRsp) {
8!
8091
    return;
×
8092
  }
8093
  taosMemoryFreeClear(pRsp->arbToken);
8!
8094
  taosMemoryFreeClear(pRsp->member0Token);
8!
8095
  taosMemoryFreeClear(pRsp->member1Token);
8!
8096
}
8097

8098
int32_t tSerializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
6✔
8099
  SEncoder encoder = {0};
6✔
8100
  int32_t  code = 0;
6✔
8101
  int32_t  lino;
8102
  int32_t  tlen;
8103
  tEncoderInit(&encoder, buf, bufLen);
6✔
8104

8105
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
8106
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
12!
8107
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member0Token));
12!
8108
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member1Token));
12!
8109
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
12!
8110
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->errCode));
12!
8111

8112
  tEndEncode(&encoder);
6✔
8113

8114
_exit:
6✔
8115
  if (code) {
6!
8116
    tlen = code;
×
8117
  } else {
8118
    tlen = encoder.pos;
6✔
8119
  }
8120
  tEncoderClear(&encoder);
6✔
8121
  return tlen;
6✔
8122
}
8123

8124
int32_t tDeserializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
1✔
8125
  SDecoder decoder = {0};
1✔
8126
  int32_t  code = 0;
1✔
8127
  int32_t  lino;
8128
  tDecoderInit(&decoder, buf, bufLen);
1✔
8129

8130
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
8131
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
1!
8132
    TAOS_CHECK_EXIT(terrno);
×
8133
  }
8134
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
1!
8135
  if ((pRsp->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
1!
8136
    TAOS_CHECK_EXIT(terrno);
×
8137
  }
8138
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member0Token));
1!
8139
  if ((pRsp->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
1!
8140
    TAOS_CHECK_EXIT(terrno);
×
8141
  }
8142
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member1Token));
1!
8143
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
2!
8144
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->errCode));
2!
8145

8146
  tEndDecode(&decoder);
1✔
8147

8148
_exit:
1✔
8149
  tDecoderClear(&decoder);
1✔
8150
  return code;
1✔
8151
}
8152

8153
void tFreeSVArbCheckSyncRsp(SVArbCheckSyncRsp *pRsp) {
1✔
8154
  if (NULL == pRsp) {
1!
8155
    return;
×
8156
  }
8157
  taosMemoryFreeClear(pRsp->arbToken);
1!
8158
  taosMemoryFreeClear(pRsp->member0Token);
1!
8159
  taosMemoryFreeClear(pRsp->member1Token);
1!
8160
}
8161

8162
int32_t tSerializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
8163
  SEncoder encoder = {0};
×
8164
  int32_t  code = 0;
×
8165
  int32_t  lino;
8166
  int32_t  tlen;
8167
  tEncoderInit(&encoder, buf, bufLen);
×
8168

8169
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8170
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
×
8171
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
×
8172
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->memberToken));
×
8173

8174
  tEndEncode(&encoder);
×
8175

8176
_exit:
×
8177
  if (code) {
×
8178
    tlen = code;
×
8179
  } else {
8180
    tlen = encoder.pos;
×
8181
  }
8182
  tEncoderClear(&encoder);
×
8183
  return tlen;
×
8184
}
8185

8186
int32_t tDeserializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
8187
  SDecoder decoder = {0};
×
8188
  int32_t  code = 0;
×
8189
  int32_t  lino;
8190
  tDecoderInit(&decoder, buf, bufLen);
×
8191

8192
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8193
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8194
    TAOS_CHECK_EXIT(terrno);
×
8195
  }
8196
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
×
8197
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
×
8198
  if ((pReq->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8199
    TAOS_CHECK_EXIT(terrno);
×
8200
  }
8201
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->memberToken));
×
8202

8203
  tEndDecode(&decoder);
×
8204

8205
_exit:
×
8206
  tDecoderClear(&decoder);
×
8207
  return code;
×
8208
}
8209

8210
void tFreeSVArbSetAssignedLeaderReq(SVArbSetAssignedLeaderReq *pReq) {
×
8211
  if (NULL == pReq) {
×
8212
    return;
×
8213
  }
8214
  taosMemoryFreeClear(pReq->arbToken);
×
8215
  taosMemoryFreeClear(pReq->memberToken);
×
8216
}
8217

8218
int32_t tSerializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
8219
  SEncoder encoder = {0};
×
8220
  int32_t  code = 0;
×
8221
  int32_t  lino;
8222
  int32_t  tlen;
8223
  tEncoderInit(&encoder, buf, bufLen);
×
8224

8225
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8226
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
×
8227
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->memberToken));
×
8228
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
×
8229

8230
  tEndEncode(&encoder);
×
8231

8232
_exit:
×
8233
  if (code) {
×
8234
    tlen = code;
×
8235
  } else {
8236
    tlen = encoder.pos;
×
8237
  }
8238
  tEncoderClear(&encoder);
×
8239
  return tlen;
×
8240
}
8241

8242
int32_t tDeserializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
8243
  SDecoder decoder = {0};
×
8244
  int32_t  code = 0;
×
8245
  int32_t  lino;
8246
  tDecoderInit(&decoder, buf, bufLen);
×
8247

8248
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8249
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8250
    TAOS_CHECK_EXIT(terrno);
×
8251
  }
8252
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
×
8253
  if ((pRsp->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8254
    TAOS_CHECK_EXIT(terrno);
×
8255
  }
8256
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->memberToken));
×
8257
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
×
8258

8259
  tEndDecode(&decoder);
×
8260

8261
_exit:
×
8262
  tDecoderClear(&decoder);
×
8263
  return code;
×
8264
}
8265

8266
void tFreeSVArbSetAssignedLeaderRsp(SVArbSetAssignedLeaderRsp *pRsp) {
×
8267
  if (NULL == pRsp) {
×
8268
    return;
×
8269
  }
8270
  taosMemoryFreeClear(pRsp->arbToken);
×
8271
  taosMemoryFreeClear(pRsp->memberToken);
×
8272
}
8273

8274
int32_t tSerializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
16✔
8275
  SEncoder encoder = {0};
16✔
8276
  int32_t  code = 0;
16✔
8277
  int32_t  lino;
8278
  int32_t  tlen;
8279
  tEncoderInit(&encoder, buf, bufLen);
16✔
8280

8281
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
8282

8283
  int32_t sz = taosArrayGetSize(pReq->updateArray);
16✔
8284
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
16!
8285

8286
  for (int32_t i = 0; i < sz; i++) {
36✔
8287
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
20✔
8288
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->vgId));
40!
8289
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->dbUid));
40!
8290
    for (int i = 0; i < TSDB_ARB_GROUP_MEMBER_NUM; i++) {
60✔
8291
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->members[i].dnodeId));
80!
8292
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->members[i].token));
80!
8293
    }
8294
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->isSync));
40!
8295
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->assignedLeader.dnodeId));
40!
8296
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->assignedLeader.token));
40!
8297
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->version));
40!
8298
  }
8299

8300
  for (int32_t i = 0; i < sz; i++) {
36✔
8301
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
20✔
8302
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->assignedLeader.acked));
40!
8303
  }
8304

8305
  tEndEncode(&encoder);
16✔
8306

8307
_exit:
16✔
8308
  if (code) {
16!
8309
    tlen = code;
×
8310
  } else {
8311
    tlen = encoder.pos;
16✔
8312
  }
8313
  tEncoderClear(&encoder);
16✔
8314
  return tlen;
16✔
8315
}
8316

8317
int32_t tDeserializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
8✔
8318
  SDecoder decoder = {0};
8✔
8319
  int32_t  code = 0;
8✔
8320
  int32_t  lino;
8321
  tDecoderInit(&decoder, buf, bufLen);
8✔
8322

8323
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
8324
  int32_t sz = 0;
8✔
8325
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
8!
8326

8327
  SArray *updateArray = taosArrayInit(sz, sizeof(SMArbUpdateGroup));
8✔
8328
  if (!updateArray) {
8!
8329
    TAOS_CHECK_EXIT(terrno);
×
8330
  }
8331

8332
  for (int32_t i = 0; i < sz; i++) {
18✔
8333
    SMArbUpdateGroup group = {0};
10✔
8334
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.vgId));
10!
8335
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.dbUid));
10!
8336
    for (int i = 0; i < TSDB_ARB_GROUP_MEMBER_NUM; i++) {
30✔
8337
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.members[i].dnodeId));
40!
8338
      if ((group.members[i].token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
20!
8339
        TAOS_CHECK_EXIT(terrno);
×
8340
      }
8341
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.members[i].token));
20!
8342
    }
8343
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &group.isSync));
10!
8344
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.assignedLeader.dnodeId));
10!
8345
    if ((group.assignedLeader.token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
10!
8346
      TAOS_CHECK_EXIT(terrno);
×
8347
    }
8348
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.assignedLeader.token));
10!
8349
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.version));
10!
8350
    group.assignedLeader.acked = false;
10✔
8351

8352
    if (taosArrayPush(updateArray, &group) == NULL) {
10!
8353
      TAOS_CHECK_EXIT(terrno);
×
8354
    }
8355
  }
8356

8357
  if (!tDecodeIsEnd(&decoder)) {
8!
8358
    for (int32_t i = 0; i < sz; i++) {
18✔
8359
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
10✔
8360
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pGroup->assignedLeader.acked));
20!
8361
    }
8362
  }
8363

8364
  pReq->updateArray = updateArray;
8✔
8365

8366
  tEndDecode(&decoder);
8✔
8367

8368
_exit:
8✔
8369
  tDecoderClear(&decoder);
8✔
8370
  return code;
8✔
8371
}
8372

8373
void tFreeSMArbUpdateGroupBatchReq(SMArbUpdateGroupBatchReq *pReq) {
8✔
8374
  if (NULL == pReq || NULL == pReq->updateArray) {
8!
8375
    return;
×
8376
  }
8377

8378
  int32_t sz = taosArrayGetSize(pReq->updateArray);
8✔
8379
  for (int32_t i = 0; i < sz; i++) {
18✔
8380
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
10✔
8381
    for (int i = 0; i < TSDB_ARB_GROUP_MEMBER_NUM; i++) {
30✔
8382
      taosMemoryFreeClear(pGroup->members[i].token);
20!
8383
    }
8384
    taosMemoryFreeClear(pGroup->assignedLeader.token);
10!
8385
  }
8386
  taosArrayDestroy(pReq->updateArray);
8✔
8387
}
8388

8389
int32_t tSerializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
6✔
8390
  SEncoder encoder = {0};
6✔
8391
  int32_t  code = 0;
6✔
8392
  int32_t  lino;
8393
  int32_t  tlen;
8394
  tEncoderInit(&encoder, buf, bufLen);
6✔
8395

8396
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6!
8397
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusCode));
12!
8398
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->details));
12!
8399

8400
  tEndEncode(&encoder);
6✔
8401

8402
_exit:
6✔
8403
  if (code) {
6!
8404
    tlen = code;
×
8405
  } else {
8406
    tlen = encoder.pos;
6✔
8407
  }
8408
  tEncoderClear(&encoder);
6✔
8409
  return tlen;
6✔
8410
}
8411

8412
int32_t tDeserializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
3✔
8413
  SDecoder decoder = {0};
3✔
8414
  int32_t  code = 0;
3✔
8415
  int32_t  lino;
8416
  tDecoderInit(&decoder, buf, bufLen);
3✔
8417

8418
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
8419
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusCode));
6!
8420
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->details));
3!
8421

8422
  tEndDecode(&decoder);
3✔
8423
_exit:
3✔
8424
  tDecoderClear(&decoder);
3✔
8425
  return code;
3✔
8426
}
8427

8428
int32_t tSerializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
1,114,755✔
8429
  SEncoder encoder = {0};
1,114,755✔
8430
  int32_t  code = 0;
1,114,755✔
8431
  int32_t  lino;
8432
  int32_t  tlen;
8433
  tEncoderInit(&encoder, buf, bufLen);
1,114,755✔
8434

8435
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,114,837!
8436
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfPlans));
2,229,638!
8437
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
3,737,398✔
8438
    SExplainExecInfo *info = &pRsp->subplanInfo[i];
2,622,579✔
8439
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->startupCost));
5,245,158!
8440
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->totalCost));
5,245,158!
8441
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, info->numOfRows));
5,245,158!
8442
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, info->verboseLen));
5,245,158!
8443
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, info->verboseInfo, info->verboseLen));
5,245,158!
8444
  }
8445

8446
  tEndEncode(&encoder);
1,114,819✔
8447

8448
_exit:
1,114,773✔
8449
  if (code) {
1,114,773!
8450
    tlen = code;
×
8451
  } else {
8452
    tlen = encoder.pos;
1,114,773✔
8453
  }
8454
  tEncoderClear(&encoder);
1,114,773✔
8455
  return tlen;
1,114,748✔
8456
}
8457

8458
int32_t tDeserializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
18,958✔
8459
  SDecoder decoder = {0};
18,958✔
8460
  int32_t  code = 0;
18,958✔
8461
  int32_t  lino;
8462
  tDecoderInit(&decoder, buf, bufLen);
18,958✔
8463

8464
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
18,958✔
8465
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfPlans));
37,896!
8466
  if (pRsp->numOfPlans > 0) {
18,948!
8467
    pRsp->subplanInfo = taosMemoryCalloc(pRsp->numOfPlans, sizeof(SExplainExecInfo));
18,948!
8468
    if (pRsp->subplanInfo == NULL) {
18,948!
8469
      TAOS_CHECK_EXIT(terrno);
×
8470
    }
8471
  }
8472
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
58,870✔
8473
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].startupCost));
79,846!
8474
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].totalCost));
79,846!
8475
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->subplanInfo[i].numOfRows));
79,846!
8476
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->subplanInfo[i].verboseLen));
79,845!
8477
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &pRsp->subplanInfo[i].verboseInfo, NULL));
79,844!
8478
  }
8479

8480
  tEndDecode(&decoder);
18,947✔
8481

8482
_exit:
18,958✔
8483
  tDecoderClear(&decoder);
18,958✔
8484
  return code;
18,957✔
8485
}
8486

8487
void tFreeSExplainRsp(SExplainRsp *pRsp) {
20,134✔
8488
  if (NULL == pRsp) {
20,134!
8489
    return;
×
8490
  }
8491

8492
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
61,221✔
8493
    SExplainExecInfo *pExec = pRsp->subplanInfo + i;
41,087✔
8494
    taosMemoryFree(pExec->verboseInfo);
41,087!
8495
  }
8496

8497
  taosMemoryFreeClear(pRsp->subplanInfo);
20,134!
8498
}
8499

8500
int32_t tSerializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
224,610✔
8501
  int32_t code = 0;
224,610✔
8502
  int32_t lino;
8503
  int32_t headLen = sizeof(SMsgHead);
224,610✔
8504
  if (buf != NULL) {
224,610✔
8505
    buf = (char *)buf + headLen;
112,317✔
8506
    bufLen -= headLen;
112,317✔
8507
  }
8508

8509
  SEncoder encoder = {0};
224,610✔
8510
  tEncoderInit(&encoder, buf, bufLen);
224,610✔
8511
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
224,621!
8512

8513
  int32_t num = taosArrayGetSize(pReq->pMsgs);
224,629✔
8514
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
224,627!
8515
  for (int32_t i = 0; i < num; ++i) {
585,694✔
8516
    SBatchMsg *pMsg = taosArrayGet(pReq->pMsgs, i);
361,068✔
8517
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
722,134!
8518
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgType));
722,134!
8519
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
722,134!
8520
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
722,134!
8521
  }
8522

8523
  tEndEncode(&encoder);
224,626✔
8524

8525
_exit:
224,624✔
8526
  if (code) {
224,624!
8527
    tEncoderClear(&encoder);
×
8528
    return code;
×
8529
  } else {
8530
    int32_t tlen = encoder.pos;
224,624✔
8531
    tEncoderClear(&encoder);
224,624✔
8532

8533
    if (buf != NULL) {
224,621✔
8534
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
112,316✔
8535
      pHead->vgId = htonl(pReq->header.vgId);
112,316✔
8536
      pHead->contLen = htonl(tlen + headLen);
112,316✔
8537
    }
8538

8539
    return tlen + headLen;
224,621✔
8540
  }
8541
}
8542

8543
int32_t tDeserializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
2,947,230✔
8544
  int32_t   headLen = sizeof(SMsgHead);
2,947,230✔
8545
  int32_t   code = 0;
2,947,230✔
8546
  int32_t   lino;
8547
  SMsgHead *pHead = buf;
2,947,230✔
8548
  pHead->vgId = pReq->header.vgId;
2,947,230✔
8549
  pHead->contLen = pReq->header.contLen;
2,947,230✔
8550

8551
  SDecoder decoder = {0};
2,947,230✔
8552
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
2,947,230✔
8553

8554
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,946,860!
8555

8556
  int32_t num = 0;
2,948,221✔
8557
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
2,947,803!
8558
  if (num <= 0) {
2,947,803!
8559
    pReq->pMsgs = NULL;
×
8560
    tEndDecode(&decoder);
×
8561
    tDecoderClear(&decoder);
×
8562
    return 0;
515✔
8563
  }
8564

8565
  pReq->pMsgs = taosArrayInit(num, sizeof(SBatchMsg));
2,947,803✔
8566
  if (NULL == pReq->pMsgs) {
2,947,485!
8567
    TAOS_CHECK_EXIT(terrno);
×
8568
  }
8569
  for (int32_t i = 0; i < num; ++i) {
9,939,342✔
8570
    SBatchMsg msg = {0};
6,992,353✔
8571
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
6,992,096!
8572
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgType));
6,992,385!
8573
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
6,991,914!
8574
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
6,993,033!
8575
    if (NULL == taosArrayPush(pReq->pMsgs, &msg)) {
13,984,709!
8576
      TAOS_CHECK_EXIT(terrno);
×
8577
    }
8578
  }
8579

8580
  tEndDecode(&decoder);
2,946,989✔
8581

8582
_exit:
2,947,217✔
8583
  tDecoderClear(&decoder);
2,947,217✔
8584
  return code;
2,947,420✔
8585
}
8586

8587
int32_t tSerializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
5,894,248✔
8588
  SEncoder encoder = {0};
5,894,248✔
8589
  int32_t  code = 0;
5,894,248✔
8590
  int32_t  lino;
8591
  int32_t  tlen;
8592
  tEncoderInit(&encoder, buf, bufLen);
5,894,248✔
8593
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,894,621!
8594

8595
  int32_t num = taosArrayGetSize(pRsp->pRsps);
5,895,069✔
8596
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
5,893,945!
8597
  for (int32_t i = 0; i < num; ++i) {
19,876,139✔
8598
    SBatchRspMsg *pMsg = taosArrayGet(pRsp->pRsps, i);
13,984,382✔
8599
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->reqType));
27,964,388!
8600
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
27,964,388!
8601
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
27,964,388!
8602
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->rspCode));
27,964,388!
8603
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
27,964,388!
8604
  }
8605

8606
  tEndEncode(&encoder);
5,891,757✔
8607

8608
_exit:
5,895,511✔
8609
  if (code) {
5,895,511!
8610
    tlen = code;
×
8611
  } else {
8612
    tlen = encoder.pos;
5,895,511✔
8613
  }
8614
  tEncoderClear(&encoder);
5,895,511✔
8615
  return tlen;
5,895,498✔
8616
}
8617

8618
int32_t tDeserializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
111,831✔
8619
  SDecoder decoder = {0};
111,831✔
8620
  int32_t  code = 0;
111,831✔
8621
  int32_t  lino;
8622
  tDecoderInit(&decoder, (char *)buf, bufLen);
111,831✔
8623

8624
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
111,832!
8625

8626
  int32_t num = 0;
111,830✔
8627
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
111,831!
8628
  if (num <= 0) {
111,831!
8629
    pRsp->pRsps = NULL;
×
8630
    tEndDecode(&decoder);
×
8631

8632
    tDecoderClear(&decoder);
×
UNCOV
8633
    return 0;
×
8634
  }
8635

8636
  pRsp->pRsps = taosArrayInit(num, sizeof(SBatchRspMsg));
111,831✔
8637
  if (NULL == pRsp->pRsps) {
111,830!
8638
    TAOS_CHECK_EXIT(terrno);
×
8639
  }
8640
  for (int32_t i = 0; i < num; ++i) {
291,882✔
8641
    SBatchRspMsg msg = {0};
180,052✔
8642
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.reqType));
180,050!
8643
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
180,050!
8644
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
180,051!
8645
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.rspCode));
180,052!
8646
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
180,053!
8647
    if (NULL == taosArrayPush(pRsp->pRsps, &msg)) {
360,105!
8648
      TAOS_CHECK_EXIT(terrno);
×
8649
    }
8650
  }
8651

8652
  tEndDecode(&decoder);
111,830✔
8653

8654
_exit:
111,828✔
8655
  tDecoderClear(&decoder);
111,828✔
8656
  return code;
111,831✔
8657
}
8658

8659
int32_t tSerializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
21,322✔
8660
  SEncoder encoder = {0};
21,322✔
8661
  int32_t  code = 0;
21,322✔
8662
  int32_t  lino;
8663
  int32_t  tlen;
8664
  tEncoderInit(&encoder, buf, bufLen);
21,322✔
8665

8666
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
21,322!
8667
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
42,644!
8668
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
42,644!
8669
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
42,644!
8670

8671
  tEndEncode(&encoder);
21,322✔
8672

8673
_exit:
21,322✔
8674
  if (code) {
21,322!
8675
    tlen = code;
×
8676
  } else {
8677
    tlen = encoder.pos;
21,322✔
8678
  }
8679
  tEncoderClear(&encoder);
21,322✔
8680
  return tlen;
21,322✔
8681
}
8682

8683
int32_t tDeserializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
11,589✔
8684
  SDecoder decoder = {0};
11,589✔
8685
  int32_t  code = 0;
11,589✔
8686
  int32_t  lino;
8687
  tDecoderInit(&decoder, (char *)buf, bufLen);
11,589✔
8688

8689
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,589!
8690

8691
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
23,180!
8692
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
23,179!
8693
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
11,589!
8694

8695
  tEndDecode(&decoder);
11,585✔
8696

8697
_exit:
11,586✔
8698
  tDecoderClear(&decoder);
11,586✔
8699
  return code;
11,590✔
8700
}
8701

8702
void tDestroySMqHbRsp(SMqHbRsp *pRsp) { taosArrayDestroy(pRsp->topicPrivileges); }
5,093✔
8703

8704
int32_t tSerializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
5,244✔
8705
  SEncoder encoder = {0};
5,244✔
8706
  int32_t  code = 0;
5,244✔
8707
  int32_t  lino;
8708
  int32_t  tlen;
8709
  tEncoderInit(&encoder, buf, bufLen);
5,244✔
8710
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,244!
8711

8712
  int32_t sz = taosArrayGetSize(pRsp->topicPrivileges);
5,244✔
8713
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
5,244!
8714
  for (int32_t i = 0; i < sz; ++i) {
10,098✔
8715
    STopicPrivilege *privilege = (STopicPrivilege *)taosArrayGet(pRsp->topicPrivileges, i);
4,854✔
8716
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, privilege->topic));
9,708!
8717
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, privilege->noPrivilege));
9,708!
8718
  }
8719

8720
  if (tEncodeI32(&encoder, pRsp->debugFlag) < 0) return -1;
10,488!
8721
  tEndEncode(&encoder);
5,244✔
8722

8723
_exit:
5,244✔
8724
  if (code) {
5,244!
8725
    tlen = code;
×
8726
  } else {
8727
    tlen = encoder.pos;
5,244✔
8728
  }
8729
  tEncoderClear(&encoder);
5,244✔
8730
  return tlen;
5,244✔
8731
}
8732

8733
int32_t tDeserializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
2,463✔
8734
  SDecoder decoder = {0};
2,463✔
8735
  int32_t  code = 0;
2,463✔
8736
  int32_t  lino;
8737
  tDecoderInit(&decoder, (char *)buf, bufLen);
2,463✔
8738

8739
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,463!
8740

8741
  int32_t sz = 0;
2,463✔
8742
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
2,463!
8743
  if (sz > 0) {
2,463✔
8744
    pRsp->topicPrivileges = taosArrayInit(sz, sizeof(STopicPrivilege));
2,066✔
8745
    if (NULL == pRsp->topicPrivileges) {
2,066!
8746
      TAOS_CHECK_EXIT(terrno);
×
8747
    }
8748
    for (int32_t i = 0; i < sz; ++i) {
4,334✔
8749
      STopicPrivilege *data = taosArrayReserve(pRsp->topicPrivileges, 1);
2,268✔
8750
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topic));
2,268!
8751
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &data->noPrivilege));
4,536!
8752
    }
8753
  }
8754

8755
  if (!tDecodeIsEnd(&decoder)) {
2,463!
8756
    if (tDecodeI32(&decoder, &pRsp->debugFlag) < 0) return -1;
4,926!
8757
  }
8758
  tEndDecode(&decoder);
2,463✔
8759

8760
_exit:
2,463✔
8761
  tDecoderClear(&decoder);
2,463✔
8762
  return code;
2,463✔
8763
}
8764

8765
void tDestroySMqHbReq(SMqHbReq *pReq) {
5,112✔
8766
  for (int i = 0; i < taosArrayGetSize(pReq->topics); i++) {
9,798✔
8767
    TopicOffsetRows *vgs = taosArrayGet(pReq->topics, i);
4,686✔
8768
    if (vgs) taosArrayDestroy(vgs->offsetRows);
4,686!
8769
  }
8770
  taosArrayDestroy(pReq->topics);
5,112✔
8771
}
5,112✔
8772

8773
int32_t tSerializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
4,964✔
8774
  SEncoder encoder = {0};
4,964✔
8775
  int32_t  code = 0;
4,964✔
8776
  int32_t  lino;
8777
  int32_t  tlen;
8778
  tEncoderInit(&encoder, buf, bufLen);
4,964✔
8779
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,964!
8780

8781
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
9,928!
8782
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
9,928!
8783

8784
  int32_t sz = taosArrayGetSize(pReq->topics);
4,964✔
8785
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
4,964!
8786
  for (int32_t i = 0; i < sz; ++i) {
9,600✔
8787
    TopicOffsetRows *vgs = (TopicOffsetRows *)taosArrayGet(pReq->topics, i);
4,636✔
8788
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, vgs->topicName));
9,272!
8789
    int32_t szVgs = taosArrayGetSize(vgs->offsetRows);
4,636✔
8790
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, szVgs));
4,636!
8791
    for (int32_t j = 0; j < szVgs; ++j) {
15,580✔
8792
      OffsetRows *offRows = taosArrayGet(vgs->offsetRows, j);
10,944✔
8793
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, offRows->vgId));
21,888!
8794
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->rows));
21,888!
8795
      TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &offRows->offset));
10,944!
8796
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->ever));
21,888!
8797
    }
8798
  }
8799

8800
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->pollFlag));
9,928!
8801
  tEndEncode(&encoder);
4,964✔
8802

8803
_exit:
4,964✔
8804
  if (code) {
4,964!
8805
    tlen = code;
×
8806
  } else {
8807
    tlen = encoder.pos;
4,964✔
8808
  }
8809
  tEncoderClear(&encoder);
4,964✔
8810
  return tlen;
4,964✔
8811
}
8812

8813
int32_t tDeserializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
2,630✔
8814
  int32_t  code = 0;
2,630✔
8815
  int32_t  lino;
8816
  SDecoder decoder = {0};
2,630✔
8817
  tDecoderInit(&decoder, (char *)buf, bufLen);
2,630✔
8818

8819
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,630!
8820

8821
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
5,260!
8822
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
5,260!
8823
  int32_t sz = 0;
2,630✔
8824
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
2,630!
8825
  if (sz > 0) {
2,630✔
8826
    pReq->topics = taosArrayInit(sz, sizeof(TopicOffsetRows));
2,164✔
8827
    if (NULL == pReq->topics) {
2,164!
8828
      TAOS_CHECK_EXIT(terrno);
×
8829
    }
8830
    for (int32_t i = 0; i < sz; ++i) {
4,532✔
8831
      TopicOffsetRows *data = taosArrayReserve(pReq->topics, 1);
2,368✔
8832
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topicName));
2,368!
8833
      int32_t szVgs = 0;
2,368✔
8834
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &szVgs));
2,368!
8835
      if (szVgs > 0) {
2,368✔
8836
        data->offsetRows = taosArrayInit(szVgs, sizeof(OffsetRows));
2,333✔
8837
        if (NULL == data->offsetRows) {
2,333!
8838
          TAOS_CHECK_EXIT(terrno);
×
8839
        }
8840
        for (int32_t j = 0; j < szVgs; ++j) {
7,704✔
8841
          OffsetRows *offRows = taosArrayReserve(data->offsetRows, 1);
5,371✔
8842
          TAOS_CHECK_EXIT(tDecodeI32(&decoder, &offRows->vgId));
10,742!
8843
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->rows));
10,742!
8844
          TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &offRows->offset));
5,371!
8845
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->ever));
10,742!
8846
        }
8847
      }
8848
    }
8849
  }
8850
  if (!tDecodeIsEnd(&decoder)) {
2,630!
8851
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->pollFlag));
5,260!
8852
  }
8853
  tEndDecode(&decoder);
2,630✔
8854

8855
_exit:
2,630✔
8856
  tDecoderClear(&decoder);
2,630✔
8857
  return code;
2,630✔
8858
}
8859

8860
int32_t tSerializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
12✔
8861
  int32_t code = 0;
12✔
8862
  int32_t lino;
8863
  int32_t headLen = sizeof(SMsgHead);
12✔
8864
  if (buf != NULL) {
12✔
8865
    buf = (char *)buf + headLen;
6✔
8866
    bufLen -= headLen;
6✔
8867
  }
8868
  SEncoder encoder = {0};
12✔
8869
  tEncoderInit(&encoder, buf, bufLen);
12✔
8870
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12!
8871
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
24!
8872
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
24!
8873
  tEndEncode(&encoder);
12✔
8874

8875
_exit:
12✔
8876
  if (code) {
12!
8877
    tEncoderClear(&encoder);
×
8878
    return code;
×
8879
  } else {
8880
    int32_t tlen = encoder.pos;
12✔
8881
    tEncoderClear(&encoder);
12✔
8882

8883
    if (buf != NULL) {
12✔
8884
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
6✔
8885
      pHead->vgId = htonl(pReq->head.vgId);
6✔
8886
      pHead->contLen = htonl(tlen + headLen);
6✔
8887
    }
8888

8889
    return tlen + headLen;
12✔
8890
  }
8891
}
8892

8893
int32_t tDeserializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
24✔
8894
  int32_t  code = 0;
24✔
8895
  int32_t  lino;
8896
  int32_t  headLen = sizeof(SMsgHead);
24✔
8897
  SDecoder decoder = {0};
24✔
8898
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
24✔
8899

8900
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
24!
8901
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
48!
8902
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
24!
8903

8904
  tEndDecode(&decoder);
24✔
8905

8906
_exit:
24✔
8907
  tDecoderClear(&decoder);
24✔
8908
  return code;
24✔
8909
}
8910

8911
int32_t tSerializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
3,637,810✔
8912
  int32_t code = 0;
3,637,810✔
8913
  int32_t lino;
8914
  int32_t headLen = sizeof(SMsgHead);
3,637,810✔
8915
  if (buf != NULL) {
3,637,810✔
8916
    buf = (char *)buf + headLen;
1,819,684✔
8917
    bufLen -= headLen;
1,819,684✔
8918
  }
8919

8920
  SEncoder encoder = {0};
3,637,810✔
8921
  tEncoderInit(&encoder, buf, bufLen);
3,637,810✔
8922
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,638,566!
8923

8924
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
7,279,864!
8925
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
7,279,864!
8926
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
7,279,864!
8927
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
7,279,864!
8928
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
7,279,864!
8929
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->msgMask));
7,279,864!
8930
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->taskType));
7,279,864!
8931
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->explain));
7,279,864!
8932
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->needFetch));
7,279,864!
8933
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compress));
7,279,864!
8934
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
7,279,864!
8935
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->sql, pReq->sqlLen));
7,279,864!
8936
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->msgLen));
7,279,864!
8937
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (uint8_t *)pReq->msg, pReq->msgLen));
7,279,864!
8938
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
7,279,864!
8939

8940
  tEndEncode(&encoder);
3,639,932✔
8941

8942
_exit:
3,639,061✔
8943
  if (code) {
3,639,061!
8944
    tEncoderClear(&encoder);
×
8945
    return code;
×
8946
  } else {
8947
    int32_t tlen = encoder.pos;
3,639,061✔
8948
    tEncoderClear(&encoder);
3,639,061✔
8949

8950
    if (buf != NULL) {
3,638,988✔
8951
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
1,820,113✔
8952
      pHead->vgId = htonl(pReq->header.vgId);
1,820,113✔
8953
      pHead->contLen = htonl(tlen + headLen);
1,820,113✔
8954
    }
8955

8956
    return tlen + headLen;
3,638,988✔
8957
  }
8958
}
8959

8960
int32_t tDeserializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
16,357,763✔
8961
  int32_t   code = 0;
16,357,763✔
8962
  int32_t   lino;
8963
  int32_t   headLen = sizeof(SMsgHead);
16,357,763✔
8964
  SMsgHead *pHead = buf;
16,357,763✔
8965
  pHead->vgId = pReq->header.vgId;
16,357,763✔
8966
  pHead->contLen = pReq->header.contLen;
16,357,763✔
8967

8968
  SDecoder decoder = {0};
16,357,763✔
8969
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
16,357,763✔
8970

8971
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16,354,387!
8972

8973
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
32,760,272!
8974
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
32,756,849!
8975
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
32,746,627!
8976
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
32,733,800!
8977
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
32,730,001!
8978
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->msgMask));
32,731,435!
8979
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->taskType));
32,734,163!
8980
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->explain));
32,732,496!
8981
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->needFetch));
32,726,331!
8982
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compress));
32,725,207!
8983
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
32,725,889!
8984
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
32,734,613!
8985
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->msgLen));
32,739,452!
8986
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, NULL));
32,739,076!
8987
  if (!tDecodeIsEnd(&decoder)) {
16,372,768✔
8988
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
32,728,016!
8989
  } else {
8990
    pReq->clientId = 0;
13,029✔
8991
  }
8992

8993
  tEndDecode(&decoder);
16,381,306✔
8994

8995
_exit:
16,370,256✔
8996
  tDecoderClear(&decoder);
16,370,256✔
8997
  return code;
16,378,492✔
8998
}
8999

9000
void tFreeSSubQueryMsg(SSubQueryMsg *pReq) {
16,372,188✔
9001
  if (NULL == pReq) {
16,372,188!
9002
    return;
×
9003
  }
9004

9005
  taosMemoryFreeClear(pReq->sql);
16,372,188!
9006
  taosMemoryFreeClear(pReq->msg);
16,373,686!
9007
}
9008

9009
int32_t tSerializeSOperatorParam(SEncoder *pEncoder, SOperatorParam *pOpParam) {
2,252✔
9010
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->opType));
4,504!
9011
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->downstreamIdx));
4,504!
9012
  switch (pOpParam->opType) {
2,252!
9013
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
2,252✔
9014
      STableScanOperatorParam *pScan = (STableScanOperatorParam *)pOpParam->value;
2,252✔
9015
      TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pScan->tableSeq));
4,504!
9016
      int32_t uidNum = taosArrayGetSize(pScan->pUidList);
2,252✔
9017
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, uidNum));
2,252!
9018
      for (int32_t m = 0; m < uidNum; ++m) {
86,966✔
9019
        int64_t *pUid = taosArrayGet(pScan->pUidList, m);
84,714✔
9020
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, *pUid));
169,428!
9021
      }
9022
      break;
2,252✔
9023
    }
9024
    default:
×
9025
      return TSDB_CODE_INVALID_PARA;
×
9026
  }
9027

9028
  int32_t n = taosArrayGetSize(pOpParam->pChildren);
2,252✔
9029
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, n));
2,252!
9030
  for (int32_t i = 0; i < n; ++i) {
2,252!
9031
    SOperatorParam *pChild = *(SOperatorParam **)taosArrayGet(pOpParam->pChildren, i);
×
9032
    TAOS_CHECK_RETURN(tSerializeSOperatorParam(pEncoder, pChild));
×
9033
  }
9034

9035
  return 0;
2,252✔
9036
}
9037

9038
int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam *pOpParam) {
1,125✔
9039
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->opType));
2,250!
9040
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->downstreamIdx));
2,251!
9041
  switch (pOpParam->opType) {
1,126!
9042
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
1,126✔
9043
      STableScanOperatorParam *pScan = taosMemoryMalloc(sizeof(STableScanOperatorParam));
1,126!
9044
      if (NULL == pScan) {
1,126!
9045
        TAOS_CHECK_RETURN(terrno);
×
9046
      }
9047
      TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&pScan->tableSeq));
2,252!
9048
      int32_t uidNum = 0;
1,126✔
9049
      int64_t uid = 0;
1,126✔
9050
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &uidNum));
1,126!
9051
      if (uidNum > 0) {
1,126!
9052
        pScan->pUidList = taosArrayInit(uidNum, sizeof(int64_t));
1,126✔
9053
        if (NULL == pScan->pUidList) {
1,126!
9054
          TAOS_CHECK_RETURN(terrno);
×
9055
        }
9056

9057
        for (int32_t m = 0; m < uidNum; ++m) {
42,488✔
9058
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &uid));
41,363!
9059
          if (taosArrayPush(pScan->pUidList, &uid) == NULL) {
82,723!
9060
            TAOS_CHECK_RETURN(terrno);
×
9061
          }
9062
        }
9063
      } else {
9064
        pScan->pUidList = NULL;
×
9065
      }
9066
      pOpParam->value = pScan;
1,127✔
9067
      break;
1,127✔
9068
    }
9069
    default:
×
9070
      return TSDB_CODE_INVALID_PARA;
×
9071
  }
9072

9073
  int32_t childrenNum = 0;
1,127✔
9074
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &childrenNum));
1,126!
9075

9076
  if (childrenNum > 0) {
1,126!
9077
    pOpParam->pChildren = taosArrayInit(childrenNum, POINTER_BYTES);
×
9078
    if (NULL == pOpParam->pChildren) {
×
9079
      TAOS_CHECK_RETURN(terrno);
×
9080
    }
9081
    for (int32_t i = 0; i < childrenNum; ++i) {
×
9082
      SOperatorParam *pChild = taosMemoryCalloc(1, sizeof(SOperatorParam));
×
9083
      if (NULL == pChild) {
×
9084
        TAOS_CHECK_RETURN(terrno);
×
9085
      }
9086
      TAOS_CHECK_RETURN(tDeserializeSOperatorParam(pDecoder, pChild));
×
9087
      if (taosArrayPush(pOpParam->pChildren, &pChild) == NULL) {
×
9088
        TAOS_CHECK_RETURN(terrno);
×
9089
      }
9090
    }
9091
  } else {
9092
    pOpParam->pChildren = NULL;
1,126✔
9093
  }
9094

9095
  return 0;
1,126✔
9096
}
9097

9098
int32_t tSerializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
12,838,784✔
9099
  int32_t code = 0;
12,838,784✔
9100
  int32_t lino;
9101
  int32_t headLen = sizeof(SMsgHead);
12,838,784✔
9102
  if (buf != NULL) {
12,838,784✔
9103
    buf = (char *)buf + headLen;
6,419,974✔
9104
    bufLen -= headLen;
6,419,974✔
9105
  }
9106

9107
  SEncoder encoder = {0};
12,838,784✔
9108
  tEncoderInit(&encoder, buf, bufLen);
12,838,784✔
9109
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
12,839,101!
9110

9111
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
25,677,624!
9112
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
25,677,624!
9113
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
25,677,624!
9114
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
25,677,624!
9115
  if (pReq->pOpParam) {
12,838,812✔
9116
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 1));
2,252!
9117
    TAOS_CHECK_EXIT(tSerializeSOperatorParam(&encoder, pReq->pOpParam));
2,252!
9118
  } else {
9119
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
12,836,560!
9120
  }
9121
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
25,677,624!
9122

9123
  tEndEncode(&encoder);
12,838,812✔
9124

9125
_exit:
12,839,756✔
9126
  if (code) {
12,839,756!
9127
    tEncoderClear(&encoder);
×
9128
    return code;
×
9129
  } else {
9130
    int32_t tlen = encoder.pos;
12,839,756✔
9131
    tEncoderClear(&encoder);
12,839,756✔
9132

9133
    if (buf != NULL) {
12,837,731✔
9134
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
6,419,412✔
9135
      pHead->vgId = htonl(pReq->header.vgId);
6,419,412✔
9136
      pHead->contLen = htonl(tlen + headLen);
6,419,412✔
9137
    }
9138

9139
    return tlen + headLen;
12,837,731✔
9140
  }
9141
}
9142

9143
int32_t tDeserializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
11,007,981✔
9144
  int32_t code = 0;
11,007,981✔
9145
  int32_t lino;
9146
  int32_t headLen = sizeof(SMsgHead);
11,007,981✔
9147

9148
  SMsgHead *pHead = buf;
11,007,981✔
9149
  pHead->vgId = pReq->header.vgId;
11,007,981✔
9150
  pHead->contLen = pReq->header.contLen;
11,007,981✔
9151

9152
  SDecoder decoder = {0};
11,007,981✔
9153
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
11,007,981✔
9154

9155
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
11,000,536!
9156

9157
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
22,023,872!
9158
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
22,020,336!
9159
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
22,016,285!
9160
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
22,013,054!
9161

9162
  int32_t paramNum = 0;
11,006,495✔
9163
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &paramNum));
11,007,155!
9164
  if (paramNum > 0) {
11,007,155✔
9165
    pReq->pOpParam = taosMemoryMalloc(sizeof(*pReq->pOpParam));
1,126!
9166
    if (NULL == pReq->pOpParam) {
1,125!
9167
      TAOS_CHECK_EXIT(terrno);
×
9168
    }
9169
    TAOS_CHECK_EXIT(tDeserializeSOperatorParam(&decoder, pReq->pOpParam));
1,125!
9170
  }
9171
  if (!tDecodeIsEnd(&decoder)) {
11,007,155✔
9172
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
22,005,151!
9173
  } else {
9174
    pReq->clientId = 0;
5,468✔
9175
  }
9176

9177
  tEndDecode(&decoder);
11,008,932✔
9178

9179
_exit:
11,005,347✔
9180
  tDecoderClear(&decoder);
11,005,347✔
9181
  return code;
11,006,943✔
9182
}
9183

9184
int32_t tSerializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
83,850✔
9185
  int32_t headLen = sizeof(SMsgHead);
83,850✔
9186
  int32_t code = 0;
83,850✔
9187
  int32_t lino;
9188
  if (buf != NULL) {
83,850✔
9189
    buf = (char *)buf + headLen;
41,924✔
9190
    bufLen -= headLen;
41,924✔
9191
  }
9192

9193
  SEncoder encoder = {0};
83,850✔
9194
  tEncoderInit(&encoder, buf, bufLen);
83,850✔
9195
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
83,847!
9196

9197
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
167,702!
9198
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withTbName));
167,702!
9199
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->useSnapshot));
167,702!
9200
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
167,702!
9201
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->reqId));
167,702!
9202
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
167,702!
9203
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeout));
167,702!
9204
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &pReq->reqOffset));
83,851!
9205
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableReplay));
167,702!
9206
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sourceExcluded));
167,702!
9207
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableBatchMeta));
167,702!
9208

9209
  tEndEncode(&encoder);
83,851✔
9210

9211
_exit:
83,849✔
9212
  if (code) {
83,849!
9213
    tEncoderClear(&encoder);
×
9214
    return code;
×
9215
  } else {
9216
    int32_t tlen = encoder.pos;
83,849✔
9217
    tEncoderClear(&encoder);
83,849✔
9218

9219
    if (buf != NULL) {
83,847✔
9220
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
41,924✔
9221
      pHead->vgId = htonl(pReq->head.vgId);
41,924✔
9222
      pHead->contLen = htonl(tlen + headLen);
41,924✔
9223
    }
9224

9225
    return tlen + headLen;
83,847✔
9226
  }
9227
}
9228

9229
int32_t tDeserializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
61,467✔
9230
  int32_t  code = 0;
61,467✔
9231
  int32_t  lino;
9232
  int32_t  headLen = sizeof(SMsgHead);
61,467✔
9233
  SDecoder decoder = {0};
61,467✔
9234
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
61,467✔
9235

9236
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
61,399!
9237

9238
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
61,474!
9239
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withTbName));
122,878!
9240
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->useSnapshot));
122,879!
9241
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
122,876!
9242
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->reqId));
122,881!
9243
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
122,871!
9244
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeout));
122,861!
9245
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &pReq->reqOffset));
61,434!
9246

9247
  if (!tDecodeIsEnd(&decoder)) {
61,436!
9248
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableReplay));
122,887!
9249
  }
9250

9251
  if (!tDecodeIsEnd(&decoder)) {
61,433!
9252
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sourceExcluded));
122,874!
9253
  }
9254

9255
  if (!tDecodeIsEnd(&decoder)) {
61,435!
9256
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableBatchMeta));
122,875!
9257
  } else {
9258
    pReq->enableBatchMeta = false;
×
9259
  }
9260

9261
  tEndDecode(&decoder);
61,426✔
9262

9263
_exit:
61,437✔
9264
  tDecoderClear(&decoder);
61,437✔
9265
  return code;
61,462✔
9266
}
9267

9268
void    tDestroySMqPollReq(SMqPollReq *pReq) { tOffsetDestroy(&pReq->reqOffset); }
60,777✔
9269
int32_t tSerializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
20,001,807✔
9270
  int32_t code = 0;
20,001,807✔
9271
  int32_t lino;
9272
  int32_t tlen;
9273
  int32_t headLen = sizeof(SMsgHead);
20,001,807✔
9274
  if (buf != NULL) {
20,001,807✔
9275
    buf = (char *)buf + headLen;
10,004,572✔
9276
    bufLen -= headLen;
10,004,572✔
9277
  }
9278

9279
  SEncoder encoder = {0};
20,001,807✔
9280
  tEncoderInit(&encoder, buf, bufLen);
20,001,807✔
9281
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20,005,256!
9282

9283
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
40,013,134!
9284
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
40,013,134!
9285
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
40,013,134!
9286
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
40,013,134!
9287
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
40,013,134!
9288
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
40,013,134!
9289

9290
  tEndEncode(&encoder);
20,006,567✔
9291

9292
_exit:
20,004,202✔
9293
  if (code) {
20,004,202!
9294
    tEncoderClear(&encoder);
×
9295
    return code;
×
9296
  } else {
9297
    tlen = encoder.pos;
20,004,202✔
9298
    tEncoderClear(&encoder);
20,004,202✔
9299

9300
    if (buf != NULL) {
20,008,748✔
9301
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
10,007,195✔
9302
      pHead->vgId = htonl(pReq->header.vgId);
10,007,195✔
9303
      pHead->contLen = htonl(tlen + headLen);
10,007,195✔
9304
    }
9305

9306
    return tlen + headLen;
20,008,748✔
9307
  }
9308
}
9309

9310
int32_t tDeserializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
8,183,469✔
9311
  int32_t headLen = sizeof(SMsgHead);
8,183,469✔
9312
  int32_t code = 0;
8,183,469✔
9313
  int32_t lino;
9314

9315
  SMsgHead *pHead = buf;
8,183,469✔
9316
  pHead->vgId = pReq->header.vgId;
8,183,469✔
9317
  pHead->contLen = pReq->header.contLen;
8,183,469✔
9318

9319
  SDecoder decoder = {0};
8,183,469✔
9320
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
8,183,469✔
9321

9322
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8,175,459!
9323

9324
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
16,375,363!
9325
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
16,371,008!
9326
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
16,367,529!
9327
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
16,363,451!
9328
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
16,361,053!
9329
  if (!tDecodeIsEnd(&decoder)) {
8,180,252!
9330
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
16,362,567!
9331
  } else {
9332
    pReq->clientId = 0;
×
9333
  }
9334

9335
  tEndDecode(&decoder);
8,179,329✔
9336

9337
_exit:
8,180,600✔
9338
  tDecoderClear(&decoder);
8,180,600✔
9339
  return code;
8,184,217✔
9340
}
9341

9342
int32_t tSerializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
52✔
9343
  int32_t code = 0;
52✔
9344
  int32_t lino;
9345
  int32_t tlen;
9346
  int32_t headLen = sizeof(SMsgHead);
52✔
9347
  if (buf != NULL) {
52✔
9348
    buf = (char *)buf + headLen;
26✔
9349
    bufLen -= headLen;
26✔
9350
  }
9351

9352
  SEncoder encoder = {0};
52✔
9353
  tEncoderInit(&encoder, buf, bufLen);
52✔
9354
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
52!
9355

9356
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
104!
9357
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
104!
9358
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
104!
9359
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
104!
9360
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
104!
9361
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
104!
9362
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
104!
9363

9364
  tEndEncode(&encoder);
52✔
9365

9366
_exit:
52✔
9367
  if (code) {
52!
9368
    tEncoderClear(&encoder);
×
9369
    return code;
×
9370
  } else {
9371
    tlen = encoder.pos;
52✔
9372
    tEncoderClear(&encoder);
52✔
9373

9374
    if (buf != NULL) {
52✔
9375
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
26✔
9376
      pHead->vgId = htonl(pReq->header.vgId);
26✔
9377
      pHead->contLen = htonl(tlen + headLen);
26✔
9378
    }
9379

9380
    return tlen + headLen;
52✔
9381
  }
9382
}
9383

9384
int32_t tDeserializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
41✔
9385
  int32_t headLen = sizeof(SMsgHead);
41✔
9386
  int32_t code = 0;
41✔
9387
  int32_t lino;
9388

9389
  SMsgHead *pHead = buf;
41✔
9390
  pHead->vgId = pReq->header.vgId;
41✔
9391
  pHead->contLen = pReq->header.contLen;
41✔
9392

9393
  SDecoder decoder = {0};
41✔
9394
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
41✔
9395

9396
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
41!
9397

9398
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
82!
9399
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
82!
9400
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
82!
9401
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
82!
9402
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
82!
9403
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, (int32_t *)&pReq->type));
82!
9404
  if (!tDecodeIsEnd(&decoder)) {
41!
9405
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
82!
9406
  } else {
9407
    pReq->clientId = 0;
×
9408
  }
9409

9410
  tEndDecode(&decoder);
41✔
9411

9412
_exit:
41✔
9413
  tDecoderClear(&decoder);
41✔
9414
  return code;
41✔
9415
}
9416

9417
int32_t tSerializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
16,367,481✔
9418
  SEncoder encoder = {0};
16,367,481✔
9419
  int32_t  code = 0;
16,367,481✔
9420
  int32_t  lino;
9421
  int32_t  tlen;
9422
  tEncoderInit(&encoder, buf, bufLen);
16,367,481✔
9423
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16,369,959!
9424

9425
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->code));
32,737,428!
9426
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->affectedRows));
32,737,428!
9427
  int32_t tbNum = taosArrayGetSize(pRsp->tbVerInfo);
16,368,714✔
9428
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, tbNum));
16,368,855!
9429
  if (tbNum > 0) {
16,368,855✔
9430
    for (int32_t i = 0; i < tbNum; ++i) {
19,548,828✔
9431
      STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
9,774,822✔
9432
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pVer->tbFName));
19,547,830!
9433
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->sversion));
19,547,830!
9434
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->tversion));
19,547,830!
9435
    }
9436
  }
9437

9438
  tEndEncode(&encoder);
16,367,948✔
9439

9440
_exit:
16,369,980✔
9441
  if (code) {
16,369,980!
9442
    tlen = code;
×
9443
  } else {
9444
    tlen = encoder.pos;
16,369,980✔
9445
  }
9446
  tEncoderClear(&encoder);
16,369,980✔
9447
  return tlen;
16,370,542✔
9448
}
9449

9450
int32_t tDeserializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
1,816,105✔
9451
  SDecoder decoder = {0};
1,816,105✔
9452
  int32_t  code = 0;
1,816,105✔
9453
  int32_t  lino;
9454
  tDecoderInit(&decoder, (char *)buf, bufLen);
1,816,105✔
9455

9456
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,816,085✔
9457

9458
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->code));
3,632,504!
9459
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->affectedRows));
3,632,447!
9460
  int32_t tbNum = 0;
1,816,218✔
9461
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbNum));
1,816,093!
9462
  if (tbNum > 0) {
1,816,093✔
9463
    pRsp->tbVerInfo = taosArrayInit(tbNum, sizeof(STbVerInfo));
1,293,657✔
9464
    if (NULL == pRsp->tbVerInfo) {
1,293,637!
9465
      TAOS_CHECK_EXIT(terrno);
×
9466
    }
9467
    STbVerInfo tbVer;
9468
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tbVer.tbFName));
1,293,637!
9469
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.sversion));
1,293,662!
9470
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.tversion));
1,293,648!
9471
    if (NULL == taosArrayPush(pRsp->tbVerInfo, &tbVer)) {
2,587,324!
9472
      TAOS_CHECK_EXIT(terrno);
×
9473
    }
9474
  }
9475

9476
  tEndDecode(&decoder);
1,816,112✔
9477

9478
_exit:
1,816,166✔
9479
  tDecoderClear(&decoder);
1,816,166✔
9480
  return code;
1,816,241✔
9481
}
9482

9483
int32_t tSerializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
6,270,856✔
9484
  int32_t code = 0;
6,270,856✔
9485
  int32_t lino;
9486
  int32_t tlen;
9487
  int32_t headLen = sizeof(SMsgHead);
6,270,856✔
9488
  if (buf != NULL) {
6,270,856✔
9489
    buf = (char *)buf + headLen;
3,136,006✔
9490
    bufLen -= headLen;
3,136,006✔
9491
  }
9492

9493
  SEncoder encoder = {0};
6,270,856✔
9494
  tEncoderInit(&encoder, buf, bufLen);
6,270,856✔
9495

9496
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,271,233!
9497
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
12,542,880!
9498
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epId.nodeId));
12,542,880!
9499
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pReq->epId.ep.port));
12,542,880!
9500
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->epId.ep.fqdn));
12,542,880!
9501
  if (pReq->taskAction) {
6,271,440!
9502
    int32_t num = taosArrayGetSize(pReq->taskAction);
×
9503
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
9504
    for (int32_t i = 0; i < num; ++i) {
×
9505
      STaskAction *action = taosArrayGet(pReq->taskAction, i);
×
9506
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->queryId));
×
9507
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->taskId));
×
9508
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, action->action));
×
9509
    }
9510
  } else {
9511
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
6,271,440!
9512
  }
9513
  tEndEncode(&encoder);
6,271,440✔
9514

9515
_exit:
6,271,390✔
9516
  if (code) {
6,271,390!
9517
    tEncoderClear(&encoder);
×
9518
    return code;
×
9519
  } else {
9520
    tlen = encoder.pos;
6,271,390✔
9521
    tEncoderClear(&encoder);
6,271,390✔
9522

9523
    if (buf != NULL) {
6,271,431✔
9524
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
3,136,545✔
9525
      pHead->vgId = htonl(pReq->header.vgId);
3,136,545✔
9526
      pHead->contLen = htonl(tlen + headLen);
3,136,545✔
9527
    }
9528
    return tlen + headLen;
6,271,431✔
9529
  }
9530
}
9531

9532
int32_t tDeserializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
2,115,168✔
9533
  int32_t   headLen = sizeof(SMsgHead);
2,115,168✔
9534
  SMsgHead *pHead = buf;
2,115,168✔
9535
  pHead->vgId = pReq->header.vgId;
2,115,168✔
9536
  pHead->contLen = pReq->header.contLen;
2,115,168✔
9537
  int32_t code = 0;
2,115,168✔
9538
  int32_t lino;
9539

9540
  SDecoder decoder = {0};
2,115,168✔
9541
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
2,115,168✔
9542

9543
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2,114,807!
9544
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
4,231,079!
9545
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epId.nodeId));
4,231,006!
9546
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pReq->epId.ep.port));
4,230,948!
9547
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->epId.ep.fqdn));
2,115,433!
9548
  int32_t num = 0;
2,115,331✔
9549
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
2,115,175!
9550
  if (num > 0) {
2,115,175!
9551
    pReq->taskAction = taosArrayInit(num, sizeof(STaskStatus));
×
9552
    if (NULL == pReq->taskAction) {
×
9553
      TAOS_CHECK_EXIT(terrno);
×
9554
    }
9555
    for (int32_t i = 0; i < num; ++i) {
×
9556
      STaskAction action = {0};
×
9557
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.queryId));
×
9558
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.taskId));
×
9559
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &action.action));
×
9560
      if (taosArrayPush(pReq->taskAction, &action) == NULL) {
×
9561
        TAOS_CHECK_EXIT(terrno);
×
9562
      }
9563
    }
9564
  } else {
9565
    pReq->taskAction = NULL;
2,115,175✔
9566
  }
9567
  tEndDecode(&decoder);
2,115,175✔
9568

9569
_exit:
2,114,778✔
9570
  tDecoderClear(&decoder);
2,114,778✔
9571
  return code;
2,115,015✔
9572
}
9573

9574
void tFreeSSchedulerHbReq(SSchedulerHbReq *pReq) { taosArrayDestroy(pReq->taskAction); }
×
9575

9576
int32_t tSerializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
4,800,296✔
9577
  SEncoder encoder = {0};
4,800,296✔
9578
  int32_t  code = 0;
4,800,296✔
9579
  int32_t  lino;
9580
  int32_t  tlen;
9581
  tEncoderInit(&encoder, buf, bufLen);
4,800,296✔
9582

9583
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4,800,487!
9584
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->epId.nodeId));
9,601,018!
9585
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pRsp->epId.ep.port));
9,601,018!
9586
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->epId.ep.fqdn));
9,601,018!
9587
  if (pRsp->taskStatus) {
4,800,509✔
9588
    int32_t num = taosArrayGetSize(pRsp->taskStatus);
574,006✔
9589
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
574,006!
9590
    for (int32_t i = 0; i < num; ++i) {
997,230✔
9591
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
423,224✔
9592
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->queryId));
846,448!
9593
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->taskId));
846,448!
9594
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, status->refId));
846,448!
9595
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, status->execId));
846,448!
9596
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, status->status));
846,448!
9597
    }
9598
    for (int32_t i = 0; i < num; ++i) {
997,230✔
9599
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
423,224✔
9600
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->clientId));
846,448!
9601
    }
9602
  } else {
9603
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
4,226,503!
9604
  }
9605
  tEndEncode(&encoder);
4,800,509✔
9606

9607
_exit:
4,800,344✔
9608
  if (code) {
4,800,344!
9609
    tlen = code;
×
9610
  } else {
9611
    tlen = encoder.pos;
4,800,344✔
9612
  }
9613
  tEncoderClear(&encoder);
4,800,344✔
9614
  return tlen;
4,800,302✔
9615
}
9616

9617
int32_t tDeserializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
1,044,690✔
9618
  SDecoder decoder = {0};
1,044,690✔
9619
  int32_t  code = 0;
1,044,690✔
9620
  int32_t  lino;
9621
  tDecoderInit(&decoder, buf, bufLen);
1,044,690✔
9622

9623
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,044,684✔
9624
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->epId.nodeId));
2,089,495!
9625
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pRsp->epId.ep.port));
2,089,488!
9626
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->epId.ep.fqdn));
1,044,745!
9627
  int32_t num = 0;
1,044,667✔
9628
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1,044,730!
9629
  if (num > 0) {
1,044,730✔
9630
    pRsp->taskStatus = taosArrayInit(num, sizeof(STaskStatus));
6,728✔
9631
    if (NULL == pRsp->taskStatus) {
6,728!
9632
      TAOS_CHECK_EXIT(terrno);
×
9633
    }
9634
    for (int32_t i = 0; i < num; ++i) {
19,504✔
9635
      STaskStatus status = {0};
12,775✔
9636
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.queryId));
12,775!
9637
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.taskId));
12,775!
9638
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &status.refId));
12,775!
9639
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &status.execId));
12,775!
9640
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &status.status));
12,775!
9641
      if (taosArrayPush(pRsp->taskStatus, &status) == NULL) {
25,551!
9642
        TAOS_CHECK_EXIT(terrno);
×
9643
      }
9644
    }
9645
    if (!tDecodeIsEnd(&decoder)) {
6,729!
9646
      for (int32_t i = 0; i < num; ++i) {
19,504✔
9647
        STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
12,776✔
9648
        TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status->clientId));
25,550!
9649
      }
9650
    }
9651
  } else {
9652
    pRsp->taskStatus = NULL;
1,038,002✔
9653
  }
9654
  tEndDecode(&decoder);
1,044,730✔
9655

9656
_exit:
1,044,656✔
9657
  tDecoderClear(&decoder);
1,044,656✔
9658
  return code;
1,044,664✔
9659
}
9660

9661
void tFreeSSchedulerHbRsp(SSchedulerHbRsp *pRsp) { taosArrayDestroy(pRsp->taskStatus); }
1,332,507✔
9662

9663
int tEncodeSVCreateTbBatchRsp(SEncoder *pCoder, const SVCreateTbBatchRsp *pRsp) {
156,754✔
9664
  int32_t        nRsps = taosArrayGetSize(pRsp->pArray);
156,754✔
9665
  SVCreateTbRsp *pCreateRsp;
9666

9667
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
156,758!
9668
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
156,756!
9669
  for (int32_t i = 0; i < nRsps; i++) {
395,665✔
9670
    pCreateRsp = taosArrayGet(pRsp->pArray, i);
238,908✔
9671
    TAOS_CHECK_RETURN(tEncodeSVCreateTbRsp(pCoder, pCreateRsp));
238,909!
9672
  }
9673

9674
  tEndEncode(pCoder);
156,757✔
9675
  return 0;
156,758✔
9676
}
9677

9678
int tDecodeSVCreateTbBatchRsp(SDecoder *pCoder, SVCreateTbBatchRsp *pRsp) {
72,175✔
9679
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
72,175!
9680
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
144,408!
9681
  pRsp->pRsps = (SVCreateTbRsp *)tDecoderMalloc(pCoder, sizeof(*pRsp->pRsps) * pRsp->nRsps);
72,206!
9682
  if (pRsp->pRsps == NULL) {
72,207!
9683
    TAOS_CHECK_RETURN(terrno);
×
9684
  }
9685
  for (int32_t i = 0; i < pRsp->nRsps; i++) {
169,618✔
9686
    TAOS_CHECK_RETURN(tDecodeSVCreateTbRsp(pCoder, pRsp->pRsps + i));
97,456!
9687
  }
9688

9689
  tEndDecode(pCoder);
72,162✔
9690
  return 0;
72,193✔
9691
}
9692

9693
int32_t tEncodeTSma(SEncoder *pCoder, const STSma *pSma) {
120✔
9694
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->version));
240!
9695
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->intervalUnit));
240!
9696
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->slidingUnit));
240!
9697
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->timezoneInt));
240!
9698
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->dstVgId));
240!
9699
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->indexName));
240!
9700
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->exprLen));
240!
9701
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->tagsFilterLen));
240!
9702
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->indexUid));
240!
9703
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->tableUid));
240!
9704
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->dstTbUid));
240!
9705
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->dstTbName));
240!
9706
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->interval));
240!
9707
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->offset));
240!
9708
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->sliding));
240!
9709
  if (pSma->exprLen > 0) {
120!
9710
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->expr));
240!
9711
  }
9712
  if (pSma->tagsFilterLen > 0) {
120!
9713
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->tagsFilter));
×
9714
  }
9715

9716
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaRow));
240!
9717
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaTag));
240!
9718

9719
  return 0;
120✔
9720
}
9721

9722
int32_t tDecodeTSma(SDecoder *pCoder, STSma *pSma, bool deepCopy) {
61✔
9723
  int32_t code = 0;
61✔
9724
  int32_t lino;
9725

9726
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->version));
122!
9727
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->intervalUnit));
122!
9728
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->slidingUnit));
122!
9729
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->timezoneInt));
122!
9730
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->dstVgId));
122!
9731
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pSma->indexName));
61!
9732
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->exprLen));
122!
9733
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->tagsFilterLen));
122!
9734
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->indexUid));
122!
9735
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->tableUid));
122!
9736
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->dstTbUid));
122!
9737
  if (deepCopy) {
61✔
9738
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->dstTbName));
2!
9739
  } else {
9740
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->dstTbName));
120!
9741
  }
9742

9743
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->interval));
122!
9744
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->offset));
122!
9745
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->sliding));
122!
9746
  if (pSma->exprLen > 0) {
61!
9747
    if (deepCopy) {
61✔
9748
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->expr));
2!
9749
    } else {
9750
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->expr));
120!
9751
    }
9752
  } else {
9753
    pSma->expr = NULL;
×
9754
  }
9755
  if (pSma->tagsFilterLen > 0) {
61!
9756
    if (deepCopy) {
×
9757
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->tagsFilter));
×
9758
    } else {
9759
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->tagsFilter));
×
9760
    }
9761
  } else {
9762
    pSma->tagsFilter = NULL;
61✔
9763
  }
9764
  // only needed in dstVgroup
9765
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaRow));
122!
9766
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaTag));
122!
9767

9768
_exit:
61✔
9769
  return code;
61✔
9770
}
9771

9772
int32_t tEncodeSVCreateTSmaReq(SEncoder *pCoder, const SVCreateTSmaReq *pReq) {
58✔
9773
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
58!
9774
  TAOS_CHECK_RETURN(tEncodeTSma(pCoder, pReq));
58!
9775
  tEndEncode(pCoder);
58✔
9776
  return 0;
58✔
9777
}
9778

9779
int32_t tDecodeSVCreateTSmaReq(SDecoder *pCoder, SVCreateTSmaReq *pReq) {
60✔
9780
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
60!
9781
  TAOS_CHECK_RETURN(tDecodeTSma(pCoder, pReq, false));
60!
9782
  tEndDecode(pCoder);
60✔
9783
  return 0;
60✔
9784
}
9785

9786
int32_t tEncodeSVDropTSmaReq(SEncoder *pCoder, const SVDropTSmaReq *pReq) {
×
9787
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
9788
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->indexUid));
×
9789
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->indexName));
×
9790

9791
  tEndEncode(pCoder);
×
9792
  return 0;
×
9793
}
9794

9795
int32_t tSerializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
109,988✔
9796
  int32_t code = 0;
109,988✔
9797
  int32_t lino;
9798
  int32_t headLen = sizeof(SMsgHead);
109,988✔
9799
  if (buf != NULL) {
109,988✔
9800
    buf = (char *)buf + headLen;
54,999✔
9801
    bufLen -= headLen;
54,999✔
9802
  }
9803

9804
  SEncoder encoder = {0};
109,988✔
9805
  tEncoderInit(&encoder, buf, bufLen);
109,988✔
9806

9807
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
109,990!
9808
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
219,976!
9809
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
219,976!
9810
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
219,976!
9811
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
219,976!
9812
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
219,976!
9813
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->msg, pReq->phyLen));
219,976!
9814
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
219,976!
9815
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
219,976!
9816
  tEndEncode(&encoder);
109,988✔
9817

9818
_exit:
109,987✔
9819
  if (code) {
109,987!
9820
    tEncoderClear(&encoder);
×
9821
    return code;
×
9822
  } else {
9823
    int32_t tlen = encoder.pos;
109,987✔
9824
    tEncoderClear(&encoder);
109,987✔
9825

9826
    if (buf != NULL) {
109,986✔
9827
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
54,997✔
9828
      pHead->vgId = htonl(pReq->header.vgId);
54,997✔
9829
      pHead->contLen = htonl(tlen + headLen);
54,997✔
9830
    }
9831

9832
    return tlen + headLen;
109,986✔
9833
  }
9834
}
9835

9836
int32_t tDeserializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
59,013✔
9837
  int32_t   code = 0;
59,013✔
9838
  int32_t   lino;
9839
  int32_t   headLen = sizeof(SMsgHead);
59,013✔
9840
  SMsgHead *pHead = buf;
59,013✔
9841
  pHead->vgId = pReq->header.vgId;
59,013✔
9842
  pHead->contLen = pReq->header.contLen;
59,013✔
9843

9844
  SDecoder decoder = {0};
59,013✔
9845
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
59,013✔
9846

9847
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
59,012!
9848
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
118,027!
9849
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
118,026!
9850
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
118,025!
9851
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
118,024!
9852
  pReq->sql = taosMemoryCalloc(1, pReq->sqlLen + 1);
59,012!
9853
  if (NULL == pReq->sql) {
59,015!
9854
    TAOS_CHECK_EXIT(terrno);
×
9855
  }
9856
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
59,015!
9857
  uint64_t msgLen = 0;
59,014✔
9858
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, &msgLen));
118,030!
9859
  pReq->phyLen = msgLen;
59,016✔
9860

9861
  if (!tDecodeIsEnd(&decoder)) {
59,016✔
9862
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
118,027!
9863
  }
9864
  if (!tDecodeIsEnd(&decoder)) {
59,015✔
9865
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
118,027!
9866
  } else {
9867
    pReq->clientId = 0;
2✔
9868
  }
9869
  tEndDecode(&decoder);
59,016✔
9870

9871
_exit:
59,014✔
9872
  tDecoderClear(&decoder);
59,014✔
9873
  return 0;
59,013✔
9874
}
9875

9876
int32_t tEncodeSVDeleteRsp(SEncoder *pCoder, const SVDeleteRsp *pReq) {
124,755✔
9877
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
124,755✔
9878
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->affectedRows));
249,514!
9879
  tEndEncode(pCoder);
124,757✔
9880
  return 0;
124,754✔
9881
}
9882

9883
int32_t tDecodeSVDeleteRsp(SDecoder *pCoder, SVDeleteRsp *pReq) {
55,006✔
9884
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
55,006✔
9885
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->affectedRows));
109,996!
9886
  tEndDecode(pCoder);
54,998✔
9887
  return 0;
54,998✔
9888
}
9889

9890
int32_t tSerializeSCMCreateStreamReq(void *buf, int32_t bufLen, const SCMCreateStreamReq *pReq) {
2,446✔
9891
  int32_t sqlLen = 0;
2,446✔
9892
  int32_t astLen = 0;
2,446✔
9893
  if (pReq->sql != NULL) sqlLen = (int32_t)strlen(pReq->sql);
2,446!
9894
  if (pReq->ast != NULL) astLen = (int32_t)strlen(pReq->ast);
2,446!
9895

9896
  SEncoder encoder = {0};
2,446✔
9897
  tEncoderInit(&encoder, buf, bufLen);
2,446✔
9898
  int32_t code = 0;
2,446✔
9899
  int32_t lino;
9900

9901
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,446!
9902
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,892!
9903
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sourceDB));
4,892!
9904
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->targetStbFullName));
4,892!
9905
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
4,892!
9906
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fillHistory));
4,892!
9907
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sqlLen));
2,446!
9908
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, astLen));
2,446!
9909
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->triggerType));
4,892!
9910
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->maxDelay));
4,892!
9911
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark));
4,892!
9912
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExpired));
4,892!
9913
  if (sqlLen > 0) {
2,446!
9914
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
4,892!
9915
  }
9916
  if (astLen > 0) {
2,446!
9917
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
4,892!
9918
  }
9919
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTags));
4,892!
9920
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
5,664✔
9921
    SField *pField = taosArrayGet(pReq->pTags, i);
3,218✔
9922
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
6,436!
9923
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
6,436!
9924
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
6,436!
9925
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
6,436!
9926
  }
9927

9928
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createStb));
4,892!
9929
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->targetStbUid));
4,892!
9930

9931
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->fillNullCols)));
4,892!
9932
  for (int32_t i = 0; i < taosArrayGetSize(pReq->fillNullCols); ++i) {
2,636✔
9933
    SColLocation *pCol = taosArrayGet(pReq->fillNullCols, i);
190✔
9934
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->slotId));
380!
9935
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->colId));
380!
9936
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pCol->type));
380!
9937
  }
9938

9939
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark));
4,892!
9940
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUpdate));
4,892!
9941
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastTs));
4,892!
9942

9943
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->pVgroupVerList)));
4,892!
9944

9945
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
4,676✔
9946
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
2,230✔
9947
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
4,460!
9948
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
4,460!
9949
  }
9950

9951
  int32_t colSize = taosArrayGetSize(pReq->pCols);
2,446✔
9952
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, colSize));
2,446!
9953
  for (int32_t i = 0; i < colSize; ++i) {
104,682✔
9954
    SFieldWithOptions *pField = taosArrayGet(pReq->pCols, i);
102,236✔
9955
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
204,472!
9956
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
204,472!
9957
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
204,472!
9958
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
204,472!
9959
  }
9960

9961
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->smaId));
4,892!
9962
  tEndEncode(&encoder);
2,446✔
9963

9964
_exit:
2,446✔
9965
  if (code) {
2,446!
9966
    tEncoderClear(&encoder);
×
9967
    return code;
×
9968
  } else {
9969
    int32_t tlen = encoder.pos;
2,446✔
9970
    tEncoderClear(&encoder);
2,446✔
9971
    return tlen;
2,446✔
9972
  }
9973
}
9974

9975
int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStreamReq *pReq) {
1,761✔
9976
  int32_t sqlLen = 0;
1,761✔
9977
  int32_t astLen = 0;
1,761✔
9978
  int32_t numOfFillNullCols = 0;
1,761✔
9979
  int32_t numOfVgVer = 0;
1,761✔
9980

9981
  SDecoder decoder = {0};
1,761✔
9982
  tDecoderInit(&decoder, buf, bufLen);
1,761✔
9983
  int32_t code = 0;
1,761✔
9984
  int32_t lino;
9985

9986
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,761!
9987
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,761!
9988
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sourceDB));
1,761!
9989
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->targetStbFullName));
1,761!
9990
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
3,522!
9991
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->fillHistory));
3,522!
9992
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
1,761!
9993
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
1,761!
9994
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->triggerType));
3,522!
9995
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
3,522!
9996
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
3,522!
9997
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExpired));
3,522!
9998

9999
  if (sqlLen > 0) {
1,761!
10000
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
1,761!
10001
    if (pReq->sql == NULL) {
1,761!
10002
      TAOS_CHECK_EXIT(terrno);
×
10003
    }
10004
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
1,761!
10005
  }
10006

10007
  if (astLen > 0) {
1,761!
10008
    pReq->ast = taosMemoryCalloc(1, astLen + 1);
1,761!
10009
    if (pReq->ast == NULL) {
1,761!
10010
      TAOS_CHECK_EXIT(terrno);
×
10011
    }
10012
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
1,761!
10013
  }
10014

10015
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
3,522!
10016
  if (pReq->numOfTags > 0) {
1,761✔
10017
    pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField));
288✔
10018
    if (pReq->pTags == NULL) {
288!
10019
      TAOS_CHECK_EXIT(terrno);
×
10020
    }
10021

10022
    for (int32_t i = 0; i < pReq->numOfTags; ++i) {
1,886✔
10023
      SField field = {0};
1,598✔
10024
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
1,598!
10025
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
1,598!
10026
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
1,598!
10027
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
1,598!
10028
      if (taosArrayPush(pReq->pTags, &field) == NULL) {
3,196!
10029
        TAOS_CHECK_EXIT(terrno);
×
10030
      }
10031
    }
10032
  }
10033
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createStb));
3,522!
10034
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->targetStbUid));
3,522!
10035
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFillNullCols));
1,761!
10036
  if (numOfFillNullCols > 0) {
1,761✔
10037
    pReq->fillNullCols = taosArrayInit(numOfFillNullCols, sizeof(SColLocation));
26✔
10038
    if (pReq->fillNullCols == NULL) {
26!
10039
      TAOS_CHECK_EXIT(terrno);
×
10040
    }
10041

10042
    for (int32_t i = 0; i < numOfFillNullCols; ++i) {
253✔
10043
      SColLocation col = {0};
227✔
10044
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.slotId));
227!
10045
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.colId));
227!
10046
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &col.type));
227!
10047
      if (taosArrayPush(pReq->fillNullCols, &col) == NULL) {
454!
10048
        TAOS_CHECK_EXIT(terrno);
×
10049
      }
10050
    }
10051
  }
10052

10053
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
3,522!
10054
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUpdate));
3,522!
10055
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
3,522!
10056

10057
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
1,761!
10058
  if (numOfVgVer > 0) {
1,761✔
10059
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
757✔
10060
    if (pReq->pVgroupVerList == NULL) {
757!
10061
      TAOS_CHECK_EXIT(terrno);
×
10062
    }
10063

10064
    for (int32_t i = 0; i < numOfVgVer; ++i) {
2,158✔
10065
      SVgroupVer v = {0};
1,401✔
10066
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
1,401!
10067
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
1,401!
10068
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
2,802!
10069
        TAOS_CHECK_EXIT(terrno);
×
10070
      }
10071
    }
10072
  }
10073
  int32_t colSize = 0;
1,761✔
10074
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &colSize));
1,761!
10075
  if (colSize > 0) {
1,761!
10076
    pReq->pCols = taosArrayInit(colSize, sizeof(SField));
1,761✔
10077
    if (pReq->pCols == NULL) {
1,761!
10078
      TAOS_CHECK_EXIT(terrno);
×
10079
    }
10080

10081
    for (int32_t i = 0; i < colSize; ++i) {
62,470✔
10082
      SField field = {0};
60,709✔
10083
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
60,709!
10084
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
60,709!
10085
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
60,709!
10086
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
60,709!
10087
      if (taosArrayPush(pReq->pCols, &field) == NULL) {
121,418!
10088
        TAOS_CHECK_EXIT(terrno);
×
10089
      }
10090
    }
10091
  }
10092
  if (!tDecodeIsEnd(&decoder)) {
1,761!
10093
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->smaId));
3,522!
10094
  }
10095

10096
  tEndDecode(&decoder);
1,761✔
10097
_exit:
1,761✔
10098
  tDecoderClear(&decoder);
1,761✔
10099
  return code;
1,761✔
10100
}
10101

10102
int32_t tSerializeSMDropStreamReq(void *buf, int32_t bufLen, const SMDropStreamReq *pReq) {
2,234✔
10103
  int32_t  code = 0;
2,234✔
10104
  int32_t  lino;
10105
  int32_t  tlen;
10106
  SEncoder encoder = {0};
2,234✔
10107
  tEncoderInit(&encoder, buf, bufLen);
2,234✔
10108

10109
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,234!
10110
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,468!
10111
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
4,468!
10112

10113
  ENCODESQL();
6,702!
10114

10115
  tEndEncode(&encoder);
2,234✔
10116

10117
_exit:
2,234✔
10118
  if (code) {
2,234!
10119
    tlen = code;
×
10120
  } else {
10121
    tlen = encoder.pos;
2,234✔
10122
  }
10123
  tEncoderClear(&encoder);
2,234✔
10124
  return tlen;
2,234✔
10125
}
10126

10127
int32_t tDeserializeSMDropStreamReq(void *buf, int32_t bufLen, SMDropStreamReq *pReq) {
1,420✔
10128
  SDecoder decoder = {0};
1,420✔
10129
  int32_t  code = 0;
1,420✔
10130
  int32_t  lino;
10131
  tDecoderInit(&decoder, buf, bufLen);
1,420✔
10132

10133
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,420!
10134
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,420!
10135
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
2,840!
10136

10137
  DECODESQL();
4,260!
10138

10139
  tEndDecode(&decoder);
1,420✔
10140

10141
_exit:
1,420✔
10142
  tDecoderClear(&decoder);
1,420✔
10143
  return code;
1,420✔
10144
}
10145

10146
void tFreeMDropStreamReq(SMDropStreamReq *pReq) { FREESQL(); }
2,537!
10147

10148
void tFreeSCMCreateStreamReq(SCMCreateStreamReq *pReq) {
4,753✔
10149
  if (NULL == pReq) {
4,753✔
10150
    return;
1,279✔
10151
  }
10152
  taosMemoryFreeClear(pReq->sql);
3,474!
10153
  taosMemoryFreeClear(pReq->ast);
3,474!
10154
  taosArrayDestroy(pReq->pTags);
3,474✔
10155
  taosArrayDestroy(pReq->fillNullCols);
3,474✔
10156
  taosArrayDestroy(pReq->pVgroupVerList);
3,474✔
10157
  taosArrayDestroy(pReq->pCols);
3,474✔
10158
}
10159

10160
int32_t tEncodeSRSmaParam(SEncoder *pCoder, const SRSmaParam *pRSmaParam) {
21✔
10161
  int32_t code = 0;
21✔
10162
  int32_t lino;
10163
  for (int32_t i = 0; i < 2; ++i) {
63✔
10164
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->maxdelay[i]));
84!
10165
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->watermark[i]));
84!
10166
    TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRSmaParam->qmsgLen[i]));
84!
10167
    if (pRSmaParam->qmsgLen[i] > 0) {
42!
10168
      TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pRSmaParam->qmsg[i], (uint64_t)pRSmaParam->qmsgLen[i]));
84!
10169
    }
10170
  }
10171

10172
_exit:
21✔
10173
  return code;
21✔
10174
}
10175

10176
int32_t tDecodeSRSmaParam(SDecoder *pCoder, SRSmaParam *pRSmaParam) {
275✔
10177
  int32_t code = 0;
275✔
10178
  int32_t lino;
10179
  for (int32_t i = 0; i < 2; ++i) {
824✔
10180
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->maxdelay[i]));
1,100!
10181
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->watermark[i]));
1,100!
10182
    TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pRSmaParam->qmsgLen[i]));
1,100!
10183
    if (pRSmaParam->qmsgLen[i] > 0) {
550!
10184
      TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pRSmaParam->qmsg[i], NULL));  // qmsgLen contains len of '\0'
1,099!
10185
    } else {
10186
      pRSmaParam->qmsg[i] = NULL;
×
10187
    }
10188
  }
10189

10190
_exit:
274✔
10191
  return code;
274✔
10192
}
10193

10194
int32_t tEncodeSColCmprWrapper(SEncoder *pCoder, const SColCmprWrapper *pWrapper) {
91,216✔
10195
  int32_t code = 0;
91,216✔
10196
  int32_t lino;
10197

10198
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
182,432!
10199
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
182,432!
10200
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
5,555,572✔
10201
    SColCmpr *p = &pWrapper->pColCmpr[i];
5,464,356✔
10202
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
10,928,712!
10203
    TAOS_CHECK_EXIT(tEncodeU32(pCoder, p->alg));
10,928,712!
10204
  }
10205

10206
_exit:
91,216✔
10207
  return code;
91,216✔
10208
}
10209

10210
int32_t tDecodeSColCmprWrapperEx(SDecoder *pDecoder, SColCmprWrapper *pWrapper) {
51,290✔
10211
  int32_t code = 0;
51,290✔
10212
  int32_t lino;
10213

10214
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
102,620!
10215
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
102,685!
10216

10217
  pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr));
51,355✔
10218
  if (pWrapper->pColCmpr == NULL) {
51,385!
10219
    TAOS_CHECK_EXIT(terrno);
×
10220
  }
10221

10222
  for (int i = 0; i < pWrapper->nCols; i++) {
2,762,488✔
10223
    SColCmpr *p = &pWrapper->pColCmpr[i];
2,711,746✔
10224
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
5,422,753!
10225
    TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &p->alg));
5,422,110!
10226
  }
10227

10228
_exit:
50,742✔
10229
  if (code) {
50,742!
10230
    taosMemoryFree(pWrapper->pColCmpr);
×
10231
  }
10232
  return code;
51,326✔
10233
}
10234

10235
int tEncodeSVCreateStbReq(SEncoder *pCoder, const SVCreateStbReq *pReq) {
59,610✔
10236
  int32_t code = 0;
59,610✔
10237
  int32_t lino;
10238

10239
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
59,610!
10240

10241
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
119,220!
10242
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->suid));
119,220!
10243
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->rollup));
119,220!
10244
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaRow));
119,220!
10245
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaTag));
119,220!
10246
  if (pReq->rollup) {
59,610✔
10247
    TAOS_CHECK_EXIT(tEncodeSRSmaParam(pCoder, &pReq->rsmaParam));
8!
10248
  }
10249

10250
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->alterOriDataLen));
119,220!
10251
  if (pReq->alterOriDataLen > 0) {
59,610✔
10252
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->alterOriData, pReq->alterOriDataLen));
23,904!
10253
  }
10254
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->source));
119,220!
10255

10256
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->colCmpred));
119,220!
10257
  TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
59,610!
10258
  tEndEncode(pCoder);
59,610✔
10259

10260
_exit:
59,610✔
10261
  return code;
59,610✔
10262
}
10263

10264
int tDecodeSVCreateStbReq(SDecoder *pCoder, SVCreateStbReq *pReq) {
36,749✔
10265
  int32_t code = 0;
36,749✔
10266
  int32_t lino;
10267

10268
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
36,749!
10269

10270
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
73,702!
10271
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
73,688!
10272
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->rollup));
73,699!
10273
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaRow));
73,657!
10274
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaTag));
73,671!
10275
  if (pReq->rollup) {
36,865✔
10276
    TAOS_CHECK_EXIT(tDecodeSRSmaParam(pCoder, &pReq->rsmaParam));
7!
10277
  }
10278

10279
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->alterOriDataLen));
73,693!
10280
  if (pReq->alterOriDataLen > 0) {
36,828✔
10281
    TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pReq->alterOriData, NULL));
12,668!
10282
  }
10283
  if (!tDecodeIsEnd(pCoder)) {
36,824✔
10284
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->source));
73,565!
10285

10286
    if (!tDecodeIsEnd(pCoder)) {
36,793!
10287
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->colCmpred));
73,636!
10288
    }
10289
    if (!tDecodeIsEnd(pCoder)) {
36,795!
10290
      TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
36,823!
10291
    }
10292
  }
10293
  tEndDecode(pCoder);
36,827✔
10294

10295
_exit:
36,806✔
10296
  return code;
36,806✔
10297
}
10298

10299
int tEncodeSVCreateTbReq(SEncoder *pCoder, const SVCreateTbReq *pReq) {
410,404✔
10300
  int32_t code = 0;
410,404✔
10301
  int32_t lino;
10302

10303
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
410,404!
10304

10305
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pReq->flags));
820,880!
10306
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
820,880!
10307
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->uid));
820,880!
10308
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->btime));
820,880!
10309
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->ttl));
820,880!
10310
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->type));
820,880!
10311
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->commentLen));
820,880!
10312
  if (pReq->commentLen > 0) {
410,440✔
10313
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->comment));
32!
10314
  }
10315

10316
  if (pReq->type == TSDB_CHILD_TABLE) {
410,440✔
10317
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->ctb.stbName));
757,720!
10318
    TAOS_CHECK_EXIT(tEncodeU8(pCoder, pReq->ctb.tagNum));
757,720!
10319
    TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->ctb.suid));
757,720!
10320
    TAOS_CHECK_EXIT(tEncodeTag(pCoder, (const STag *)pReq->ctb.pTag));
378,860!
10321
    int32_t len = taosArrayGetSize(pReq->ctb.tagName);
378,853✔
10322
    TAOS_CHECK_EXIT(tEncodeI32(pCoder, len));
378,854!
10323
    for (int32_t i = 0; i < len; i++) {
1,783,352✔
10324
      char *name = taosArrayGet(pReq->ctb.tagName, i);
1,404,500✔
10325
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, name));
1,404,498!
10326
    }
10327
  } else if (pReq->type == TSDB_NORMAL_TABLE) {
31,580!
10328
    TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->ntb.schemaRow));
63,212!
10329
  } else {
10330
    return TSDB_CODE_INVALID_MSG;
×
10331
  }
10332
  // ENCODESQL
10333

10334
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->sqlLen));
820,916!
10335
  if (pReq->sqlLen > 0) {
410,458!
10336
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->sql, pReq->sqlLen));
×
10337
  }
10338
  // Encode Column Options: encode compress level
10339
  if (pReq->type == TSDB_SUPER_TABLE || pReq->type == TSDB_NORMAL_TABLE) {
410,458✔
10340
    TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
31,675!
10341
  }
10342

10343
  tEndEncode(pCoder);
410,389✔
10344
_exit:
410,394✔
10345
  return code;
410,394✔
10346
}
10347

10348
int tDecodeSVCreateTbReq(SDecoder *pCoder, SVCreateTbReq *pReq) {
196,177✔
10349
  int32_t code = 0;
196,177✔
10350
  int32_t lino;
10351

10352
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
196,177!
10353

10354
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pReq->flags));
392,422!
10355
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
392,385!
10356
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->uid));
392,340!
10357
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->btime));
392,299!
10358
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->ttl));
392,267!
10359
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->type));
392,250!
10360
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->commentLen));
392,230!
10361
  if (pReq->commentLen > 0) {
196,106✔
10362
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
5!
10363
    if (pReq->comment == NULL) {
5!
10364
      TAOS_CHECK_EXIT(terrno);
×
10365
    }
10366
    TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->comment));
5!
10367
  }
10368

10369
  if (pReq->type == TSDB_CHILD_TABLE) {
196,106✔
10370
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->ctb.stbName));
363,142!
10371
    TAOS_CHECK_EXIT(tDecodeU8(pCoder, &pReq->ctb.tagNum));
363,164!
10372
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->ctb.suid));
363,154!
10373
    TAOS_CHECK_EXIT(tDecodeTag(pCoder, (STag **)&pReq->ctb.pTag));
181,573!
10374
    int32_t len = 0;
181,599✔
10375
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &len));
181,603!
10376
    pReq->ctb.tagName = taosArrayInit(len, TSDB_COL_NAME_LEN);
181,603✔
10377
    if (pReq->ctb.tagName == NULL) {
181,663✔
10378
      TAOS_CHECK_EXIT(terrno);
1!
10379
    }
10380
    for (int32_t i = 0; i < len; i++) {
718,992✔
10381
      char  name[TSDB_COL_NAME_LEN] = {0};
537,320✔
10382
      char *tmp = NULL;
537,320✔
10383
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &tmp));
537,158!
10384
      tstrncpy(name, tmp, TSDB_COL_NAME_LEN);
537,158✔
10385
      if (taosArrayPush(pReq->ctb.tagName, name) == NULL) {
1,074,488!
10386
        TAOS_CHECK_EXIT(terrno);
×
10387
      }
10388
    }
10389
  } else if (pReq->type == TSDB_NORMAL_TABLE) {
14,547✔
10390
    TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->ntb.schemaRow));
29,065!
10391
  } else {
10392
    return TSDB_CODE_INVALID_MSG;
15✔
10393
  }
10394

10395
  // DECODESQL
10396
  if (!tDecodeIsEnd(pCoder)) {
196,205✔
10397
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->sqlLen));
392,326!
10398
    if (pReq->sqlLen > 0) {
196,166!
10399
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pCoder, (void **)&pReq->sql, NULL));
×
10400
    }
10401
    if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_SUPER_TABLE)
196,166!
10402
      if (!tDecodeIsEnd(pCoder)) {
14,532!
10403
        TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
14,532!
10404
      }
10405
  }
10406

10407
  tEndDecode(pCoder);
196,212✔
10408
_exit:
196,159✔
10409
  return code;
196,159✔
10410
}
10411

10412
void tDestroySVCreateTbReq(SVCreateTbReq *pReq, int32_t flags) {
76,265✔
10413
  if (pReq == NULL) return;
76,265!
10414

10415
  if (flags & TSDB_MSG_FLG_ENCODE) {
76,265!
10416
    // TODO
10417
  } else if (flags & TSDB_MSG_FLG_DECODE) {
76,266!
10418
    if (pReq->comment) {
76,267!
10419
      pReq->comment = NULL;
×
10420
      taosMemoryFree(pReq->comment);
×
10421
    }
10422

10423
    if (pReq->type == TSDB_CHILD_TABLE) {
76,265!
10424
      if (pReq->ctb.tagName) taosArrayDestroy(pReq->ctb.tagName);
76,265!
10425
    } else if (pReq->type == TSDB_NORMAL_TABLE) {
×
10426
      if (pReq->ntb.schemaRow.pSchema) taosMemoryFree(pReq->ntb.schemaRow.pSchema);
×
10427
    }
10428
  }
10429

10430
  if (pReq->colCmpr.pColCmpr) taosMemoryFree(pReq->colCmpr.pColCmpr);
76,268!
10431
  pReq->colCmpr.pColCmpr = NULL;
76,268✔
10432

10433
  if (pReq->sql != NULL) {
76,268!
10434
    taosMemoryFree(pReq->sql);
×
10435
  }
10436
  pReq->sql = NULL;
76,269✔
10437
}
10438

10439
int tEncodeSVCreateTbBatchReq(SEncoder *pCoder, const SVCreateTbBatchReq *pReq) {
158,238✔
10440
  int32_t nReq = taosArrayGetSize(pReq->pArray);
158,238✔
10441

10442
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
158,249!
10443
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReq));
158,239!
10444
  for (int iReq = 0; iReq < nReq; iReq++) {
366,983✔
10445
    TAOS_CHECK_RETURN(tEncodeSVCreateTbReq(pCoder, (SVCreateTbReq *)taosArrayGet(pReq->pArray, iReq)));
208,778!
10446
  }
10447

10448
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->source));
316,410!
10449

10450
  tEndEncode(pCoder);
158,205✔
10451
  return 0;
158,234✔
10452
}
10453

10454
int tDecodeSVCreateTbBatchReq(SDecoder *pCoder, SVCreateTbBatchReq *pReq) {
78,781✔
10455
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
78,781!
10456

10457
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
157,619!
10458
  pReq->pReqs = (SVCreateTbReq *)tDecoderMalloc(pCoder, sizeof(SVCreateTbReq) * pReq->nReqs);
78,808✔
10459
  if (pReq->pReqs == NULL) {
78,809!
10460
    TAOS_CHECK_RETURN(terrno);
×
10461
  }
10462
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
198,700✔
10463
    TAOS_CHECK_RETURN(tDecodeSVCreateTbReq(pCoder, pReq->pReqs + iReq));
119,899✔
10464
  }
10465

10466
  if (!tDecodeIsEnd(pCoder)) {
78,801!
10467
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->source));
157,617!
10468
  }
10469

10470
  tEndDecode(pCoder);
78,802✔
10471
  return 0;
78,808✔
10472
}
10473

10474
void tDeleteSVCreateTbBatchReq(SVCreateTbBatchReq *pReq) {
78,812✔
10475
  for (int32_t iReq = 0; iReq < pReq->nReqs; iReq++) {
198,748✔
10476
    SVCreateTbReq *pCreateReq = pReq->pReqs + iReq;
119,933✔
10477
    taosMemoryFreeClear(pCreateReq->sql);
119,933!
10478
    taosMemoryFreeClear(pCreateReq->comment);
119,933!
10479
    if (pCreateReq->type == TSDB_CHILD_TABLE) {
119,933✔
10480
      taosArrayDestroy(pCreateReq->ctb.tagName);
105,400✔
10481
      pCreateReq->ctb.tagName = NULL;
105,403✔
10482
    }
10483
  }
10484
}
78,815✔
10485

10486
int tEncodeSVCreateTbRsp(SEncoder *pCoder, const SVCreateTbRsp *pRsp) {
365,331✔
10487
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
365,331!
10488

10489
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->code));
730,620!
10490
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->pMeta ? 1 : 0));
730,620!
10491
  if (pRsp->pMeta) {
365,310✔
10492
    TAOS_CHECK_RETURN(tEncodeSTableMetaRsp(pCoder, pRsp->pMeta));
310,840!
10493
  }
10494

10495
  tEndEncode(pCoder);
365,330✔
10496
  return 0;
365,330✔
10497
}
10498

10499
int tDecodeSVCreateTbRsp(SDecoder *pCoder, SVCreateTbRsp *pRsp) {
187,077✔
10500
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
187,077!
10501

10502
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pRsp->code));
374,498!
10503

10504
  int32_t meta = 0;
187,248✔
10505
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &meta));
187,217!
10506
  if (meta) {
187,217✔
10507
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
128,095!
10508
    if (NULL == pRsp->pMeta) {
128,087!
10509
      TAOS_CHECK_RETURN(terrno);
×
10510
    }
10511
    TAOS_CHECK_RETURN(tDecodeSTableMetaRsp(pCoder, pRsp->pMeta));
128,087!
10512
  } else {
10513
    pRsp->pMeta = NULL;
59,122✔
10514
  }
10515

10516
  tEndDecode(pCoder);
187,036✔
10517
  return 0;
187,041✔
10518
}
10519

10520
void tFreeSVCreateTbRsp(void *param) {
119,462✔
10521
  if (NULL == param) {
119,462!
10522
    return;
×
10523
  }
10524

10525
  SVCreateTbRsp *pRsp = (SVCreateTbRsp *)param;
119,462✔
10526
  if (pRsp->pMeta) {
119,462✔
10527
    taosMemoryFree(pRsp->pMeta->pSchemas);
118,020!
10528
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
118,020!
10529
    taosMemoryFree(pRsp->pMeta);
118,020!
10530
  }
10531
}
10532

10533
// TDMT_VND_DROP_TABLE =================
10534
static int32_t tEncodeSVDropTbReq(SEncoder *pCoder, const SVDropTbReq *pReq) {
11,148✔
10535
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
11,148!
10536
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
22,296!
10537
  TAOS_CHECK_RETURN(tEncodeU64(pCoder, pReq->suid));
22,296!
10538
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->uid));
22,296!
10539
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->igNotExists));
22,296!
10540

10541
  tEndEncode(pCoder);
11,148✔
10542
  return 0;
11,148✔
10543
}
10544

10545
static int32_t tDecodeSVDropTbReq(SDecoder *pCoder, SVDropTbReq *pReq) {
5,443✔
10546
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
5,443!
10547
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
10,886!
10548
  TAOS_CHECK_RETURN(tDecodeU64(pCoder, &pReq->suid));
10,886!
10549
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->uid));
10,886!
10550
  TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->igNotExists));
10,886!
10551

10552
  tEndDecode(pCoder);
5,443✔
10553
  return 0;
5,443✔
10554
}
10555

10556
static int32_t tEncodeSVDropTbRsp(SEncoder *pCoder, const SVDropTbRsp *pReq) {
5,248✔
10557
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
5,248!
10558
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->code));
10,496!
10559
  tEndEncode(pCoder);
5,248✔
10560
  return 0;
5,248✔
10561
}
10562

10563
static int32_t tDecodeSVDropTbRsp(SDecoder *pCoder, SVDropTbRsp *pReq) {
2,857✔
10564
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
2,857!
10565
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pReq->code));
5,714!
10566
  tEndDecode(pCoder);
2,857✔
10567
  return 0;
2,857✔
10568
}
10569

10570
int32_t tEncodeSVDropTbBatchReq(SEncoder *pCoder, const SVDropTbBatchReq *pReq) {
10,192✔
10571
  int32_t      nReqs = taosArrayGetSize(pReq->pArray);
10,192✔
10572
  SVDropTbReq *pDropTbReq;
10573

10574
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
10,192!
10575
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReqs));
10,192!
10576
  for (int iReq = 0; iReq < nReqs; iReq++) {
21,282✔
10577
    pDropTbReq = (SVDropTbReq *)taosArrayGet(pReq->pArray, iReq);
11,090✔
10578
    TAOS_CHECK_RETURN(tEncodeSVDropTbReq(pCoder, pDropTbReq));
11,090!
10579
  }
10580

10581
  tEndEncode(pCoder);
10,192✔
10582
  return 0;
10,192✔
10583
}
10584

10585
int32_t tDecodeSVDropTbBatchReq(SDecoder *pCoder, SVDropTbBatchReq *pReq) {
5,351✔
10586
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
5,351!
10587
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
10,702!
10588
  pReq->pReqs = (SVDropTbReq *)tDecoderMalloc(pCoder, sizeof(SVDropTbReq) * pReq->nReqs);
5,351!
10589
  if (pReq->pReqs == NULL) {
5,351!
10590
    TAOS_CHECK_RETURN(terrno);
×
10591
  }
10592
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
10,759✔
10593
    TAOS_CHECK_RETURN(tDecodeSVDropTbReq(pCoder, pReq->pReqs + iReq));
5,408!
10594
  }
10595

10596
  tEndDecode(pCoder);
5,351✔
10597
  return 0;
5,351✔
10598
}
10599

10600
int32_t tEncodeSVDropTbBatchRsp(SEncoder *pCoder, const SVDropTbBatchRsp *pRsp) {
5,198✔
10601
  int32_t nRsps = taosArrayGetSize(pRsp->pArray);
5,198✔
10602
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
5,198!
10603
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
5,198!
10604
  for (int iRsp = 0; iRsp < nRsps; iRsp++) {
10,446✔
10605
    TAOS_CHECK_RETURN(tEncodeSVDropTbRsp(pCoder, (SVDropTbRsp *)taosArrayGet(pRsp->pArray, iRsp)));
5,248!
10606
  }
10607

10608
  tEndEncode(pCoder);
5,198✔
10609
  return 0;
5,198✔
10610
}
10611

10612
int32_t tDecodeSVDropTbBatchRsp(SDecoder *pCoder, SVDropTbBatchRsp *pRsp) {
2,441✔
10613
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
2,441!
10614
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
4,882!
10615
  pRsp->pRsps = (SVDropTbRsp *)tDecoderMalloc(pCoder, sizeof(SVDropTbRsp) * pRsp->nRsps);
2,441!
10616
  if (pRsp->pRsps == NULL) {
2,441!
10617
    TAOS_CHECK_RETURN(terrno);
×
10618
  }
10619
  for (int iRsp = 0; iRsp < pRsp->nRsps; iRsp++) {
5,298✔
10620
    TAOS_CHECK_RETURN(tDecodeSVDropTbRsp(pCoder, pRsp->pRsps + iRsp));
2,857!
10621
  }
10622

10623
  tEndDecode(pCoder);
2,441✔
10624
  return 0;
2,441✔
10625
}
10626

10627
int32_t tEncodeSVDropStbReq(SEncoder *pCoder, const SVDropStbReq *pReq) {
49,886✔
10628
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
49,886!
10629
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
99,772!
10630
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
99,772!
10631
  tEndEncode(pCoder);
49,886✔
10632
  return 0;
49,886✔
10633
}
10634

10635
int32_t tDecodeSVDropStbReq(SDecoder *pCoder, SVDropStbReq *pReq) {
2,351✔
10636
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
2,351!
10637
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
4,713!
10638
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->suid));
4,712!
10639
  tEndDecode(pCoder);
2,356✔
10640
  return 0;
2,354✔
10641
}
10642

10643
static int32_t tEncodeSSubmitBlkRsp(SEncoder *pEncoder, const SSubmitBlkRsp *pBlock) {
×
10644
  int32_t code = 0;
×
10645
  int32_t lino;
10646
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
×
10647

10648
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->code));
×
10649
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pBlock->uid));
×
10650
  if (pBlock->tblFName) {
×
10651
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pBlock->tblFName));
×
10652
  } else {
10653
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, ""));
×
10654
  }
10655
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->numOfRows));
×
10656
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->affectedRows));
×
10657
  TAOS_CHECK_EXIT(tEncodeI64v(pEncoder, pBlock->sver));
×
10658
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->pMeta ? 1 : 0));
×
10659
  if (pBlock->pMeta) {
×
10660
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pBlock->pMeta));
×
10661
  }
10662

10663
  tEndEncode(pEncoder);
×
10664
_exit:
×
10665
  return code;
×
10666
}
10667

10668
void tFreeSSubmitRsp(SSubmitRsp *pRsp) {
113,125✔
10669
  if (NULL == pRsp) return;
113,125!
10670

10671
  if (pRsp->pBlocks) {
×
10672
    for (int32_t i = 0; i < pRsp->nBlocks; ++i) {
×
10673
      SSubmitBlkRsp *sRsp = pRsp->pBlocks + i;
×
10674
      taosMemoryFree(sRsp->tblFName);
×
10675
      tFreeSTableMetaRsp(sRsp->pMeta);
×
10676
      taosMemoryFree(sRsp->pMeta);
×
10677
    }
10678

10679
    taosMemoryFree(pRsp->pBlocks);
×
10680
  }
10681

10682
  taosMemoryFree(pRsp);
×
10683
}
10684

10685
int32_t tEncodeSVAlterTbReq(SEncoder *pEncoder, const SVAlterTbReq *pReq) {
1,922✔
10686
  int32_t code = 0;
1,922✔
10687
  int32_t lino;
10688

10689
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
1,922!
10690

10691
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tbName));
3,844!
10692
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->action));
3,844!
10693
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->colId));
3,844!
10694
  switch (pReq->action) {
1,922!
10695
    case TSDB_ALTER_TABLE_ADD_COLUMN:
156✔
10696
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
312!
10697
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
312!
10698
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
312!
10699
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
312!
10700
      break;
156✔
10701
    case TSDB_ALTER_TABLE_DROP_COLUMN:
150✔
10702
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
300!
10703
      break;
150✔
10704
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
76✔
10705
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
152!
10706
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->colModType));
152!
10707
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->colModBytes));
152!
10708
      break;
76✔
10709
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
70✔
10710
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
140!
10711
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colNewName));
140!
10712
      break;
70✔
10713
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
1,304✔
10714
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tagName));
2,608!
10715
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->isNull));
2,608!
10716
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->tagType));
2,608!
10717
      if (!pReq->isNull) {
1,304✔
10718
        TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pReq->pTagVal, pReq->nTagVal));
2,420!
10719
      }
10720
      break;
1,304✔
10721
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
10✔
10722
      int32_t nTags = taosArrayGetSize(pReq->pMultiTag);
10✔
10723
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, nTags));
10!
10724
      for (int32_t i = 0; i < nTags; i++) {
70✔
10725
        SMultiTagUpateVal *pTag = taosArrayGet(pReq->pMultiTag, i);
60✔
10726
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pTag->colId));
120!
10727
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTag->tagName));
120!
10728
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->isNull));
120!
10729
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->tagType));
120!
10730
        if (!pTag->isNull) {
60✔
10731
          TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pTag->pTagVal, pTag->nTagVal));
96!
10732
        }
10733
      }
10734
      break;
10✔
10735
    }
10736
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
144✔
10737
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->updateTTL));
288!
10738
      if (pReq->updateTTL) {
144✔
10739
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newTTL));
104!
10740
      }
10741
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newCommentLen));
288!
10742
      if (pReq->newCommentLen > 0) {
144✔
10743
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->newComment));
152!
10744
      }
10745
      break;
144✔
10746
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
10✔
10747
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
20!
10748
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
20!
10749
      break;
10✔
10750
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
2✔
10751
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
4!
10752
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
4!
10753
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
4!
10754
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
4!
10755
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
4!
10756
      break;
2✔
10757
    default:
×
10758
      break;
×
10759
  }
10760
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
3,844!
10761
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->source));
3,844!
10762

10763
  tEndEncode(pEncoder);
1,922✔
10764
_exit:
1,922✔
10765
  return code;
1,922✔
10766
}
10767

10768
static int32_t tDecodeSVAlterTbReqCommon(SDecoder *pDecoder, SVAlterTbReq *pReq) {
2,013✔
10769
  int32_t code = 0;
2,013✔
10770
  int32_t lino;
10771

10772
  TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tbName));
4,026!
10773
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->action));
4,026!
10774
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->colId));
4,026!
10775
  switch (pReq->action) {
2,013!
10776
    case TSDB_ALTER_TABLE_ADD_COLUMN:
176✔
10777
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
352!
10778
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
352!
10779
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
352!
10780
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
352!
10781
      break;
176✔
10782
    case TSDB_ALTER_TABLE_DROP_COLUMN:
158✔
10783
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
316!
10784
      break;
158✔
10785
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
94✔
10786
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
188!
10787
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->colModType));
188!
10788
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->colModBytes));
188!
10789
      break;
94✔
10790
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
78✔
10791
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
156!
10792
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colNewName));
156!
10793
      break;
78✔
10794
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
1,315✔
10795
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tagName));
2,630!
10796
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->isNull));
2,630!
10797
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->tagType));
2,630!
10798
      if (!pReq->isNull) {
1,315✔
10799
        TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &pReq->pTagVal, &pReq->nTagVal));
2,442!
10800
      }
10801
      break;
1,315✔
10802
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
10✔
10803
      int32_t nTags;
10804
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &nTags));
10!
10805
      pReq->pMultiTag = taosArrayInit(nTags, sizeof(SMultiTagUpateVal));
10✔
10806
      if (pReq->pMultiTag == NULL) {
10!
10807
        TAOS_CHECK_EXIT(terrno);
×
10808
      }
10809
      for (int32_t i = 0; i < nTags; i++) {
70✔
10810
        SMultiTagUpateVal tag;
10811
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &tag.colId));
60!
10812
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &tag.tagName));
60!
10813
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.isNull));
60!
10814
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.tagType));
60!
10815
        if (!tag.isNull) {
60✔
10816
          TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &tag.pTagVal, &tag.nTagVal));
48!
10817
        }
10818
        if (taosArrayPush(pReq->pMultiTag, &tag) == NULL) {
120!
10819
          TAOS_CHECK_EXIT(terrno);
×
10820
        }
10821
      }
10822
      break;
10✔
10823
    }
10824
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
170✔
10825
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->updateTTL));
340!
10826
      if (pReq->updateTTL) {
170✔
10827
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newTTL));
112!
10828
      }
10829
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newCommentLen));
340!
10830
      if (pReq->newCommentLen > 0) {
170✔
10831
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->newComment));
188!
10832
      }
10833
      break;
170✔
10834
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
10✔
10835
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
20!
10836
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
20!
10837
      break;
10✔
10838
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
2✔
10839
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
4!
10840
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
4!
10841
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
4!
10842
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
4!
10843
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
4!
10844
    default:
10845
      break;
2✔
10846
  }
10847
_exit:
2,013✔
10848
  return code;
2,013✔
10849
}
10850

10851
int32_t tDecodeSVAlterTbReq(SDecoder *pDecoder, SVAlterTbReq *pReq) {
1,063✔
10852
  int32_t code = 0;
1,063✔
10853
  int32_t lino;
10854

10855
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
1,063!
10856
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
1,063!
10857

10858
  pReq->ctimeMs = 0;
1,063✔
10859
  if (!tDecodeIsEnd(pDecoder)) {
1,063!
10860
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
2,126!
10861
  }
10862
  if (!tDecodeIsEnd(pDecoder)) {
1,063!
10863
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->source));
2,126!
10864
  }
10865

10866
  tEndDecode(pDecoder);
1,063✔
10867
_exit:
1,063✔
10868
  return code;
1,063✔
10869
}
10870

10871
int32_t tDecodeSVAlterTbReqSetCtime(SDecoder *pDecoder, SVAlterTbReq *pReq, int64_t ctimeMs) {
950✔
10872
  int32_t code = 0;
950✔
10873
  int32_t lino;
10874

10875
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
950!
10876
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
950!
10877

10878
  pReq->ctimeMs = 0;
950✔
10879
  if (!tDecodeIsEnd(pDecoder)) {
950!
10880
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
950✔
10881
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
1,900!
10882
  }
10883

10884
  tEndDecode(pDecoder);
950✔
10885
_exit:
950✔
10886
  return code;
950✔
10887
}
10888

10889
void tfreeMultiTagUpateVal(void *val) {
40✔
10890
  SMultiTagUpateVal *pTag = val;
40✔
10891
  taosMemoryFree(pTag->tagName);
40!
10892
  for (int i = 0; i < taosArrayGetSize(pTag->pTagArray); ++i) {
74✔
10893
    STagVal *p = (STagVal *)taosArrayGet(pTag->pTagArray, i);
34✔
10894
    if (IS_VAR_DATA_TYPE(p->type)) {
34!
10895
      taosMemoryFreeClear(p->pData);
4!
10896
    }
10897
  }
10898

10899
  taosArrayDestroy(pTag->pTagArray);
40✔
10900
}
40✔
10901
int32_t tEncodeSVAlterTbRsp(SEncoder *pEncoder, const SVAlterTbRsp *pRsp) {
1,914✔
10902
  int32_t code = 0;
1,914✔
10903
  int32_t lino;
10904

10905
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
1,914!
10906
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->code));
3,828!
10907
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta ? 1 : 0));
3,828!
10908
  if (pRsp->pMeta) {
1,914✔
10909
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
366!
10910
  }
10911
  tEndEncode(pEncoder);
1,914✔
10912
_exit:
1,914✔
10913
  return code;
1,914✔
10914
}
10915

10916
int32_t tDecodeSVAlterTbRsp(SDecoder *pDecoder, SVAlterTbRsp *pRsp) {
932✔
10917
  int32_t meta = 0;
932✔
10918
  int32_t code = 0;
932✔
10919
  int32_t lino;
10920
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
932!
10921
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->code));
1,864!
10922
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
932!
10923
  if (meta) {
932✔
10924
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
177!
10925
    if (NULL == pRsp->pMeta) {
177!
10926
      TAOS_CHECK_EXIT(terrno);
×
10927
    }
10928
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
177!
10929
  }
10930
  tEndDecode(pDecoder);
932✔
10931
_exit:
932✔
10932
  return code;
932✔
10933
}
10934

10935
int32_t tEncodeSMAlterStbRsp(SEncoder *pEncoder, const SMAlterStbRsp *pRsp) {
5,634✔
10936
  int32_t code = 0;
5,634✔
10937
  int32_t lino;
10938

10939
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
5,634!
10940
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
11,268!
10941
  if (pRsp->pMeta->pSchemas) {
5,634!
10942
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
5,634!
10943
  }
10944
  tEndEncode(pEncoder);
5,634✔
10945
_exit:
5,634✔
10946
  return code;
5,634✔
10947
}
10948

10949
int32_t tDecodeSMAlterStbRsp(SDecoder *pDecoder, SMAlterStbRsp *pRsp) {
3,063✔
10950
  int32_t meta = 0;
3,063✔
10951
  int32_t code = 0;
3,063✔
10952
  int32_t lino;
10953

10954
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
3,063!
10955
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
3,063!
10956
  if (meta) {
3,063!
10957
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
3,063!
10958
    if (NULL == pRsp->pMeta) {
3,063!
10959
      TAOS_CHECK_EXIT(terrno);
×
10960
    }
10961
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
3,063!
10962
  }
10963
  tEndDecode(pDecoder);
3,063✔
10964
_exit:
3,063✔
10965
  return code;
3,063✔
10966
}
10967

10968
void tFreeSMAlterStbRsp(SMAlterStbRsp *pRsp) {
2,817✔
10969
  if (NULL == pRsp) {
2,817!
10970
    return;
×
10971
  }
10972

10973
  if (pRsp->pMeta) {
2,817!
10974
    taosMemoryFree(pRsp->pMeta->pSchemas);
2,817!
10975
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
2,817!
10976
    taosMemoryFree(pRsp->pMeta);
2,817!
10977
  }
10978
}
10979

10980
int32_t tEncodeSMCreateStbRsp(SEncoder *pEncoder, const SMCreateStbRsp *pRsp) {
15,784✔
10981
  int32_t code = 0;
15,784✔
10982
  int32_t lino;
10983

10984
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
15,784!
10985
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
31,568!
10986
  if (pRsp->pMeta->pSchemas) {
15,784!
10987
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
15,784!
10988
  }
10989
  tEndEncode(pEncoder);
15,784✔
10990

10991
_exit:
15,784✔
10992
  return code;
15,784✔
10993
}
10994

10995
int32_t tDecodeSMCreateStbRsp(SDecoder *pDecoder, SMCreateStbRsp *pRsp) {
5,807✔
10996
  int32_t meta = 0;
5,807✔
10997
  int32_t code = 0;
5,807✔
10998
  int32_t lino;
10999

11000
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
5,807!
11001
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
5,807!
11002
  if (meta) {
5,807!
11003
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
5,807!
11004
    if (NULL == pRsp->pMeta) {
5,807!
11005
      TAOS_CHECK_EXIT(terrno);
×
11006
    }
11007
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
5,807!
11008
  }
11009
  tEndDecode(pDecoder);
5,807✔
11010

11011
  return code;
5,807✔
11012

11013
_exit:
×
11014
  tFreeSTableMetaRsp(pRsp->pMeta);
×
11015
  taosMemoryFreeClear(pRsp->pMeta);
×
11016
  return code;
×
11017
}
11018

11019
void tFreeSMCreateStbRsp(SMCreateStbRsp *pRsp) {
7,892✔
11020
  if (NULL == pRsp) {
7,892!
11021
    return;
×
11022
  }
11023

11024
  if (pRsp->pMeta) {
7,892!
11025
    taosMemoryFree(pRsp->pMeta->pSchemas);
7,892!
11026
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
7,892!
11027
    taosMemoryFree(pRsp->pMeta);
7,892!
11028
  }
11029
}
11030

11031
int32_t tEncodeSTqOffsetVal(SEncoder *pEncoder, const STqOffsetVal *pOffsetVal) {
254,204✔
11032
  int32_t code = 0;
254,204✔
11033
  int32_t lino;
11034

11035
  int8_t type = pOffsetVal->type < 0 ? pOffsetVal->type : (TQ_OFFSET_VERSION << 4) | pOffsetVal->type;
254,204✔
11036
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, type));
508,408!
11037
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
254,204✔
11038
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->uid));
16,984!
11039
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->ts));
16,984!
11040
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pOffsetVal->primaryKey.type));
16,984!
11041
    if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
8,492!
11042
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pOffsetVal->primaryKey.pData, pOffsetVal->primaryKey.nData));
18!
11043
    } else {
11044
      TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->primaryKey.val));
16,966!
11045
    }
11046

11047
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
245,712✔
11048
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->version));
479,818!
11049
  } else {
11050
    // do nothing
11051
  }
11052
_exit:
5,803✔
11053
  return code;
254,204✔
11054
}
11055

11056
int32_t tDecodeSTqOffsetVal(SDecoder *pDecoder, STqOffsetVal *pOffsetVal) {
149,507✔
11057
  int32_t code = 0;
149,507✔
11058
  int32_t lino;
11059

11060
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->type));
298,993!
11061
  int8_t offsetVersion = 0;
149,486✔
11062
  if (pOffsetVal->type > 0) {
149,486✔
11063
    offsetVersion = (pOffsetVal->type >> 4);
146,612✔
11064
    pOffsetVal->type = pOffsetVal->type & 0x0F;
146,612✔
11065
  }
11066
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
149,486✔
11067
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->uid));
8,792!
11068
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->ts));
8,784!
11069
    if (offsetVersion >= TQ_OFFSET_VERSION) {
4,392!
11070
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->primaryKey.type));
8,784!
11071
      if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
4,392!
11072
        TAOS_CHECK_EXIT(
17!
11073
            tDecodeBinaryAlloc32(pDecoder, (void **)&pOffsetVal->primaryKey.pData, &pOffsetVal->primaryKey.nData));
11074
      } else {
11075
        TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->primaryKey.val));
8,769!
11076
      }
11077
    }
11078
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
145,086✔
11079
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->version));
283,880!
11080
  } else {
11081
    // do nothing
11082
  }
11083
_exit:
3,131✔
11084
  return code;
149,450✔
11085
}
11086

11087
void tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) {
282,392✔
11088
  if (pVal->type == TMQ_OFFSET__RESET_NONE) {
282,392✔
11089
    (void)snprintf(buf, maxLen, "none");
1,443✔
11090
  } else if (pVal->type == TMQ_OFFSET__RESET_EARLIEST) {
280,949✔
11091
    (void)snprintf(buf, maxLen, "earliest");
5,287✔
11092
  } else if (pVal->type == TMQ_OFFSET__RESET_LATEST) {
275,662✔
11093
    (void)snprintf(buf, maxLen, "latest");
288✔
11094
  } else if (pVal->type == TMQ_OFFSET__LOG) {
275,374✔
11095
    (void)snprintf(buf, maxLen, "wal:%" PRId64, pVal->version);
266,878✔
11096
  } else if (pVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pVal->type == TMQ_OFFSET__SNAPSHOT_META) {
8,496!
11097
    if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
8,508!
11098
      char *tmp = taosMemoryCalloc(1, pVal->primaryKey.nData + 1);
8!
11099
      if (tmp == NULL) return;
12!
11100
      (void)memcpy(tmp, pVal->primaryKey.pData, pVal->primaryKey.nData);
12✔
11101
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%s", pVal->uid, pVal->ts,
12✔
11102
                     pVal->primaryKey.type, tmp);
12✔
11103
      taosMemoryFree(tmp);
12!
11104
    } else {
11105
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%" PRId64, pVal->uid, pVal->ts,
8,488✔
11106
                     pVal->primaryKey.type, pVal->primaryKey.val);
8,488✔
11107
    }
11108
  }
11109
}
11110

11111
bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
71,219✔
11112
  if (pLeft->type == pRight->type) {
71,219✔
11113
    if (pLeft->type == TMQ_OFFSET__LOG) {
68,528✔
11114
      return pLeft->version == pRight->version;
64,491✔
11115
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_DATA) {
4,037!
11116
      if (pLeft->primaryKey.type != 0) {
4,037✔
11117
        if (pLeft->primaryKey.type != pRight->primaryKey.type) return false;
53!
11118
        if (tValueCompare(&pLeft->primaryKey, &pRight->primaryKey) != 0) return false;
53✔
11119
      }
11120
      return pLeft->uid == pRight->uid && pLeft->ts == pRight->ts;
4,014✔
11121
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_META) {
×
11122
      return pLeft->uid == pRight->uid;
2✔
11123
    } else {
11124
      uError("offset type:%d", pLeft->type);
×
11125
    }
11126
  }
11127
  return false;
2,691✔
11128
}
11129

11130
void tOffsetCopy(STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
346,687✔
11131
  tOffsetDestroy(pLeft);
346,687✔
11132
  *pLeft = *pRight;
346,691✔
11133
  if (IS_VAR_DATA_TYPE(pRight->primaryKey.type)) {
346,691!
11134
    pLeft->primaryKey.pData = taosMemoryMalloc(pRight->primaryKey.nData);
13!
11135
    if (pLeft->primaryKey.pData == NULL) {
14!
11136
      uError("failed to allocate memory for offset");
×
11137
      return;
×
11138
    }
11139
    (void)memcpy(pLeft->primaryKey.pData, pRight->primaryKey.pData, pRight->primaryKey.nData);
14✔
11140
  }
11141
}
11142

11143
void tOffsetDestroy(void *param) {
9,078,349✔
11144
  if (param == NULL) return;
9,078,349!
11145
  STqOffsetVal *pVal = (STqOffsetVal *)param;
9,078,349✔
11146
  if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
9,078,349!
11147
    taosMemoryFreeClear(pVal->primaryKey.pData);
×
11148
  }
11149
}
11150

11151
void tDeleteSTqOffset(void *param) {
7,010✔
11152
  if (param == NULL) return;
7,010✔
11153
  STqOffset *pVal = (STqOffset *)param;
7,009✔
11154
  tOffsetDestroy(&pVal->val);
7,009✔
11155
}
11156

11157
int32_t tEncodeSTqOffset(SEncoder *pEncoder, const STqOffset *pOffset) {
7,060✔
11158
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pOffset->val));
7,060!
11159
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pOffset->subKey));
14,120!
11160
  return 0;
7,060✔
11161
}
11162

11163
int32_t tDecodeSTqOffset(SDecoder *pDecoder, STqOffset *pOffset) {
7,006✔
11164
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pOffset->val));
7,006!
11165
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pOffset->subKey));
7,001!
11166
  return 0;
6,974✔
11167
}
11168

11169
int32_t tEncodeMqVgOffset(SEncoder *pEncoder, const SMqVgOffset *pOffset) {
7,056✔
11170
  TAOS_CHECK_RETURN(tEncodeSTqOffset(pEncoder, &pOffset->offset));
7,056!
11171
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pOffset->consumerId));
14,112!
11172
  return 0;
7,056✔
11173
}
11174

11175
int32_t tDecodeMqVgOffset(SDecoder *pDecoder, SMqVgOffset *pOffset) {
6,799✔
11176
  TAOS_CHECK_RETURN(tDecodeSTqOffset(pDecoder, &pOffset->offset));
6,799!
11177
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pOffset->consumerId));
13,526!
11178
  return 0;
6,763✔
11179
}
11180

11181
int32_t tEncodeSTqCheckInfo(SEncoder *pEncoder, const STqCheckInfo *pInfo) {
208✔
11182
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->topic));
416!
11183
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->ntbUid));
416!
11184
  int32_t sz = taosArrayGetSize(pInfo->colIdList);
208✔
11185
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, sz));
208!
11186
  for (int32_t i = 0; i < sz; i++) {
884✔
11187
    int16_t colId = *(int16_t *)taosArrayGet(pInfo->colIdList, i);
676✔
11188
    TAOS_CHECK_RETURN(tEncodeI16(pEncoder, colId));
1,352!
11189
  }
11190
  return pEncoder->pos;
208✔
11191
}
11192

11193
int32_t tDecodeSTqCheckInfo(SDecoder *pDecoder, STqCheckInfo *pInfo) {
212✔
11194
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->topic));
212!
11195
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->ntbUid));
425!
11196
  int32_t sz = 0;
212✔
11197
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &sz));
213!
11198
  pInfo->colIdList = taosArrayInit(sz, sizeof(int16_t));
213✔
11199
  if (pInfo->colIdList == NULL) {
213!
11200
    TAOS_CHECK_RETURN(terrno);
×
11201
  }
11202
  for (int32_t i = 0; i < sz; i++) {
777✔
11203
    int16_t colId = 0;
564✔
11204
    TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &colId));
564!
11205
    if (taosArrayPush(pInfo->colIdList, &colId) == NULL) {
1,128!
11206
      TAOS_CHECK_RETURN(terrno);
×
11207
    }
11208
  }
11209
  return 0;
213✔
11210
}
11211
void tDeleteSTqCheckInfo(STqCheckInfo *pInfo) { taosArrayDestroy(pInfo->colIdList); }
12,547✔
11212

11213
int32_t tEncodeSMqRebVgReq(SEncoder *pCoder, const SMqRebVgReq *pReq) {
5,186✔
11214
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
5,186!
11215
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->leftForVer));
10,372!
11216
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->vgId));
10,372!
11217
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->oldConsumerId));
10,372!
11218
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->newConsumerId));
10,372!
11219
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->subKey));
10,372!
11220
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->subType));
10,372!
11221
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->withMeta));
10,372!
11222

11223
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
5,186✔
11224
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
8,320!
11225
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
1,026✔
11226
    TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
360!
11227
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
360!
11228
  }
11229
  tEndEncode(pCoder);
5,186✔
11230
  return 0;
5,186✔
11231
}
11232

11233
int32_t tDecodeSMqRebVgReq(SDecoder *pCoder, SMqRebVgReq *pReq) {
3,166✔
11234
  int32_t code = 0;
3,166✔
11235
  int32_t lino;
11236

11237
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
3,166!
11238

11239
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->leftForVer));
6,330!
11240

11241
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->vgId));
6,330!
11242
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->oldConsumerId));
6,329!
11243
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->newConsumerId));
6,326!
11244
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->subKey));
3,162!
11245
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->subType));
6,326!
11246
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->withMeta));
6,326!
11247

11248
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
3,163✔
11249
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
4,990!
11250
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
668✔
11251
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
239!
11252
    if (!tDecodeIsEnd(pCoder)) {
119!
11253
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
239!
11254
    }
11255
  }
11256

11257
  tEndDecode(pCoder);
3,161✔
11258
_exit:
3,160✔
11259
  return code;
3,160✔
11260
}
11261

11262
int32_t tEncodeDeleteRes(SEncoder *pCoder, const SDeleteRes *pRes) {
118,028✔
11263
  int32_t nUid = taosArrayGetSize(pRes->uidList);
118,028✔
11264
  int32_t code = 0;
118,028✔
11265
  int32_t lino;
11266

11267
  TAOS_CHECK_EXIT(tEncodeU64(pCoder, pRes->suid));
236,056!
11268
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, nUid));
118,028!
11269
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
240,297✔
11270
    TAOS_CHECK_EXIT(tEncodeU64(pCoder, *(uint64_t *)taosArrayGet(pRes->uidList, iUid)));
244,538!
11271
  }
11272
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->skey));
236,056!
11273
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ekey));
236,056!
11274
  TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRes->affectedRows));
236,056!
11275

11276
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tableFName));
236,056!
11277
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tsColName));
236,056!
11278
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ctimeMs));
236,056!
11279
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pRes->source));
236,056!
11280

11281
_exit:
118,028✔
11282
  return code;
118,028✔
11283
}
11284

11285
int32_t tDecodeDeleteRes(SDecoder *pCoder, SDeleteRes *pRes) {
72,338✔
11286
  int32_t  nUid;
11287
  uint64_t uid;
11288
  int32_t  code = 0;
72,338✔
11289
  int32_t  lino;
11290

11291
  TAOS_CHECK_EXIT(tDecodeU64(pCoder, &pRes->suid));
144,679!
11292
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &nUid));
72,340!
11293
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
146,787✔
11294
    TAOS_CHECK_EXIT(tDecodeU64(pCoder, &uid));
74,448!
11295
    if (pRes->uidList) {
74,448✔
11296
      if (taosArrayPush(pRes->uidList, &uid) == NULL) {
148,873!
11297
        TAOS_CHECK_EXIT(terrno);
×
11298
      }
11299
    }
11300
  }
11301
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->skey));
144,684!
11302
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ekey));
144,684!
11303
  TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRes->affectedRows));
144,682!
11304

11305
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tableFName));
72,340!
11306
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tsColName));
72,341!
11307

11308
  pRes->ctimeMs = 0;
72,342✔
11309
  if (!tDecodeIsEnd(pCoder)) {
72,342!
11310
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ctimeMs));
144,684!
11311
  }
11312
  if (!tDecodeIsEnd(pCoder)) {
72,342✔
11313
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pRes->source));
144,683!
11314
  }
11315

11316
_exit:
72,343✔
11317
  return code;
72,343✔
11318
}
11319

11320
int32_t tEncodeMqMetaRsp(SEncoder *pEncoder, const SMqMetaRsp *pRsp) {
642✔
11321
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
642!
11322
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->resMsgType));
1,284!
11323
  TAOS_CHECK_RETURN(tEncodeBinary(pEncoder, pRsp->metaRsp, pRsp->metaRspLen));
1,284!
11324
  return 0;
642✔
11325
}
11326

11327
int32_t tDecodeMqMetaRsp(SDecoder *pDecoder, SMqMetaRsp *pRsp) {
446✔
11328
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
446!
11329
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->resMsgType));
892!
11330
  TAOS_CHECK_RETURN(tDecodeBinaryAlloc(pDecoder, &pRsp->metaRsp, (uint64_t *)&pRsp->metaRspLen));
892!
11331
  return 0;
446✔
11332
}
11333

11334
void tDeleteMqMetaRsp(SMqMetaRsp *pRsp) { taosMemoryFree(pRsp->metaRsp); }
633!
11335

11336
int32_t tEncodeMqDataRspCommon(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
75,793✔
11337
  int32_t code = 0;
75,793✔
11338
  int32_t lino;
11339

11340
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->reqOffset));
75,793!
11341
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
75,792!
11342
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->blockNum));
151,590!
11343
  if (pRsp->blockNum != 0) {
75,795✔
11344
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withTbName));
112,864!
11345
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withSchema));
112,864!
11346

11347
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
1,107,854✔
11348
      int32_t bLen = *(int32_t *)taosArrayGet(pRsp->blockDataLen, i);
1,056,369✔
11349
      void   *data = taosArrayGetP(pRsp->blockData, i);
1,055,840✔
11350
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, (const uint8_t *)data, bLen));
2,108,348!
11351
      if (pRsp->withSchema) {
1,054,174✔
11352
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosArrayGetP(pRsp->blockSchema, i);
239,846✔
11353
        TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pEncoder, pSW));
238,378!
11354
      }
11355
      if (pRsp->withTbName) {
1,052,706✔
11356
        char *tbName = (char *)taosArrayGetP(pRsp->blockTbName, i);
240,532✔
11357
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, tbName));
239,248!
11358
      }
11359
    }
11360
  }
11361

11362
_exit:
70,848✔
11363
  return code;
70,848✔
11364
}
11365

11366
int32_t tEncodeMqDataRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
75,752✔
11367
  TAOS_CHECK_RETURN(tEncodeMqDataRspCommon(pEncoder, pRsp));
75,752!
11368
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->sleepTime));
151,508!
11369

11370
  return 0;
75,754✔
11371
}
11372

11373
int32_t tDecodeMqDataRspCommon(SDecoder *pDecoder, SMqDataRsp *pRsp) {
37,604✔
11374
  int32_t code = 0;
37,604✔
11375
  int32_t lino;
11376

11377
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
37,604!
11378
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
37,604!
11379
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
75,205!
11380

11381
  if (pRsp->blockNum != 0) {
37,601✔
11382
    if ((pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
27,988!
11383
      TAOS_CHECK_EXIT(terrno);
×
11384
    }
11385
    if ((pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(int32_t))) == NULL) {
27,988!
11386
      TAOS_CHECK_EXIT(terrno);
×
11387
    }
11388
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withTbName));
55,976!
11389
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withSchema));
55,976!
11390
    if (pRsp->withTbName) {
27,988✔
11391
      if ((pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
2,349!
11392
        TAOS_CHECK_EXIT(terrno);
×
11393
      }
11394
    }
11395
    if (pRsp->withSchema) {
27,988✔
11396
      if ((pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
2,349!
UNCOV
11397
        TAOS_CHECK_EXIT(terrno);
×
11398
      }
11399
    }
11400

11401
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
377,150✔
11402
      void    *data;
11403
      uint64_t bLen;
11404
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &data, &bLen));
349,102!
11405
      if (taosArrayPush(pRsp->blockData, &data) == NULL) {
698,205!
11406
        TAOS_CHECK_EXIT(terrno);
×
11407
      }
11408
      int32_t len = bLen;
349,103✔
11409
      if (taosArrayPush(pRsp->blockDataLen, &len) == NULL) {
698,088!
11410
        TAOS_CHECK_EXIT(terrno);
×
11411
      }
11412

11413
      if (pRsp->withSchema) {
348,985✔
11414
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosMemoryCalloc(1, sizeof(SSchemaWrapper));
119,297!
11415
        if (pSW == NULL) {
119,539!
11416
          TAOS_CHECK_EXIT(terrno);
×
11417
        }
11418

11419
        if ((code = tDecodeSSchemaWrapper(pDecoder, pSW))) {
239,005!
11420
          taosMemoryFree(pSW);
×
11421
          goto _exit;
×
11422
        }
11423

11424
        if (taosArrayPush(pRsp->blockSchema, &pSW) == NULL) {
238,863!
11425
          taosMemoryFree(pSW);
×
11426
          TAOS_CHECK_EXIT(terrno);
×
11427
        }
11428
      }
11429

11430
      if (pRsp->withTbName) {
349,085✔
11431
        char *tbName;
11432
        TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &tbName));
119,456!
11433
        if (taosArrayPush(pRsp->blockTbName, &tbName) == NULL) {
238,933!
11434
          TAOS_CHECK_EXIT(terrno);
×
11435
        }
11436
      }
11437
    }
11438
  }
11439

11440
_exit:
37,691✔
11441
  return code;
37,691✔
11442
}
11443

11444
int32_t tDecodeMqDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
37,581✔
11445
  TAOS_CHECK_RETURN(tDecodeMqDataRspCommon(pDecoder, pRsp));
37,581!
11446
  if (!tDecodeIsEnd(pDecoder)) {
37,580!
11447
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->sleepTime));
75,160!
11448
  }
11449

11450
  return 0;
37,580✔
11451
}
11452

11453
static void tDeleteMqDataRspCommon(SMqDataRsp *pRsp) {
130,491✔
11454
  taosArrayDestroy(pRsp->blockDataLen);
130,491✔
11455
  pRsp->blockDataLen = NULL;
130,490✔
11456
  taosArrayDestroyP(pRsp->blockData, NULL);
130,490✔
11457
  pRsp->blockData = NULL;
130,490✔
11458
  taosArrayDestroyP(pRsp->blockSchema, (FDelete)tDeleteSchemaWrapper);
130,490✔
11459
  pRsp->blockSchema = NULL;
130,491✔
11460
  taosArrayDestroyP(pRsp->blockTbName, NULL);
130,491✔
11461
  pRsp->blockTbName = NULL;
130,489✔
11462
  tOffsetDestroy(&pRsp->reqOffset);
130,489✔
11463
  tOffsetDestroy(&pRsp->rspOffset);
130,489✔
11464
}
130,490✔
11465

11466
void tDeleteMqDataRsp(SMqDataRsp *rsp) { tDeleteMqDataRspCommon(rsp); }
120,433✔
11467

11468
int32_t tEncodeSTaosxRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
42✔
11469
  int32_t code = 0;
42✔
11470
  int32_t lino;
11471

11472
  TAOS_CHECK_EXIT(tEncodeMqDataRspCommon(pEncoder, pRsp));
42!
11473
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->createTableNum));
84!
11474
  if (pRsp->createTableNum) {
42!
11475
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
146✔
11476
      void   *createTableReq = taosArrayGetP(pRsp->createTableReq, i);
104✔
11477
      int32_t createTableLen = *(int32_t *)taosArrayGet(pRsp->createTableLen, i);
104✔
11478
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, createTableReq, createTableLen));
208!
11479
    }
11480
  }
11481

11482
_exit:
42✔
11483
  return code;
42✔
11484
}
11485

11486
int32_t tDecodeSTaosxRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
21✔
11487
  int32_t code = 0;
21✔
11488
  int32_t lino;
11489

11490
  TAOS_CHECK_EXIT(tDecodeMqDataRspCommon(pDecoder, pRsp));
21!
11491
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->createTableNum));
42!
11492
  if (pRsp->createTableNum) {
21!
11493
    if ((pRsp->createTableLen = taosArrayInit(pRsp->createTableNum, sizeof(int32_t))) == NULL) {
21!
11494
      TAOS_CHECK_EXIT(terrno);
×
11495
    }
11496
    if ((pRsp->createTableReq = taosArrayInit(pRsp->createTableNum, sizeof(void *))) == NULL) {
21!
11497
      TAOS_CHECK_EXIT(terrno);
×
11498
    }
11499
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
73✔
11500
      void    *pCreate = NULL;
52✔
11501
      uint64_t len = 0;
52✔
11502
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
52!
11503
      int32_t l = (int32_t)len;
52✔
11504
      if (taosArrayPush(pRsp->createTableLen, &l) == NULL) {
104!
11505
        TAOS_CHECK_EXIT(terrno);
×
11506
      }
11507
      if (taosArrayPush(pRsp->createTableReq, &pCreate) == NULL) {
104!
11508
        TAOS_CHECK_EXIT(terrno);
×
11509
      }
11510
    }
11511
  }
11512

11513
_exit:
21✔
11514
  return code;
21✔
11515
}
11516

11517
void tDeleteSTaosxRsp(SMqDataRsp *pRsp) {
10,058✔
11518
  tDeleteMqDataRspCommon(pRsp);
10,058✔
11519

11520
  taosArrayDestroy(pRsp->createTableLen);
10,058✔
11521
  pRsp->createTableLen = NULL;
10,058✔
11522
  taosArrayDestroyP(pRsp->createTableReq, NULL);
10,058✔
11523
  pRsp->createTableReq = NULL;
10,058✔
11524
}
10,058✔
11525

11526
int32_t tEncodeSSingleDeleteReq(SEncoder *pEncoder, const SSingleDeleteReq *pReq) {
7,093✔
11527
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->tbname));
14,186!
11528
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->startTs));
14,186!
11529
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->endTs));
14,186!
11530
  return 0;
7,093✔
11531
}
11532

11533
int32_t tDecodeSSingleDeleteReq(SDecoder *pDecoder, SSingleDeleteReq *pReq) {
7,379✔
11534
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->tbname));
7,379!
11535
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->startTs));
14,757!
11536
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->endTs));
14,757!
11537
  return 0;
7,378✔
11538
}
11539

11540
int32_t tEncodeSBatchDeleteReq(SEncoder *pEncoder, const SBatchDeleteReq *pReq) {
5,305✔
11541
  int32_t code = 0;
5,305✔
11542
  int32_t lino;
11543

11544
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->suid));
10,610!
11545
  int32_t sz = taosArrayGetSize(pReq->deleteReqs);
5,305✔
11546
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, sz));
5,306!
11547
  for (int32_t i = 0; i < sz; i++) {
12,401✔
11548
    SSingleDeleteReq *pOneReq = taosArrayGet(pReq->deleteReqs, i);
7,095✔
11549
    TAOS_CHECK_EXIT(tEncodeSSingleDeleteReq(pEncoder, pOneReq));
7,093!
11550
  }
11551
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
10,612!
11552
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->level));
10,612!
11553
_exit:
5,306✔
11554
  return code;
5,306✔
11555
}
11556

11557
static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
5,586✔
11558
  int32_t code = 0;
5,586✔
11559
  int32_t lino;
11560

11561
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->suid));
11,174!
11562
  int32_t sz;
11563
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &sz));
5,589!
11564
  pReq->deleteReqs = taosArrayInit(0, sizeof(SSingleDeleteReq));
5,589✔
11565
  if (pReq->deleteReqs == NULL) {
5,588!
UNCOV
11566
    TAOS_CHECK_EXIT(terrno);
×
11567
  }
11568
  for (int32_t i = 0; i < sz; i++) {
12,965✔
11569
    SSingleDeleteReq deleteReq;
11570
    TAOS_CHECK_EXIT(tDecodeSSingleDeleteReq(pDecoder, &deleteReq));
7,379!
11571
    if (taosArrayPush(pReq->deleteReqs, &deleteReq) == NULL) {
14,754!
11572
      TAOS_CHECK_EXIT(terrno);
×
11573
    }
11574
  }
11575
_exit:
5,586✔
11576
  return code;
5,586✔
11577
}
11578

11579
int32_t tDecodeSBatchDeleteReq(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
2,934✔
11580
  int32_t code = 0;
2,934✔
11581
  int32_t lino;
11582

11583
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
2,934!
11584

11585
  pReq->ctimeMs = 0;
2,933✔
11586
  if (!tDecodeIsEnd(pDecoder)) {
2,933!
11587
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
5,868!
11588
  }
11589
  if (!tDecodeIsEnd(pDecoder)) {
2,933!
11590
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->level));
5,868!
11591
  }
11592

11593
_exit:
2,933✔
11594
  return code;
2,933✔
11595
}
11596

11597
int32_t tDecodeSBatchDeleteReqSetCtime(SDecoder *pDecoder, SBatchDeleteReq *pReq, int64_t ctimeMs) {
2,657✔
11598
  int32_t code = 0;
2,657✔
11599
  int32_t lino;
11600

11601
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
2,657!
11602

11603
  pReq->ctimeMs = 0;
2,656✔
11604
  if (!tDecodeIsEnd(pDecoder)) {
2,656!
11605
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
2,656✔
11606
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
5,312!
11607
  }
11608

11609
_exit:
2,656✔
11610
  return code;
2,656✔
11611
}
11612

11613
static int32_t tEncodeSSubmitTbData(SEncoder *pCoder, const SSubmitTbData *pSubmitTbData) {
19,667,209✔
11614
  int32_t code = 0;
19,667,209✔
11615
  int32_t lino;
11616

11617
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
19,667,209!
11618

11619
  int32_t flags = pSubmitTbData->flags | ((SUBMIT_REQUEST_VERSION) << 8);
19,697,912✔
11620
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, flags));
19,697,912!
11621

11622
  // auto create table
11623
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
19,697,912✔
11624
    if (!(pSubmitTbData->pCreateTbReq)) {
201,589!
11625
      return TSDB_CODE_INVALID_MSG;
×
11626
    }
11627
    TAOS_CHECK_EXIT(tEncodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
201,589!
11628
  }
11629

11630
  // submit data
11631
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->suid));
39,395,822!
11632
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->uid));
39,395,822!
11633
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pSubmitTbData->sver));
39,395,822!
11634

11635
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
19,697,911✔
11636
    uint64_t  nColData = TARRAY_SIZE(pSubmitTbData->aCol);
184,598✔
11637
    SColData *aColData = (SColData *)TARRAY_DATA(pSubmitTbData->aCol);
184,598✔
11638

11639
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, nColData));
184,598!
11640

11641
    for (uint64_t i = 0; i < nColData; i++) {
1,789,816✔
11642
      TAOS_CHECK_EXIT(tEncodeColData(SUBMIT_REQUEST_VERSION, pCoder, &aColData[i]));
1,605,212!
11643
    }
11644
  } else {
11645
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, TARRAY_SIZE(pSubmitTbData->aRowP)));
39,026,626!
11646

11647
    SRow **rows = (SRow **)TARRAY_DATA(pSubmitTbData->aRowP);
19,513,313✔
11648
    for (int32_t iRow = 0; iRow < TARRAY_SIZE(pSubmitTbData->aRowP); ++iRow) {
1,632,441,690✔
11649
      TAOS_CHECK_EXIT(tEncodeRow(pCoder, rows[iRow]));
1,613,042,196!
11650
    }
11651
  }
11652
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->ctimeMs));
39,168,196!
11653

11654
  tEndEncode(pCoder);
19,584,098✔
11655
_exit:
19,695,773✔
11656
  return code;
19,695,773✔
11657
}
11658

11659
static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbData) {
14,982,585✔
11660
  int32_t code = 0;
14,982,585✔
11661
  int32_t lino;
11662
  int32_t flags;
11663
  uint8_t version;
11664

11665
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
14,982,585!
11666
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &flags));
14,981,469!
11667

11668
  pSubmitTbData->flags = flags & 0xff;
14,981,469✔
11669
  version = (flags >> 8) & 0xff;
14,981,469✔
11670

11671
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
14,981,469✔
11672
    pSubmitTbData->pCreateTbReq = taosMemoryCalloc(1, sizeof(SVCreateTbReq));
76,216!
11673
    if (pSubmitTbData->pCreateTbReq == NULL) {
76,241!
11674
      TAOS_CHECK_EXIT(terrno);
×
11675
    }
11676

11677
    TAOS_CHECK_EXIT(tDecodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
76,241!
11678
  }
11679

11680
  // submit data
11681
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->suid));
29,964,451!
11682
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->uid));
29,964,404!
11683
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pSubmitTbData->sver));
29,961,926!
11684

11685
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
14,980,501✔
11686
    uint64_t nColData;
11687

11688
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nColData));
362!
11689

11690
    pSubmitTbData->aCol = taosArrayInit(nColData, sizeof(SColData));
362✔
11691
    if (pSubmitTbData->aCol == NULL) {
362!
11692
      TAOS_CHECK_EXIT(terrno);
×
11693
    }
11694

11695
    for (int32_t i = 0; i < nColData; ++i) {
1,785✔
11696
      TAOS_CHECK_EXIT(tDecodeColData(version, pCoder, taosArrayReserve(pSubmitTbData->aCol, 1)));
1,424!
11697
    }
11698
  } else {
11699
    uint64_t nRow;
11700
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nRow));
14,981,986!
11701

11702
    pSubmitTbData->aRowP = taosArrayInit(nRow, sizeof(SRow *));
14,981,986✔
11703
    if (pSubmitTbData->aRowP == NULL) {
14,987,508!
UNCOV
11704
      TAOS_CHECK_EXIT(terrno);
×
11705
    }
11706

11707
    for (int32_t iRow = 0; iRow < nRow; ++iRow) {
914,111,682✔
11708
      SRow **ppRow = taosArrayReserve(pSubmitTbData->aRowP, 1);
899,195,793✔
11709
      if (ppRow == NULL) {
899,152,347!
11710
        TAOS_CHECK_EXIT(terrno);
×
11711
      }
11712

11713
      TAOS_CHECK_EXIT(tDecodeRow(pCoder, ppRow));
899,152,347!
11714
    }
11715
  }
11716

11717
  pSubmitTbData->ctimeMs = 0;
14,916,250✔
11718
  if (!tDecodeIsEnd(pCoder)) {
14,916,250!
11719
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->ctimeMs));
29,968,866!
11720
  }
11721

11722
  tEndDecode(pCoder);
14,916,756✔
11723

11724
_exit:
14,984,591✔
11725
  return code;
14,984,591✔
11726
}
11727

11728
int32_t tEncodeSubmitReq(SEncoder *pCoder, const SSubmitReq2 *pReq) {
19,381,841✔
11729
  int32_t code = 0;
19,381,841✔
11730
  int32_t lino;
11731

11732
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
19,381,841!
11733
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pReq->aSubmitTbData)));
38,899,008!
11734
  for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
39,149,891✔
11735
    TAOS_CHECK_EXIT(tEncodeSSubmitTbData(pCoder, taosArrayGet(pReq->aSubmitTbData, i)));
19,680,985!
11736
  }
11737
  tEndEncode(pCoder);
19,372,039✔
11738
_exit:
19,455,731✔
11739
  return code;
19,455,731✔
11740
}
11741

11742
int32_t tDecodeSubmitReq(SDecoder *pCoder, SSubmitReq2 *pReq) {
14,068,533✔
11743
  int32_t code = 0;
14,068,533✔
11744

11745
  memset(pReq, 0, sizeof(*pReq));
14,068,533✔
11746

11747
  // decode
11748
  if (tStartDecode(pCoder) < 0) {
14,068,533!
11749
    code = TSDB_CODE_INVALID_MSG;
×
11750
    goto _exit;
×
11751
  }
11752

11753
  uint64_t nSubmitTbData;
11754
  if (tDecodeU64v(pCoder, &nSubmitTbData) < 0) {
14,068,685!
11755
    code = TSDB_CODE_INVALID_MSG;
×
11756
    goto _exit;
×
11757
  }
11758

11759
  pReq->aSubmitTbData = taosArrayInit(nSubmitTbData, sizeof(SSubmitTbData));
14,068,685✔
11760
  if (pReq->aSubmitTbData == NULL) {
14,068,704!
11761
    code = terrno;
×
11762
    goto _exit;
×
11763
  }
11764

11765
  for (uint64_t i = 0; i < nSubmitTbData; i++) {
29,053,244✔
11766
    if (tDecodeSSubmitTbData(pCoder, taosArrayReserve(pReq->aSubmitTbData, 1)) < 0) {
14,984,596!
11767
      code = TSDB_CODE_INVALID_MSG;
×
11768
      goto _exit;
×
11769
    }
11770
  }
11771

11772
  tEndDecode(pCoder);
14,068,648✔
11773

11774
_exit:
14,068,520✔
11775
  if (code) {
14,068,520!
11776
    if (pReq->aSubmitTbData) {
×
11777
      // todo
11778
      taosArrayDestroy(pReq->aSubmitTbData);
×
11779
      pReq->aSubmitTbData = NULL;
×
11780
    }
11781
  }
11782
  return code;
14,068,520✔
11783
}
11784

11785
void tDestroySubmitTbData(SSubmitTbData *pTbData, int32_t flag) {
25,028,496✔
11786
  if (NULL == pTbData) {
25,028,496✔
11787
    return;
837✔
11788
  }
11789

11790
  if (flag == TSDB_MSG_FLG_ENCODE || flag == TSDB_MSG_FLG_CMPT) {
25,027,659✔
11791
    if (pTbData->pCreateTbReq) {
10,037,727✔
11792
      if (flag == TSDB_MSG_FLG_ENCODE) {
182,195!
11793
        tdDestroySVCreateTbReq(pTbData->pCreateTbReq);
182,195!
11794
      } else {
11795
        tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
×
11796
      }
11797
      taosMemoryFreeClear(pTbData->pCreateTbReq);
182,290!
11798
    }
11799

11800
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
10,037,824✔
11801
      int32_t   nColData = TARRAY_SIZE(pTbData->aCol);
246,751✔
11802
      SColData *aColData = (SColData *)TARRAY_DATA(pTbData->aCol);
246,751✔
11803

11804
      for (int32_t i = 0; i < nColData; ++i) {
1,569,380✔
11805
        tColDataDestroy(&aColData[i]);
1,322,629✔
11806
      }
11807
      taosArrayDestroy(pTbData->aCol);
246,751✔
11808
    } else {
11809
      int32_t nRow = TARRAY_SIZE(pTbData->aRowP);
9,791,073✔
11810
      SRow  **rows = (SRow **)TARRAY_DATA(pTbData->aRowP);
9,791,073✔
11811

11812
      for (int32_t i = 0; i < nRow; ++i) {
817,429,364✔
11813
        tRowDestroy(rows[i]);
807,708,546✔
11814
        rows[i] = NULL;
807,638,291✔
11815
      }
11816
      taosArrayDestroy(pTbData->aRowP);
9,720,818✔
11817
    }
11818
  } else if (flag == TSDB_MSG_FLG_DECODE) {
14,989,932✔
11819
    if (pTbData->pCreateTbReq) {
14,989,843✔
11820
      tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
76,244✔
11821
      taosMemoryFree(pTbData->pCreateTbReq);
76,246!
11822
    }
11823

11824
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
14,989,768✔
11825
      taosArrayDestroy(pTbData->aCol);
361✔
11826
    } else {
11827
      taosArrayDestroy(pTbData->aRowP);
14,989,407✔
11828
    }
11829
  }
11830

11831
  pTbData->aRowP = NULL;
25,029,874✔
11832
}
11833

11834
void tDestroySubmitReq(SSubmitReq2 *pReq, int32_t flag) {
23,880,749✔
11835
  if (pReq->aSubmitTbData == NULL) return;
23,880,749✔
11836

11837
  int32_t        nSubmitTbData = TARRAY_SIZE(pReq->aSubmitTbData);
23,825,517✔
11838
  SSubmitTbData *aSubmitTbData = (SSubmitTbData *)TARRAY_DATA(pReq->aSubmitTbData);
23,825,517✔
11839

11840
  for (int32_t i = 0; i < nSubmitTbData; i++) {
48,698,735✔
11841
    tDestroySubmitTbData(&aSubmitTbData[i], flag);
24,872,047✔
11842
  }
11843
  taosArrayDestroy(pReq->aSubmitTbData);
23,826,688✔
11844
  pReq->aSubmitTbData = NULL;
23,829,651✔
11845
}
11846

11847
int32_t tEncodeSSubmitRsp2(SEncoder *pCoder, const SSubmitRsp2 *pRsp) {
26,145,586✔
11848
  int32_t code = 0;
26,145,586✔
11849
  int32_t lino;
11850

11851
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
26,145,586!
11852

11853
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRsp->affectedRows));
52,291,026!
11854

11855
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pRsp->aCreateTbRsp)));
52,290,990!
11856
  for (int32_t i = 0; i < taosArrayGetSize(pRsp->aCreateTbRsp); ++i) {
26,271,897✔
11857
    TAOS_CHECK_EXIT(tEncodeSVCreateTbRsp(pCoder, taosArrayGet(pRsp->aCreateTbRsp, i)));
126,420!
11858
  }
11859

11860
  tEndEncode(pCoder);
26,145,322✔
11861
_exit:
26,145,358✔
11862
  return code;
26,145,358✔
11863
}
11864

11865
int32_t tDecodeSSubmitRsp2(SDecoder *pCoder, SSubmitRsp2 *pRsp) {
9,699,783✔
11866
  int32_t code = 0;
9,699,783✔
11867

11868
  memset(pRsp, 0, sizeof(SSubmitRsp2));
9,699,783✔
11869

11870
  // decode
11871
  if (tStartDecode(pCoder) < 0) {
9,699,783✔
11872
    code = TSDB_CODE_INVALID_MSG;
10✔
11873
    goto _exit;
10✔
11874
  }
11875

11876
  if (tDecodeI32v(pCoder, &pRsp->affectedRows) < 0) {
19,459,307!
11877
    code = TSDB_CODE_INVALID_MSG;
×
11878
    goto _exit;
×
11879
  }
11880

11881
  uint64_t nCreateTbRsp;
11882
  if (tDecodeU64v(pCoder, &nCreateTbRsp) < 0) {
9,730,030!
11883
    code = TSDB_CODE_INVALID_MSG;
×
11884
    goto _exit;
×
11885
  }
11886

11887
  if (nCreateTbRsp) {
9,730,030✔
11888
    pRsp->aCreateTbRsp = taosArrayInit(nCreateTbRsp, sizeof(SVCreateTbRsp));
83,871✔
11889
    if (pRsp->aCreateTbRsp == NULL) {
83,871!
11890
      code = terrno;
×
11891
      goto _exit;
×
11892
    }
11893

11894
    for (int32_t i = 0; i < nCreateTbRsp; ++i) {
173,497✔
11895
      SVCreateTbRsp *pCreateTbRsp = taosArrayReserve(pRsp->aCreateTbRsp, 1);
89,626✔
11896
      if (tDecodeSVCreateTbRsp(pCoder, pCreateTbRsp) < 0) {
89,627!
11897
        code = TSDB_CODE_INVALID_MSG;
×
11898
        goto _exit;
×
11899
      }
11900
    }
11901
  }
11902

11903
  tEndDecode(pCoder);
9,730,030✔
11904

11905
_exit:
9,708,085✔
11906
  if (code) {
9,708,085✔
11907
    if (pRsp->aCreateTbRsp) {
10!
11908
      taosArrayDestroyEx(pRsp->aCreateTbRsp, NULL /* todo */);
×
11909
    }
11910
  }
11911
  return code;
9,708,045✔
11912
}
11913

11914
void tDestroySSubmitRsp2(SSubmitRsp2 *pRsp, int32_t flag) {
32,242,860✔
11915
  if (NULL == pRsp) {
32,242,860✔
11916
    return;
9,549,335✔
11917
  }
11918

11919
  if (flag & TSDB_MSG_FLG_ENCODE) {
22,693,525✔
11920
    if (pRsp->aCreateTbRsp) {
13,072,739✔
11921
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
46,170✔
11922
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
46,170✔
11923
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
109,382✔
11924
        if (aCreateTbRsp[i].pMeta) {
63,212✔
11925
          taosMemoryFree(aCreateTbRsp[i].pMeta);
37,415!
11926
        }
11927
      }
11928
      taosArrayDestroy(pRsp->aCreateTbRsp);
46,170✔
11929
    }
11930
  } else if (flag & TSDB_MSG_FLG_DECODE) {
9,620,786!
11931
    if (pRsp->aCreateTbRsp) {
9,703,560✔
11932
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
83,719✔
11933
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
83,719✔
11934
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
173,459✔
11935
        if (aCreateTbRsp[i].pMeta) {
89,740✔
11936
          taosMemoryFree(aCreateTbRsp[i].pMeta);
30,647!
11937
        }
11938
      }
11939
      taosArrayDestroy(pRsp->aCreateTbRsp);
83,719✔
11940
    }
11941
  }
11942
}
11943

11944
int32_t tSerializeSMPauseStreamReq(void *buf, int32_t bufLen, const SMPauseStreamReq *pReq) {
978✔
11945
  int32_t  code = 0;
978✔
11946
  int32_t  lino;
11947
  int32_t  tlen;
11948
  SEncoder encoder = {0};
978✔
11949
  tEncoderInit(&encoder, buf, bufLen);
978✔
11950
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
978!
11951
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
1,956!
11952
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
1,956!
11953
  tEndEncode(&encoder);
978✔
11954

11955
_exit:
978✔
11956
  if (code) {
978!
11957
    tlen = code;
×
11958
  } else {
11959
    tlen = encoder.pos;
978✔
11960
  }
11961
  tEncoderClear(&encoder);
978✔
11962
  return tlen;
978✔
11963
}
11964

11965
int32_t tDeserializeSMPauseStreamReq(void *buf, int32_t bufLen, SMPauseStreamReq *pReq) {
722✔
11966
  SDecoder decoder = {0};
722✔
11967
  int32_t  code = 0;
722✔
11968
  int32_t  lino;
11969

11970
  tDecoderInit(&decoder, buf, bufLen);
722✔
11971
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
722!
11972
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
722!
11973
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
1,444!
11974
  tEndDecode(&decoder);
722✔
11975

11976
_exit:
722✔
11977
  tDecoderClear(&decoder);
722✔
11978
  return code;
722✔
11979
}
11980

11981
int32_t tSerializeSMResumeStreamReq(void *buf, int32_t bufLen, const SMResumeStreamReq *pReq) {
1,078✔
11982
  SEncoder encoder = {0};
1,078✔
11983
  int32_t  code = 0;
1,078✔
11984
  int32_t  lino;
11985
  int32_t  tlen;
11986
  tEncoderInit(&encoder, buf, bufLen);
1,078✔
11987
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
1,078!
11988
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
2,156!
11989
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
2,156!
11990
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUntreated));
2,156!
11991
  tEndEncode(&encoder);
1,078✔
11992

11993
_exit:
1,078✔
11994
  if (code) {
1,078!
11995
    tlen = code;
×
11996
  } else {
11997
    tlen = encoder.pos;
1,078✔
11998
  }
11999
  tEncoderClear(&encoder);
1,078✔
12000
  return tlen;
1,078✔
12001
}
12002

12003
int32_t tDeserializeSMResumeStreamReq(void *buf, int32_t bufLen, SMResumeStreamReq *pReq) {
802✔
12004
  SDecoder decoder = {0};
802✔
12005
  int32_t  code = 0;
802✔
12006
  int32_t  lino;
12007

12008
  tDecoderInit(&decoder, buf, bufLen);
802✔
12009
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
802!
12010
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
802!
12011
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
1,604!
12012
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUntreated));
1,604!
12013
  tEndDecode(&decoder);
802✔
12014

12015
_exit:
802✔
12016
  tDecoderClear(&decoder);
802✔
12017
  return code;
802✔
12018
}
12019

12020
int32_t tSerializeSMResetStreamReq(void *buf, int32_t bufLen, const SMResetStreamReq *pReq) {
×
12021
  SEncoder encoder = {0};
×
12022
  int32_t  code = 0;
×
12023
  int32_t  lino;
12024
  int32_t  tlen;
12025
  tEncoderInit(&encoder, buf, bufLen);
×
12026
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
12027
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
12028
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
×
12029
  tEndEncode(&encoder);
×
12030

12031
_exit:
×
12032
  if (code) {
×
12033
    tlen = code;
×
12034
  } else {
12035
    tlen = encoder.pos;
×
12036
  }
12037
  tEncoderClear(&encoder);
×
12038
  return tlen;
×
12039
}
12040

12041
int32_t tDeserializeSMResetStreamReq(void *buf, int32_t bufLen, SMResetStreamReq *pReq) {
×
12042
  SDecoder decoder = {0};
×
12043
  int32_t  code = 0;
×
12044
  int32_t  lino;
12045

12046
  tDecoderInit(&decoder, buf, bufLen);
×
12047
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
12048
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
12049
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
×
12050
  tEndDecode(&decoder);
×
12051

12052
_exit:
×
12053
  tDecoderClear(&decoder);
×
12054
  return code;
×
12055
}
12056

12057
int32_t tEncodeMqSubTopicEp(void **buf, const SMqSubTopicEp *pTopicEp) {
7,030✔
12058
  int32_t tlen = 0;
7,030✔
12059
  tlen += taosEncodeString(buf, pTopicEp->topic);
7,030✔
12060
  tlen += taosEncodeString(buf, pTopicEp->db);
7,030✔
12061
  int32_t sz = taosArrayGetSize(pTopicEp->vgs);
7,030✔
12062
  tlen += taosEncodeFixedI32(buf, sz);
7,032✔
12063
  for (int32_t i = 0; i < sz; i++) {
15,758✔
12064
    SMqSubVgEp *pVgEp = (SMqSubVgEp *)taosArrayGet(pTopicEp->vgs, i);
8,726✔
12065
    tlen += tEncodeSMqSubVgEp(buf, pVgEp);
8,726✔
12066
  }
12067
  tlen += taosEncodeSSchemaWrapper(buf, &pTopicEp->schema);
7,032✔
12068
  return tlen;
7,032✔
12069
}
12070

12071
void *tDecodeMqSubTopicEp(void *buf, SMqSubTopicEp *pTopicEp) {
3,411✔
12072
  buf = taosDecodeStringTo(buf, pTopicEp->topic);
3,411✔
12073
  buf = taosDecodeStringTo(buf, pTopicEp->db);
6,822!
12074
  int32_t sz;
12075
  buf = taosDecodeFixedI32(buf, &sz);
3,411✔
12076
  pTopicEp->vgs = taosArrayInit(sz, sizeof(SMqSubVgEp));
3,411✔
12077
  if (pTopicEp->vgs == NULL) {
3,411!
12078
    return NULL;
×
12079
  }
12080
  for (int32_t i = 0; i < sz; i++) {
7,659✔
12081
    SMqSubVgEp vgEp;
12082
    buf = tDecodeSMqSubVgEp(buf, &vgEp);
4,248✔
12083
    if (taosArrayPush(pTopicEp->vgs, &vgEp) == NULL) {
8,496!
12084
      taosArrayDestroy(pTopicEp->vgs);
×
12085
      pTopicEp->vgs = NULL;
×
12086
      return NULL;
×
12087
    }
12088
  }
12089
  buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema);
3,411✔
12090
  return buf;
3,411✔
12091
}
12092

12093
void tDeleteMqSubTopicEp(SMqSubTopicEp *pSubTopicEp) {
6,927✔
12094
  taosMemoryFreeClear(pSubTopicEp->schema.pSchema);
6,927!
12095
  pSubTopicEp->schema.nCols = 0;
6,927✔
12096
  taosArrayDestroy(pSubTopicEp->vgs);
6,927✔
12097
}
6,927✔
12098

12099
int32_t tSerializeSCMCreateViewReq(void *buf, int32_t bufLen, const SCMCreateViewReq *pReq) {
450✔
12100
  SEncoder encoder = {0};
450✔
12101
  int32_t  code = 0;
450✔
12102
  int32_t  lino;
12103
  int32_t  tlen;
12104
  tEncoderInit(&encoder, buf, bufLen);
450✔
12105

12106
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
450!
12107
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
900!
12108
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
900!
12109
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
900!
12110
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->querySql));
900!
12111
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
900!
12112
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
900!
12113
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
900!
12114
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfCols));
900!
12115
  for (int32_t i = 0; i < pReq->numOfCols; ++i) {
1,958✔
12116
    SSchema *pSchema = &pReq->pSchema[i];
1,508✔
12117
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
1,508!
12118
  }
12119

12120
  tEndEncode(&encoder);
450✔
12121

12122
_exit:
450✔
12123
  if (code) {
450!
12124
    tlen = code;
×
12125
  } else {
12126
    tlen = encoder.pos;
450✔
12127
  }
12128
  tEncoderClear(&encoder);
450✔
12129
  return tlen;
450✔
12130
}
12131

12132
int32_t tDeserializeSCMCreateViewReq(void *buf, int32_t bufLen, SCMCreateViewReq *pReq) {
211✔
12133
  SDecoder decoder = {0};
211✔
12134
  int32_t  code = 0;
211✔
12135
  int32_t  lino;
12136

12137
  tDecoderInit(&decoder, buf, bufLen);
211✔
12138

12139
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
211!
12140
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
211!
12141
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
211!
12142
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
211!
12143
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->querySql));
422!
12144
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
422!
12145
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
422!
12146
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
422!
12147
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfCols));
422!
12148

12149
  if (pReq->numOfCols > 0) {
211!
12150
    pReq->pSchema = taosMemoryCalloc(pReq->numOfCols, sizeof(SSchema));
211!
12151
    if (pReq->pSchema == NULL) {
211!
12152
      TAOS_CHECK_EXIT(terrno);
×
12153
    }
12154

12155
    for (int32_t i = 0; i < pReq->numOfCols; ++i) {
925✔
12156
      SSchema *pSchema = pReq->pSchema + i;
714✔
12157
      TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
714!
12158
    }
12159
  }
12160

12161
  tEndDecode(&decoder);
211✔
12162

12163
_exit:
211✔
12164
  tDecoderClear(&decoder);
211✔
12165
  return code;
211✔
12166
}
12167

12168
void tFreeSCMCreateViewReq(SCMCreateViewReq *pReq) {
751✔
12169
  if (NULL == pReq) {
751!
12170
    return;
×
12171
  }
12172

12173
  taosMemoryFreeClear(pReq->querySql);
751!
12174
  taosMemoryFreeClear(pReq->sql);
751!
12175
  taosMemoryFreeClear(pReq->pSchema);
751!
12176
}
12177

12178
int32_t tSerializeSCMDropViewReq(void *buf, int32_t bufLen, const SCMDropViewReq *pReq) {
370✔
12179
  SEncoder encoder = {0};
370✔
12180
  int32_t  code = 0;
370✔
12181
  int32_t  lino;
12182
  int32_t  tlen;
12183
  tEncoderInit(&encoder, buf, bufLen);
370✔
12184

12185
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
370!
12186
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
740!
12187
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
740!
12188
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
740!
12189
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
740!
12190
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
740!
12191

12192
  tEndEncode(&encoder);
370✔
12193

12194
_exit:
370✔
12195
  if (code) {
370!
12196
    tlen = code;
×
12197
  } else {
12198
    tlen = encoder.pos;
370✔
12199
  }
12200
  tEncoderClear(&encoder);
370✔
12201
  return tlen;
370✔
12202
}
12203

12204
int32_t tDeserializeSCMDropViewReq(void *buf, int32_t bufLen, SCMDropViewReq *pReq) {
184✔
12205
  SDecoder decoder = {0};
184✔
12206
  int32_t  code = 0;
184✔
12207
  int32_t  lino;
12208

12209
  tDecoderInit(&decoder, buf, bufLen);
184✔
12210

12211
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
184!
12212
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
184!
12213
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
184!
12214
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
184!
12215
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
368!
12216
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
368!
12217

12218
  tEndDecode(&decoder);
184✔
12219

12220
_exit:
184✔
12221
  tDecoderClear(&decoder);
184✔
12222
  return code;
184✔
12223
}
12224
void tFreeSCMDropViewReq(SCMDropViewReq *pReq) {
184✔
12225
  if (NULL == pReq) {
184!
12226
    return;
×
12227
  }
12228

12229
  taosMemoryFree(pReq->sql);
184!
12230
}
12231

12232
int32_t tSerializeSViewMetaReq(void *buf, int32_t bufLen, const SViewMetaReq *pReq) {
50,208✔
12233
  SEncoder encoder = {0};
50,208✔
12234
  int32_t  code = 0;
50,208✔
12235
  int32_t  lino;
12236
  int32_t  tlen;
12237
  tEncoderInit(&encoder, buf, bufLen);
50,208✔
12238

12239
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
50,208!
12240
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
100,416!
12241

12242
  tEndEncode(&encoder);
50,208✔
12243

12244
_exit:
50,208✔
12245
  if (code) {
50,208!
12246
    tlen = code;
×
12247
  } else {
12248
    tlen = encoder.pos;
50,208✔
12249
  }
12250
  tEncoderClear(&encoder);
50,208✔
12251
  return tlen;
50,208✔
12252
}
12253

12254
int32_t tDeserializeSViewMetaReq(void *buf, int32_t bufLen, SViewMetaReq *pReq) {
1,525,333✔
12255
  SDecoder decoder = {0};
1,525,333✔
12256
  int32_t  code = 0;
1,525,333✔
12257
  int32_t  lino;
12258

12259
  tDecoderInit(&decoder, buf, bufLen);
1,525,333✔
12260

12261
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,525,330!
12262
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
1,525,339!
12263

12264
  tEndDecode(&decoder);
1,525,338✔
12265

12266
_exit:
1,525,337✔
12267
  tDecoderClear(&decoder);
1,525,337✔
12268
  return code;
1,525,339✔
12269
}
12270

12271
static int32_t tEncodeSViewMetaRsp(SEncoder *pEncoder, const SViewMetaRsp *pRsp) {
622✔
12272
  int32_t code = 0;
622✔
12273
  int32_t lino;
12274

12275
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->name));
1,244!
12276
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->dbFName));
1,244!
12277
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->user));
1,244!
12278
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->dbId));
1,244!
12279
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->viewId));
1,244!
12280
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->querySql));
1,244!
12281
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->precision));
1,244!
12282
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->type));
1,244!
12283
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->version));
1,244!
12284
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->numOfCols));
1,244!
12285
  for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
2,524✔
12286
    SSchema *pSchema = &pRsp->pSchema[i];
1,902✔
12287
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
1,902!
12288
  }
12289

12290
_exit:
622✔
12291
  return code;
622✔
12292
}
12293

12294
int32_t tSerializeSViewMetaRsp(void *buf, int32_t bufLen, const SViewMetaRsp *pRsp) {
612✔
12295
  SEncoder encoder = {0};
612✔
12296
  int32_t  code = 0;
612✔
12297
  int32_t  lino;
12298
  int32_t  tlen;
12299
  tEncoderInit(&encoder, buf, bufLen);
612✔
12300

12301
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
612!
12302
  TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pRsp));
612!
12303

12304
  tEndEncode(&encoder);
612✔
12305

12306
_exit:
612✔
12307
  if (code) {
612!
12308
    tlen = code;
×
12309
  } else {
12310
    tlen = encoder.pos;
612✔
12311
  }
12312
  tEncoderClear(&encoder);
612✔
12313
  return tlen;
612✔
12314
}
12315

12316
static int32_t tDecodeSViewMetaRsp(SDecoder *pDecoder, SViewMetaRsp *pRsp) {
315✔
12317
  int32_t code = 0;
315✔
12318
  int32_t lino;
12319

12320
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->name));
315!
12321
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->dbFName));
315!
12322
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->user));
630!
12323
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->dbId));
630!
12324
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->viewId));
630!
12325
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->querySql));
630!
12326
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->precision));
630!
12327
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->type));
630!
12328
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->version));
630!
12329
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->numOfCols));
630!
12330
  if (pRsp->numOfCols > 0) {
315✔
12331
    pRsp->pSchema = taosMemoryCalloc(pRsp->numOfCols, sizeof(SSchema));
310!
12332
    if (pRsp->pSchema == NULL) {
310!
12333
      TAOS_CHECK_EXIT(terrno);
×
12334
    }
12335

12336
    for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
1,277✔
12337
      SSchema *pSchema = pRsp->pSchema + i;
967✔
12338
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, pSchema));
967!
12339
    }
12340
  }
12341

12342
_exit:
315✔
12343
  return code;
315✔
12344
}
12345

12346
int32_t tDeserializeSViewMetaRsp(void *buf, int32_t bufLen, SViewMetaRsp *pRsp) {
310✔
12347
  SDecoder decoder = {0};
310✔
12348
  int32_t  code = 0;
310✔
12349
  int32_t  lino;
12350

12351
  tDecoderInit(&decoder, buf, bufLen);
310✔
12352

12353
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
310!
12354
  TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, pRsp));
310!
12355

12356
  tEndDecode(&decoder);
310✔
12357

12358
_exit:
310✔
12359
  tDecoderClear(&decoder);
310✔
12360
  return code;
310✔
12361
}
12362

12363
void tFreeSViewMetaRsp(SViewMetaRsp *pRsp) {
626✔
12364
  if (NULL == pRsp) {
626!
12365
    return;
×
12366
  }
12367

12368
  taosMemoryFree(pRsp->user);
626!
12369
  taosMemoryFree(pRsp->querySql);
626!
12370
  taosMemoryFree(pRsp->pSchema);
626!
12371
}
12372

12373
int32_t tSerializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
10✔
12374
  SEncoder encoder = {0};
10✔
12375
  int32_t  code = 0;
10✔
12376
  int32_t  lino;
12377
  int32_t  tlen;
12378
  tEncoderInit(&encoder, buf, bufLen);
10✔
12379

12380
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
12381

12382
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
10✔
12383
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
10!
12384
  for (int32_t i = 0; i < numOfMeta; ++i) {
20✔
12385
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
10✔
12386
    TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pMetaRsp));
10!
12387
  }
12388

12389
  tEndEncode(&encoder);
10✔
12390

12391
_exit:
10✔
12392
  if (code) {
10!
12393
    tlen = code;
×
12394
  } else {
12395
    tlen = encoder.pos;
10✔
12396
  }
12397
  tEncoderClear(&encoder);
10✔
12398
  return tlen;
10✔
12399
}
12400

12401
int32_t tDeserializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
5✔
12402
  SDecoder decoder = {0};
5✔
12403
  int32_t  code = 0;
5✔
12404
  int32_t  lino;
12405

12406
  tDecoderInit(&decoder, buf, bufLen);
5✔
12407

12408
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5!
12409

12410
  int32_t numOfMeta = 0;
5✔
12411
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
5!
12412
  pRsp->pViewRsp = taosArrayInit(numOfMeta, POINTER_BYTES);
5✔
12413
  if (pRsp->pViewRsp == NULL) {
5!
12414
    TAOS_CHECK_EXIT(terrno);
×
12415
  }
12416

12417
  for (int32_t i = 0; i < numOfMeta; ++i) {
10✔
12418
    SViewMetaRsp *metaRsp = taosMemoryCalloc(1, sizeof(SViewMetaRsp));
5!
12419
    if (NULL == metaRsp) {
5!
12420
      TAOS_CHECK_EXIT(terrno);
×
12421
    }
12422
    TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, metaRsp));
5!
12423
    if (taosArrayPush(pRsp->pViewRsp, &metaRsp) == NULL) {
10!
12424
      TAOS_CHECK_EXIT(terrno);
×
12425
    }
12426
  }
12427

12428
  tEndDecode(&decoder);
5✔
12429

12430
_exit:
5✔
12431
  tDecoderClear(&decoder);
5✔
12432
  return code;
5✔
12433
}
12434

12435
void tFreeSViewHbRsp(SViewHbRsp *pRsp) {
5✔
12436
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
5✔
12437
  for (int32_t i = 0; i < numOfMeta; ++i) {
10✔
12438
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
5✔
12439
    tFreeSViewMetaRsp(pMetaRsp);
5✔
12440
    taosMemoryFree(pMetaRsp);
5!
12441
  }
12442

12443
  taosArrayDestroy(pRsp->pViewRsp);
5✔
12444
}
5✔
12445

12446
void setDefaultOptionsForField(SFieldWithOptions *field) {
2,046✔
12447
  setColEncode(&field->compress, getDefaultEncode(field->type));
2,046✔
12448
  setColCompress(&field->compress, getDefaultCompress(field->type));
2,047✔
12449
  setColLevel(&field->compress, getDefaultLevel(field->type));
2,048✔
12450
}
2,049✔
12451

12452
void setFieldWithOptions(SFieldWithOptions *fieldWithOptions, SField *field) {
2,050✔
12453
  fieldWithOptions->bytes = field->bytes;
2,050✔
12454
  fieldWithOptions->flags = field->flags;
2,050✔
12455
  fieldWithOptions->type = field->type;
2,050✔
12456
  tstrncpy(fieldWithOptions->name, field->name, TSDB_COL_NAME_LEN);
2,050✔
12457
}
2,050✔
12458
int32_t tSerializeTableTSMAInfoReq(void *buf, int32_t bufLen, const STableTSMAInfoReq *pReq) {
2,218✔
12459
  SEncoder encoder = {0};
2,218✔
12460
  int32_t  code = 0;
2,218✔
12461
  int32_t  lino;
12462
  int32_t  tlen;
12463
  tEncoderInit(&encoder, buf, bufLen);
2,218✔
12464

12465
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2,218!
12466
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
4,436!
12467
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fetchingWithTsmaName));
4,436!
12468

12469
  tEndEncode(&encoder);
2,218✔
12470

12471
_exit:
2,218✔
12472
  if (code) {
2,218!
12473
    tlen = code;
×
12474
  } else {
12475
    tlen = encoder.pos;
2,218✔
12476
  }
12477
  tEncoderClear(&encoder);
2,218✔
12478
  return tlen;
2,218✔
12479
}
12480

12481
int32_t tDeserializeTableTSMAInfoReq(void *buf, int32_t bufLen, STableTSMAInfoReq *pReq) {
1,389✔
12482
  SDecoder decoder = {0};
1,389✔
12483
  int32_t  code = 0;
1,389✔
12484
  int32_t  lino;
12485

12486
  tDecoderInit(&decoder, buf, bufLen);
1,389✔
12487

12488
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,389!
12489
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
1,389!
12490
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (uint8_t *)&pReq->fetchingWithTsmaName));
2,778!
12491

12492
  tEndDecode(&decoder);
1,389✔
12493

12494
_exit:
1,389✔
12495
  tDecoderClear(&decoder);
1,389✔
12496
  return code;
1,389✔
12497
}
12498

12499
static int32_t tEncodeTableTSMAInfo(SEncoder *pEncoder, const STableTSMAInfo *pTsmaInfo) {
3,972✔
12500
  int32_t code = 0;
3,972✔
12501
  int32_t lino;
12502

12503
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->name));
7,944!
12504
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->tsmaId));
7,944!
12505
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->tb));
7,944!
12506
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->dbFName));
7,944!
12507
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->suid));
7,944!
12508
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->destTbUid));
7,944!
12509
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->dbId));
7,944!
12510
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTsmaInfo->version));
7,944!
12511
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetTb));
7,944!
12512
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetDbFName));
7,944!
12513
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->interval));
7,944!
12514
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->unit));
7,944!
12515

12516
  int32_t size = pTsmaInfo->pFuncs ? pTsmaInfo->pFuncs->size : 0;
3,972✔
12517
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
3,972!
12518
  for (int32_t i = 0; i < size; ++i) {
636,980✔
12519
    STableTSMAFuncInfo *pFuncInfo = taosArrayGet(pTsmaInfo->pFuncs, i);
633,008✔
12520
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pFuncInfo->funcId));
1,266,016!
12521
    TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pFuncInfo->colId));
1,266,016!
12522
  }
12523

12524
  size = pTsmaInfo->pTags ? pTsmaInfo->pTags->size : 0;
3,972✔
12525
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
3,972!
12526
  for (int32_t i = 0; i < size; ++i) {
29,276✔
12527
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pTags, i);
25,304✔
12528
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
25,304!
12529
  }
12530
  size = pTsmaInfo->pUsedCols ? pTsmaInfo->pUsedCols->size : 0;
3,972✔
12531
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
3,972!
12532
  for (int32_t i = 0; i < size; ++i) {
636,980✔
12533
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pUsedCols, i);
633,008✔
12534
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
633,008!
12535
  }
12536

12537
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->ast));
7,944!
12538
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->streamUid));
7,944!
12539
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->reqTs));
7,944!
12540
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->rspTs));
7,944!
12541
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->delayDuration));
7,944!
12542
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->fillHistoryFinished));
7,944!
12543

12544
_exit:
3,972✔
12545
  return code;
3,972✔
12546
}
12547

12548
static int32_t tDecodeTableTSMAInfo(SDecoder *pDecoder, STableTSMAInfo *pTsmaInfo) {
1,579✔
12549
  int32_t code = 0;
1,579✔
12550
  int32_t lino;
12551

12552
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->name));
1,579!
12553
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->tsmaId));
3,158!
12554
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->tb));
1,579!
12555
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->dbFName));
1,579!
12556
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->suid));
3,158!
12557
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->destTbUid));
3,158!
12558
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->dbId));
3,158!
12559
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pTsmaInfo->version));
3,158!
12560
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetTb));
1,579!
12561
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetDbFName));
1,579!
12562
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->interval));
3,158!
12563
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pTsmaInfo->unit));
3,158!
12564
  int32_t size = 0;
1,579✔
12565
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,579!
12566
  if (size > 0) {
1,579✔
12567
    pTsmaInfo->pFuncs = taosArrayInit(size, sizeof(STableTSMAFuncInfo));
1,578✔
12568
    if (!pTsmaInfo->pFuncs) {
1,578!
12569
      TAOS_CHECK_EXIT(terrno);
×
12570
    }
12571
    for (int32_t i = 0; i < size; ++i) {
251,476✔
12572
      STableTSMAFuncInfo funcInfo = {0};
249,898✔
12573
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &funcInfo.funcId));
249,898!
12574
      TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &funcInfo.colId));
249,898!
12575
      if (!taosArrayPush(pTsmaInfo->pFuncs, &funcInfo)) {
499,796!
12576
        TAOS_CHECK_EXIT(terrno);
×
12577
      }
12578
    }
12579
  }
12580

12581
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,579!
12582
  if (size > 0) {
1,579✔
12583
    pTsmaInfo->pTags = taosArrayInit(size, sizeof(SSchema));
1,578✔
12584
    if (!pTsmaInfo->pTags) {
1,578!
12585
      TAOS_CHECK_EXIT(terrno);
×
12586
    }
12587
    for (int32_t i = 0; i < size; ++i) {
11,637✔
12588
      SSchema schema = {0};
10,059✔
12589
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
10,059!
12590
      if (taosArrayPush(pTsmaInfo->pTags, &schema) == NULL) {
20,118!
12591
        TAOS_CHECK_EXIT(terrno);
×
12592
      }
12593
    }
12594
  }
12595

12596
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1,579!
12597
  if (size > 0) {
1,579✔
12598
    pTsmaInfo->pUsedCols = taosArrayInit(size, sizeof(SSchema));
1,578✔
12599
    if (!pTsmaInfo->pUsedCols) {
1,578!
12600
      TAOS_CHECK_EXIT(terrno);
×
12601
    }
12602
    for (int32_t i = 0; i < size; ++i) {
251,476✔
12603
      SSchema schema = {0};
249,898✔
12604
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
249,898!
12605
      if (taosArrayPush(pTsmaInfo->pUsedCols, &schema) == NULL) {
499,796!
12606
        TAOS_CHECK_EXIT(terrno);
×
12607
      }
12608
    }
12609
  }
12610
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pTsmaInfo->ast));
3,158!
12611
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->streamUid));
3,158!
12612
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->reqTs));
3,158!
12613
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->rspTs));
3,158!
12614
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->delayDuration));
3,158!
12615
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pTsmaInfo->fillHistoryFinished));
3,158!
12616

12617
_exit:
1,579✔
12618
  return code;
1,579✔
12619
}
12620

12621
static int32_t tEncodeTableTSMAInfoRsp(SEncoder *pEncoder, const STableTSMAInfoRsp *pRsp) {
27,440✔
12622
  int32_t code = 0;
27,440✔
12623
  int32_t lino;
12624

12625
  int32_t size = pRsp->pTsmas ? pRsp->pTsmas->size : 0;
27,440!
12626
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
27,440!
12627
  for (int32_t i = 0; i < size; ++i) {
31,412✔
12628
    STableTSMAInfo *pInfo = taosArrayGetP(pRsp->pTsmas, i);
3,972✔
12629
    TAOS_CHECK_EXIT(tEncodeTableTSMAInfo(pEncoder, pInfo));
3,972!
12630
  }
12631
_exit:
27,440✔
12632
  return code;
27,440✔
12633
}
12634

12635
static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pRsp) {
3,401✔
12636
  int32_t size = 0;
3,401✔
12637
  int32_t code = 0;
3,401✔
12638
  int32_t lino;
12639

12640
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
3,401!
12641
  if (size <= 0) return 0;
3,401✔
12642
  pRsp->pTsmas = taosArrayInit(size, POINTER_BYTES);
1,073✔
12643
  if (!pRsp->pTsmas) {
1,073!
12644
    TAOS_CHECK_EXIT(terrno);
×
12645
  }
12646
  for (int32_t i = 0; i < size; ++i) {
2,652✔
12647
    STableTSMAInfo *pTsma = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
1,579!
12648
    if (!pTsma) {
1,579!
12649
      TAOS_CHECK_EXIT(terrno);
×
12650
    }
12651
    if (taosArrayPush(pRsp->pTsmas, &pTsma) == NULL) {
3,158!
12652
      TAOS_CHECK_EXIT(terrno);
×
12653
    }
12654
    TAOS_CHECK_EXIT(tDecodeTableTSMAInfo(pDecoder, pTsma));
1,579!
12655
  }
12656
_exit:
1,073✔
12657
  return code;
1,073✔
12658
}
12659

12660
int32_t tSerializeTableTSMAInfoRsp(void *buf, int32_t bufLen, const STableTSMAInfoRsp *pRsp) {
3,134✔
12661
  SEncoder encoder = {0};
3,134✔
12662
  int32_t  code = 0;
3,134✔
12663
  int32_t  lino;
12664
  int32_t  tlen;
12665
  tEncoderInit(&encoder, buf, bufLen);
3,134✔
12666

12667
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3,134!
12668
  TAOS_CHECK_EXIT(tEncodeTableTSMAInfoRsp(&encoder, pRsp));
3,134!
12669

12670
  tEndEncode(&encoder);
3,134✔
12671

12672
_exit:
3,134✔
12673
  if (code) {
3,134!
12674
    tlen = code;
×
12675
  } else {
12676
    tlen = encoder.pos;
3,134✔
12677
  }
12678
  tEncoderClear(&encoder);
3,134✔
12679
  return tlen;
3,134✔
12680
}
12681

12682
int32_t tDeserializeTableTSMAInfoRsp(void *buf, int32_t bufLen, STableTSMAInfoRsp *pRsp) {
1,252✔
12683
  SDecoder decoder = {0};
1,252✔
12684
  int32_t  code = 0;
1,252✔
12685
  int32_t  lino;
12686

12687
  tDecoderInit(&decoder, buf, bufLen);
1,252✔
12688

12689
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1,252!
12690
  TAOS_CHECK_EXIT(tDecodeTableTSMAInfoRsp(&decoder, pRsp));
1,252!
12691

12692
  tEndDecode(&decoder);
1,252✔
12693

12694
_exit:
1,252✔
12695
  tDecoderClear(&decoder);
1,252✔
12696
  return code;
1,252✔
12697
}
12698

12699
void tFreeTableTSMAInfo(void *p) {
28,017✔
12700
  STableTSMAInfo *pTsmaInfo = p;
28,017✔
12701
  if (pTsmaInfo) {
28,017!
12702
    taosArrayDestroy(pTsmaInfo->pFuncs);
28,017✔
12703
    taosArrayDestroy(pTsmaInfo->pTags);
28,017✔
12704
    taosArrayDestroy(pTsmaInfo->pUsedCols);
28,017✔
12705
    taosMemoryFree(pTsmaInfo->ast);
28,017!
12706
  }
12707
}
28,017✔
12708

12709
void tFreeAndClearTableTSMAInfo(void *p) {
26,861✔
12710
  STableTSMAInfo *pTsmaInfo = (STableTSMAInfo *)p;
26,861✔
12711
  if (pTsmaInfo) {
26,861!
12712
    tFreeTableTSMAInfo(pTsmaInfo);
26,861✔
12713
    taosMemoryFree(pTsmaInfo);
26,861!
12714
  }
12715
}
26,861✔
12716

12717
int32_t tCloneTbTSMAInfo(STableTSMAInfo *pInfo, STableTSMAInfo **pRes) {
24,452✔
12718
  int32_t code = TSDB_CODE_SUCCESS;
24,452✔
12719
  if (NULL == pInfo) {
24,452!
12720
    return TSDB_CODE_SUCCESS;
×
12721
  }
12722
  STableTSMAInfo *pRet = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
24,452!
12723
  if (!pRet) return terrno;
24,452!
12724

12725
  *pRet = *pInfo;
24,452✔
12726
  if (pInfo->pFuncs) {
24,452!
12727
    pRet->pFuncs = taosArrayDup(pInfo->pFuncs, NULL);
24,452✔
12728
    if (!pRet->pFuncs) code = terrno;
24,452!
12729
  }
12730
  if (pInfo->pTags && code == TSDB_CODE_SUCCESS) {
24,452!
12731
    pRet->pTags = taosArrayDup(pInfo->pTags, NULL);
24,452✔
12732
    if (!pRet->pTags) code = terrno;
24,452!
12733
  }
12734
  if (pInfo->pUsedCols && code == TSDB_CODE_SUCCESS) {
24,452!
12735
    pRet->pUsedCols = taosArrayDup(pInfo->pUsedCols, NULL);
24,452✔
12736
    if (!pRet->pUsedCols) code = terrno;
24,452!
12737
  }
12738
  if (pInfo->ast && code == TSDB_CODE_SUCCESS) {
24,452!
12739
    pRet->ast = taosStrdup(pInfo->ast);
24,452!
12740
    if (!pRet->ast) code = terrno;
24,452!
12741
  }
12742
  if (code) {
24,452!
12743
    tFreeAndClearTableTSMAInfo(pRet);
×
12744
    pRet = NULL;
×
12745
  }
12746
  *pRes = pRet;
24,452✔
12747
  return code;
24,452✔
12748
}
12749

12750
void tFreeTableTSMAInfoRsp(STableTSMAInfoRsp *pRsp) {
29,738✔
12751
  if (pRsp && pRsp->pTsmas) {
29,738!
12752
    taosArrayDestroyP(pRsp->pTsmas, tFreeAndClearTableTSMAInfo);
27,552✔
12753
  }
12754
}
29,738✔
12755

12756
static int32_t tEncodeStreamProgressReq(SEncoder *pEncoder, const SStreamProgressReq *pReq) {
9,444✔
12757
  int32_t code = 0;
9,444✔
12758
  int32_t lino;
12759

12760
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->streamId));
18,888!
12761
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->vgId));
18,888!
12762
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->fetchIdx));
18,888!
12763
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->subFetchIdx));
18,888!
12764

12765
_exit:
9,444✔
12766
  return code;
9,444✔
12767
}
12768

12769
int32_t tSerializeStreamProgressReq(void *buf, int32_t bufLen, const SStreamProgressReq *pReq) {
9,444✔
12770
  SEncoder encoder = {0};
9,444✔
12771
  int32_t  code = 0;
9,444✔
12772
  int32_t  lino;
12773
  int32_t  tlen;
12774
  tEncoderInit(&encoder, buf, bufLen);
9,444✔
12775

12776
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
9,444!
12777
  TAOS_CHECK_EXIT(tEncodeStreamProgressReq(&encoder, pReq));
9,444!
12778

12779
  tEndEncode(&encoder);
9,444✔
12780

12781
_exit:
9,444✔
12782
  if (code) {
9,444!
12783
    tlen = code;
×
12784
  } else {
12785
    tlen = encoder.pos;
9,444✔
12786
  }
12787
  tEncoderClear(&encoder);
9,444✔
12788
  return tlen;
9,444✔
12789
}
12790

12791
static int32_t tDecodeStreamProgressReq(SDecoder *pDecoder, SStreamProgressReq *pReq) {
5,934✔
12792
  int32_t code = 0;
5,934✔
12793
  int32_t lino;
12794

12795
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->streamId));
11,868!
12796
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgId));
11,867!
12797
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->fetchIdx));
11,866!
12798
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->subFetchIdx));
11,866!
12799

12800
_exit:
5,933✔
12801
  return code;
5,933✔
12802
}
12803

12804
int32_t tDeserializeStreamProgressReq(void *buf, int32_t bufLen, SStreamProgressReq *pReq) {
5,933✔
12805
  SDecoder decoder = {0};
5,933✔
12806
  int32_t  code = 0;
5,933✔
12807
  int32_t  lino;
12808

12809
  tDecoderInit(&decoder, (char *)buf, bufLen);
5,933✔
12810

12811
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5,933!
12812
  TAOS_CHECK_EXIT(tDecodeStreamProgressReq(&decoder, pReq));
5,934!
12813

12814
  tEndDecode(&decoder);
5,933✔
12815

12816
_exit:
5,933✔
12817
  tDecoderClear(&decoder);
5,933✔
12818
  return code;
5,934✔
12819
}
12820

12821
static int32_t tEncodeStreamProgressRsp(SEncoder *pEncoder, const SStreamProgressRsp *pRsp) {
11,864✔
12822
  int32_t code = 0;
11,864✔
12823
  int32_t lino;
12824

12825
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->streamId));
23,728!
12826
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
23,728!
12827
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->fillHisFinished));
23,728!
12828
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->progressDelay));
23,728!
12829
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->fetchIdx));
23,728!
12830
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->subFetchIdx));
23,728!
12831

12832
_exit:
11,864✔
12833
  return code;
11,864✔
12834
}
12835

12836
int32_t tSerializeStreamProgressRsp(void *buf, int32_t bufLen, const SStreamProgressRsp *pRsp) {
11,865✔
12837
  SEncoder encoder = {0};
11,865✔
12838
  int32_t  code = 0;
11,865✔
12839
  int32_t  lino;
12840
  int32_t  tlen;
12841
  tEncoderInit(&encoder, buf, bufLen);
11,865✔
12842

12843
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
11,865!
12844
  TAOS_CHECK_EXIT(tEncodeStreamProgressRsp(&encoder, pRsp));
11,864!
12845

12846
  tEndEncode(&encoder);
11,867✔
12847

12848
_exit:
11,867✔
12849
  if (code) {
11,867!
12850
    tlen = code;
×
12851
  } else {
12852
    tlen = encoder.pos;
11,867✔
12853
  }
12854
  tEncoderClear(&encoder);
11,867✔
12855
  return tlen;
11,865✔
12856
}
12857

12858
static int32_t tDecodeStreamProgressRsp(SDecoder *pDecoder, SStreamProgressRsp *pRsp) {
4,722✔
12859
  int32_t code = 0;
4,722✔
12860
  int32_t lino;
12861

12862
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->streamId));
9,444!
12863
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
9,444!
12864
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pRsp->fillHisFinished));
9,444!
12865
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->progressDelay));
9,444!
12866
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->fetchIdx));
9,444!
12867
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->subFetchIdx));
9,444!
12868

12869
_exit:
4,722✔
12870
  return code;
4,722✔
12871
}
12872

12873
int32_t tDeserializeSStreamProgressRsp(void *buf, int32_t bufLen, SStreamProgressRsp *pRsp) {
4,722✔
12874
  SDecoder decoder = {0};
4,722✔
12875
  int32_t  code = 0;
4,722✔
12876
  int32_t  lino;
12877

12878
  tDecoderInit(&decoder, buf, bufLen);
4,722✔
12879

12880
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4,722!
12881
  TAOS_CHECK_EXIT(tDecodeStreamProgressRsp(&decoder, pRsp));
4,722!
12882

12883
  tEndDecode(&decoder);
4,722✔
12884

12885
_exit:
4,722✔
12886
  tDecoderClear(&decoder);
4,722✔
12887
  return code;
4,722✔
12888
}
12889

12890
int32_t tEncodeSMDropTbReqOnSingleVg(SEncoder *pEncoder, const SMDropTbReqsOnSingleVg *pReq) {
48✔
12891
  const SVgroupInfo *pVgInfo = &pReq->vgInfo;
48✔
12892
  int32_t            code = 0;
48✔
12893
  int32_t            lino;
12894

12895
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->vgId));
96!
12896
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashBegin));
96!
12897
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashEnd));
96!
12898
  TAOS_CHECK_EXIT(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
48!
12899
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->numOfTable));
96!
12900
  int32_t size = pReq->pTbs ? pReq->pTbs->size : 0;
48!
12901
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
48!
12902
  for (int32_t i = 0; i < size; ++i) {
96✔
12903
    const SVDropTbReq *pInfo = taosArrayGet(pReq->pTbs, i);
48✔
12904
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pEncoder, pInfo));
48!
12905
  }
12906
_exit:
48✔
12907
  return code;
48✔
12908
}
12909

12910
int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder *pDecoder, SMDropTbReqsOnSingleVg *pReq) {
30✔
12911
  int32_t code = 0;
30✔
12912
  int32_t lino;
12913

12914
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.vgId));
60!
12915
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashBegin));
60!
12916
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashEnd));
60!
12917
  TAOS_CHECK_EXIT(tDecodeSEpSet(pDecoder, &pReq->vgInfo.epSet));
30!
12918
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.numOfTable));
60!
12919
  int32_t size = 0;
30✔
12920
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
30!
12921
  pReq->pTbs = taosArrayInit(size, sizeof(SVDropTbReq));
30✔
12922
  if (!pReq->pTbs) {
30!
12923
    TAOS_CHECK_EXIT(terrno);
×
12924
  }
12925
  SVDropTbReq pTbReq = {0};
30✔
12926
  for (int32_t i = 0; i < size; ++i) {
60✔
12927
    TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pDecoder, &pTbReq));
30!
12928
    if (taosArrayPush(pReq->pTbs, &pTbReq) == NULL) {
60!
12929
      TAOS_CHECK_EXIT(terrno);
×
12930
    }
12931
  }
12932

12933
_exit:
30✔
12934
  return code;
30✔
12935
}
12936

12937
void tFreeSMDropTbReqOnSingleVg(void *p) {
30✔
12938
  SMDropTbReqsOnSingleVg *pReq = p;
30✔
12939
  taosArrayDestroy(pReq->pTbs);
30✔
12940
}
30✔
12941

12942
int32_t tSerializeSMDropTbsReq(void *buf, int32_t bufLen, const SMDropTbsReq *pReq) {
40✔
12943
  SEncoder encoder = {0};
40✔
12944
  int32_t  code = 0;
40✔
12945
  int32_t  lino;
12946
  int32_t  tlen;
12947

12948
  tEncoderInit(&encoder, buf, bufLen);
40✔
12949
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
40!
12950
  int32_t size = pReq->pVgReqs ? pReq->pVgReqs->size : 0;
40!
12951
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
40!
12952
  for (int32_t i = 0; i < size; ++i) {
88✔
12953
    SMDropTbReqsOnSingleVg *pVgReq = taosArrayGet(pReq->pVgReqs, i);
48✔
12954
    TAOS_CHECK_EXIT(tEncodeSMDropTbReqOnSingleVg(&encoder, pVgReq));
48!
12955
  }
12956
  tEndEncode(&encoder);
40✔
12957

12958
_exit:
40✔
12959
  if (code) {
40!
12960
    tlen = code;
×
12961
  } else {
12962
    tlen = encoder.pos;
40✔
12963
  }
12964
  tEncoderClear(&encoder);
40✔
12965
  return tlen;
40✔
12966
}
12967

12968
int32_t tDeserializeSMDropTbsReq(void *buf, int32_t bufLen, SMDropTbsReq *pReq) {
25✔
12969
  SDecoder decoder = {0};
25✔
12970
  int32_t  code = 0;
25✔
12971
  int32_t  lino;
12972

12973
  tDecoderInit(&decoder, buf, bufLen);
25✔
12974
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
25!
12975
  int32_t size = 0;
25✔
12976
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
25!
12977
  pReq->pVgReqs = taosArrayInit(size, sizeof(SMDropTbReqsOnSingleVg));
25✔
12978
  if (!pReq->pVgReqs) {
25!
12979
    TAOS_CHECK_EXIT(terrno);
×
12980
  }
12981
  for (int32_t i = 0; i < size; ++i) {
55✔
12982
    SMDropTbReqsOnSingleVg vgReq = {0};
30✔
12983
    TAOS_CHECK_EXIT(tDecodeSMDropTbReqOnSingleVg(&decoder, &vgReq));
30!
12984
    if (taosArrayPush(pReq->pVgReqs, &vgReq) == NULL) {
60!
12985
      TAOS_CHECK_EXIT(terrno);
×
12986
    }
12987
  }
12988
  tEndDecode(&decoder);
25✔
12989
_exit:
25✔
12990
  tDecoderClear(&decoder);
25✔
12991
  return code;
25✔
12992
}
12993

12994
void tFreeSMDropTbsReq(void *p) {
25✔
12995
  SMDropTbsReq *pReq = p;
25✔
12996
  taosArrayDestroyEx(pReq->pVgReqs, tFreeSMDropTbReqOnSingleVg);
25✔
12997
}
25✔
12998

12999
int32_t tEncodeVFetchTtlExpiredTbsRsp(SEncoder *pCoder, const SVFetchTtlExpiredTbsRsp *pRsp) {
10✔
13000
  int32_t code = 0;
10✔
13001
  int32_t lino;
13002

13003
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pRsp->vgId));
20!
13004
  int32_t size = pRsp->pExpiredTbs ? pRsp->pExpiredTbs->size : 0;
10!
13005
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, size));
10!
13006
  for (int32_t i = 0; i < size; ++i) {
20✔
13007
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pCoder, taosArrayGet(pRsp->pExpiredTbs, i)));
10!
13008
  }
13009

13010
_exit:
10✔
13011
  return code;
10✔
13012
}
13013

13014
int32_t tDecodeVFetchTtlExpiredTbsRsp(SDecoder *pCoder, SVFetchTtlExpiredTbsRsp *pRsp) {
5✔
13015
  int32_t code = 0;
5✔
13016
  int32_t lino;
13017

13018
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pRsp->vgId));
10!
13019
  int32_t size = 0;
5✔
13020
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &size));
5!
13021
  if (size > 0) {
5!
13022
    pRsp->pExpiredTbs = taosArrayInit(size, sizeof(SVDropTbReq));
5✔
13023
    if (!pRsp->pExpiredTbs) {
5!
13024
      TAOS_CHECK_EXIT(terrno);
×
13025
    }
13026
    SVDropTbReq tb = {0};
5✔
13027
    for (int32_t i = 0; i < size; ++i) {
10✔
13028
      TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pCoder, &tb));
5!
13029
      if (taosArrayPush(pRsp->pExpiredTbs, &tb) == NULL) {
10!
13030
        TAOS_CHECK_EXIT(terrno);
×
13031
      }
13032
    }
13033
  }
13034
_exit:
×
13035
  return code;
5✔
13036
}
13037

13038
void tFreeFetchTtlExpiredTbsRsp(void *p) {
101,431✔
13039
  SVFetchTtlExpiredTbsRsp *pRsp = p;
101,431✔
13040
  taosArrayDestroy(pRsp->pExpiredTbs);
101,431✔
13041
}
101,431✔
13042

13043
int32_t tEncodeMqBatchMetaRsp(SEncoder *pEncoder, const SMqBatchMetaRsp *pRsp) {
36✔
13044
  int32_t code = 0;
36✔
13045
  int32_t lino;
13046

13047
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
36!
13048

13049
  int32_t size = taosArrayGetSize(pRsp->batchMetaReq);
36✔
13050
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
36!
13051
  if (size > 0) {
36!
13052
    for (int32_t i = 0; i < size; i++) {
302✔
13053
      void   *pMetaReq = taosArrayGetP(pRsp->batchMetaReq, i);
266✔
13054
      int32_t metaLen = *(int32_t *)taosArrayGet(pRsp->batchMetaLen, i);
266✔
13055
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pMetaReq, metaLen));
532!
13056
    }
13057
  }
13058
_exit:
36✔
13059
  return code;
36✔
13060
}
13061

13062
int32_t tDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
28✔
13063
  int32_t size = 0;
28✔
13064
  int32_t code = 0;
28✔
13065
  int32_t lino;
13066

13067
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
28!
13068
  if (size > 0) {
28!
13069
    pRsp->batchMetaReq = taosArrayInit(size, POINTER_BYTES);
28✔
13070
    if (!pRsp->batchMetaReq) {
28!
13071
      TAOS_CHECK_EXIT(terrno);
×
13072
    }
13073
    pRsp->batchMetaLen = taosArrayInit(size, sizeof(int32_t));
28✔
13074
    if (!pRsp->batchMetaLen) {
28!
13075
      TAOS_CHECK_EXIT(terrno);
×
13076
    }
13077
    for (int32_t i = 0; i < size; i++) {
286✔
13078
      void    *pCreate = NULL;
258✔
13079
      uint64_t len = 0;
258✔
13080
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
258!
13081
      int32_t l = (int32_t)len;
258✔
13082
      if (taosArrayPush(pRsp->batchMetaReq, &pCreate) == NULL) {
516!
13083
        TAOS_CHECK_EXIT(terrno);
×
13084
      }
13085
      if (taosArrayPush(pRsp->batchMetaLen, &l) == NULL) {
516!
13086
        TAOS_CHECK_EXIT(terrno);
×
13087
      }
13088
    }
13089
  }
13090
_exit:
28✔
13091
  return code;
28✔
13092
}
13093

13094
int32_t tSemiDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
19✔
13095
  int32_t code = 0;
19✔
13096
  int32_t lino;
13097

13098
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
19!
13099
  if (pDecoder->size < pDecoder->pos) {
19!
13100
    return TSDB_CODE_INVALID_PARA;
×
13101
  }
13102
  pRsp->metaBuffLen = TD_CODER_REMAIN_CAPACITY(pDecoder);
19✔
13103
  pRsp->pMetaBuff = taosMemoryCalloc(1, pRsp->metaBuffLen);
19!
13104
  if (pRsp->pMetaBuff == NULL) {
19!
13105
    TAOS_CHECK_EXIT(terrno);
×
13106
  }
13107
  memcpy(pRsp->pMetaBuff, TD_CODER_CURRENT(pDecoder), pRsp->metaBuffLen);
19✔
13108

13109
_exit:
19✔
13110
  return code;
19✔
13111
}
13112

13113
void tDeleteMqBatchMetaRsp(SMqBatchMetaRsp *pRsp) {
10,092✔
13114
  taosMemoryFreeClear(pRsp->pMetaBuff);
10,092!
13115
  taosArrayDestroyP(pRsp->batchMetaReq, NULL);
10,092✔
13116
  taosArrayDestroy(pRsp->batchMetaLen);
10,092✔
13117
  pRsp->batchMetaReq = NULL;
10,092✔
13118
  pRsp->batchMetaLen = NULL;
10,092✔
13119
}
10,092✔
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