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

taosdata / TDengine / #3676

22 Mar 2025 04:46PM UTC coverage: 25.147% (-36.8%) from 61.952%
#3676

push

travis-ci

web-flow
fix: userOperTest in linux (#30363)

Co-authored-by: taos-support <it@taosdata.com>

55963 of 304767 branches covered (18.36%)

Branch coverage included in aggregate %.

96374 of 301020 relevant lines covered (32.02%)

582640.8 hits per line

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

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

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

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

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

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

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

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

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

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

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

85
static int32_t tDeserializeSMonitorParas(SDecoder *decoder, SMonitorParas *pMonitorParas) {
187✔
86
  TAOS_CHECK_RETURN(tDecodeI8(decoder, (int8_t *)&pMonitorParas->tsEnableMonitor));
374!
87
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsMonitorInterval));
374!
88
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogScope));
374!
89
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogMaxLen));
374!
90
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThreshold));
374!
91
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pMonitorParas->tsSlowLogThresholdTest));  // Obsolete
374!
92
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pMonitorParas->tsSlowLogExceptDb));
187!
93
  return 0;
187✔
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) {
58,844✔
182
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->inUse));
117,688!
183
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pEp->numOfEps));
117,688!
184
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
353,064✔
185
    TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pEp->eps[i].port));
588,440!
186
    TAOS_CHECK_RETURN(tEncodeCStrWithLen(pEncoder, pEp->eps[i].fqdn, TSDB_FQDN_LEN));
588,440!
187
  }
188
  return 0;
58,844✔
189
}
190

191
int32_t tDecodeSEpSet(SDecoder *pDecoder, SEpSet *pEp) {
31,601✔
192
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->inUse));
63,202!
193
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pEp->numOfEps));
63,202!
194
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; i++) {
189,606✔
195
    TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pEp->eps[i].port));
316,010!
196
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pEp->eps[i].fqdn));
158,005!
197
  }
198
  return 0;
31,601✔
199
}
200

201
int32_t tEncodeSQueryNodeAddr(SEncoder *pEncoder, SQueryNodeAddr *pAddr) {
6✔
202
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pAddr->nodeId));
12!
203
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pAddr->epSet));
6!
204
  return 0;
6✔
205
}
206

207
int32_t tEncodeSQueryNodeLoad(SEncoder *pEncoder, SQueryNodeLoad *pLoad) {
6✔
208
  TAOS_CHECK_RETURN(tEncodeSQueryNodeAddr(pEncoder, &pLoad->addr));
6!
209
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pLoad->load));
12!
210
  return 0;
6✔
211
}
212

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

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

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

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

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

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

264
    int32_t queryNum = 0;
148✔
265
    if (pReq->query) {
148✔
266
      queryNum = 1;
134✔
267
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
134!
268
      TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->query->connId));
268!
269

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

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

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

298
  int32_t kvNum = taosHashGetSize(pReq->info);
150✔
299
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
150!
300
  void *pIter = taosHashIterate(pReq->info, NULL);
150✔
301
  while (pIter != NULL) {
336✔
302
    SKv *kv = pIter;
186✔
303
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
186!
304
    pIter = taosHashIterate(pReq->info, pIter);
186✔
305
  }
306
  TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pReq->userIp));
300!
307
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->userApp));
300!
308

309
  return 0;
150✔
310
}
311

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

315
  if (pReq->connKey.connType == CONN_TYPE__QUERY) {
1!
316
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.appId));
×
317
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReq->app.pid));
×
318
    TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->app.name));
×
319
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->app.startTime));
×
320
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertsReq));
×
321
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfInsertRows));
×
322
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertElapsedTime));
×
323
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.insertBytes));
×
324
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.fetchBytes));
×
325
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.queryElapsedTime));
×
326
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.numOfSlowQueries));
×
327
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.totalRequests));
×
328
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pReq->app.summary.currentRequests));
×
329

330
    int32_t queryNum = 0;
×
331
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
×
332
    if (queryNum) {
×
333
      pReq->query = taosMemoryCalloc(1, sizeof(*pReq->query));
×
334
      if (NULL == pReq->query) {
×
335
        return terrno;
×
336
      }
337
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pReq->query->connId));
×
338

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

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

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

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

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

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

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

410
  return 0;
1✔
411
}
412

413
static int32_t tSerializeSClientHbRsp(SEncoder *pEncoder, const SClientHbRsp *pRsp) {
×
414
  TAOS_CHECK_RETURN(tEncodeSClientHbKey(pEncoder, &pRsp->connKey));
×
415
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->status));
×
416

417
  int32_t queryNum = 0;
×
418
  if (pRsp->query) {
×
419
    queryNum = 1;
×
420
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
×
421
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pRsp->query->connId));
×
422
    TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->query->killRid));
×
423
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->totalDnodes));
×
424
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->query->onlineDnodes));
×
425
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->query->killConnection));
×
426
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pRsp->query->epSet));
×
427
    int32_t num = taosArrayGetSize(pRsp->query->pQnodeList);
×
428
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
×
429
    for (int32_t i = 0; i < num; ++i) {
×
430
      SQueryNodeLoad *pLoad = taosArrayGet(pRsp->query->pQnodeList, i);
×
431
      TAOS_CHECK_RETURN(tEncodeSQueryNodeLoad(pEncoder, pLoad));
×
432
    }
433
  } else {
434
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, queryNum));
×
435
  }
436

437
  int32_t kvNum = taosArrayGetSize(pRsp->info);
×
438
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, kvNum));
×
439
  for (int32_t i = 0; i < kvNum; i++) {
×
440
    SKv *kv = taosArrayGet(pRsp->info, i);
×
441
    TAOS_CHECK_RETURN(tEncodeSKv(pEncoder, kv));
×
442
  }
443

444
  return 0;
×
445
}
446

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

451
  int32_t queryNum = 0;
74✔
452
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &queryNum));
74!
453
  if (queryNum) {
74✔
454
    pRsp->query = taosMemoryCalloc(1, sizeof(*pRsp->query));
67!
455
    if (NULL == pRsp->query) {
67!
456
      return terrno;
×
457
    }
458
    TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pRsp->query->connId));
134!
459
    TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->query->killRid));
134!
460
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->totalDnodes));
134!
461
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->query->onlineDnodes));
134!
462
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->query->killConnection));
134!
463
    TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pRsp->query->epSet));
67!
464
    int32_t pQnodeNum = 0;
67✔
465
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pQnodeNum));
67!
466
    if (pQnodeNum > 0) {
67!
467
      pRsp->query->pQnodeList = taosArrayInit(pQnodeNum, sizeof(SQueryNodeLoad));
×
468
      if (NULL == pRsp->query->pQnodeList) return terrno;
×
469
      for (int32_t i = 0; i < pQnodeNum; ++i) {
×
470
        SQueryNodeLoad load = {0};
×
471
        TAOS_CHECK_RETURN(tDecodeSQueryNodeLoad(pDecoder, &load));
×
472
        if (!taosArrayPush(pRsp->query->pQnodeList, &load)) return terrno;
×
473
      }
474
    }
475
  }
476

477
  int32_t kvNum = 0;
74✔
478
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &kvNum));
74!
479
  pRsp->info = taosArrayInit(kvNum, sizeof(SKv));
74✔
480
  if (pRsp->info == NULL) {
74!
481
    return terrno;
×
482
  }
483
  for (int32_t i = 0; i < kvNum; i++) {
125✔
484
    SKv kv = {0};
51✔
485
    TAOS_CHECK_RETURN(tDecodeSKv(pDecoder, &kv));
51!
486
    if (!taosArrayPush(pRsp->info, &kv)) return terrno;
102!
487
  }
488

489
  return 0;
74✔
490
}
491

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

499
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
154!
500
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->reqId));
308!
501

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

509
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchReq->ipWhiteList));
308!
510
  tEndEncode(&encoder);
154✔
511

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

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

528
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
529
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->reqId));
2!
530

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

547
  if (!tDecodeIsEnd(&decoder)) {
1!
548
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchReq->ipWhiteList));
2!
549
  }
550

551
  tEndDecode(&decoder);
1✔
552

553
_exit:
1✔
554
  tDecoderClear(&decoder);
1✔
555
  return code;
1✔
556
}
557

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

565
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
566
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->reqId));
4!
567
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pBatchRsp->rspId));
4!
568
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pBatchRsp->svrTimestamp));
4!
569

570
  int32_t rspNum = taosArrayGetSize(pBatchRsp->rsps);
2✔
571
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, rspNum));
2!
572
  for (int32_t i = 0; i < rspNum; i++) {
2!
573
    SClientHbRsp *pRsp = taosArrayGet(pBatchRsp->rsps, i);
×
574
    TAOS_CHECK_EXIT(tSerializeSClientHbRsp(&encoder, pRsp));
×
575
  }
576
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pBatchRsp->monitorParas));
2!
577
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableAuditDelete));
4!
578
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pBatchRsp->enableStrongPass));
4!
579
  tEndEncode(&encoder);
2✔
580

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

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

597
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
77!
598
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->reqId));
154!
599
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pBatchRsp->rspId));
154!
600
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pBatchRsp->svrTimestamp));
154!
601

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

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

621
  if (!tDecodeIsEnd(&decoder)) {
77!
622
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pBatchRsp->enableAuditDelete));
154!
623
  } else {
624
    pBatchRsp->enableAuditDelete = 0;
×
625
  }
626

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

633
  tEndDecode(&decoder);
77✔
634

635
_exit:
77✔
636
  tDecoderClear(&decoder);
77✔
637
  return code;
77✔
638
}
639

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

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

669
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
732✔
670
    SFieldWithOptions *pField = taosArrayGet(pReq->pColumns, i);
610✔
671
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
1,220!
672
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
1,220!
673
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
1,220!
674
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
1,220!
675
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
1,220!
676
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->typeMod));
1,220!
677
  }
678

679
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
696✔
680
    SField *pField = taosArrayGet(pReq->pTags, i);
574✔
681
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
1,148!
682
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
1,148!
683
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
1,148!
684
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
1,148!
685
  }
686

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

692
  if (pReq->commentLen > 0) {
122✔
693
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
32!
694
  }
695
  if (pReq->ast1Len > 0) {
122!
696
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst1, pReq->ast1Len));
×
697
  }
698
  if (pReq->ast2Len > 0) {
122!
699
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pAst2, pReq->ast2Len));
×
700
  }
701
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark1));
244!
702
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark2));
244!
703
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->keep));
244!
704

705
  ENCODESQL();
344!
706

707
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->virtualStb));
244!
708

709
  tEndEncode(&encoder);
122✔
710

711
_exit:
122✔
712
  if (code) {
122!
713
    tlen = code;
×
714
  } else {
715
    tlen = encoder.pos;
122✔
716
  }
717
  tEncoderClear(&encoder);
122✔
718
  return tlen;
122✔
719
}
720

721
int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq) {
15✔
722
  SDecoder decoder = {0};
15✔
723
  int32_t  code = 0;
15✔
724
  int32_t  lino;
725
  tDecoderInit(&decoder, buf, bufLen);
15✔
726

727
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
15!
728
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
15!
729
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
30!
730
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
30!
731
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
105✔
732
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
180!
733
  }
734
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
30!
735
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay1));
30!
736
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->delay2));
30!
737
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark1));
30!
738
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark2));
30!
739
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
30!
740
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->colVer));
30!
741
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagVer));
30!
742
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfColumns));
30!
743
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
30!
744
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
30!
745
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
30!
746
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast1Len));
30!
747
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ast2Len));
30!
748

749
  if ((pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SFieldWithOptions))) == NULL) {
15!
750
    TAOS_CHECK_EXIT(terrno);
×
751
  }
752
  if ((pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField))) == NULL) {
15!
753
    TAOS_CHECK_EXIT(terrno);
×
754
  }
755
  if ((pReq->pFuncs = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN)) == NULL) {
15!
756
    TAOS_CHECK_EXIT(terrno);
×
757
  }
758

759
  for (int32_t i = 0; i < pReq->numOfColumns; ++i) {
73✔
760
    SFieldWithOptions field = {0};
58✔
761
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
58!
762
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
58!
763
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
58!
764
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
58!
765
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
58!
766
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.typeMod));
58!
767
    if (taosArrayPush(pReq->pColumns, &field) == NULL) {
116!
768
      TAOS_CHECK_EXIT(terrno);
×
769
    }
770
  }
771

772
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
77✔
773
    SField field = {0};
62✔
774
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
62!
775
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
62!
776
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
62!
777
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
62!
778
    if (taosArrayPush(pReq->pTags, &field) == NULL) {
124!
779
      TAOS_CHECK_EXIT(terrno);
×
780
    }
781
  }
782

783
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
17✔
784
    char pFunc[TSDB_FUNC_NAME_LEN] = {0};
2✔
785
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
2!
786
    if (taosArrayPush(pReq->pFuncs, pFunc) == NULL) {
4!
787
      TAOS_CHECK_EXIT(terrno);
×
788
    }
789
  }
790

791
  if (pReq->commentLen > 0) {
15✔
792
    pReq->pComment = taosMemoryMalloc(pReq->commentLen + 1);
2!
793
    if (pReq->pComment == NULL) {
2!
794
      TAOS_CHECK_EXIT(terrno);
×
795
    }
796
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
2!
797
  }
798

799
  if (pReq->ast1Len > 0) {
15!
800
    pReq->pAst1 = taosMemoryMalloc(pReq->ast1Len);
×
801
    if (pReq->pAst1 == NULL) {
×
802
      TAOS_CHECK_EXIT(terrno);
×
803
    }
804
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst1));
×
805
  }
806

807
  if (pReq->ast2Len > 0) {
15!
808
    pReq->pAst2 = taosMemoryMalloc(pReq->ast2Len);
×
809
    if (pReq->pAst2 == NULL) {
×
810
      TAOS_CHECK_EXIT(terrno);
×
811
    }
812
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pAst2));
×
813
  }
814

815
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark1));
30!
816
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark2));
30!
817
  if (!tDecodeIsEnd(&decoder)) {
15!
818
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->keep));
30!
819
  }
820

821
  DECODESQL();
34!
822

823
  if (!tDecodeIsEnd(&decoder)) {
15!
824
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->virtualStb));
30!
825
  } else {
826
    pReq->virtualStb = 0;
×
827
  }
828

829
  tEndDecode(&decoder);
15✔
830

831
_exit:
15✔
832
  tDecoderClear(&decoder);
15✔
833
  return code;
15✔
834
}
835

836
void tFreeSMCreateStbReq(SMCreateStbReq *pReq) {
94✔
837
  taosArrayDestroy(pReq->pColumns);
94✔
838
  taosArrayDestroy(pReq->pTags);
94✔
839
  taosArrayDestroy(pReq->pFuncs);
94✔
840
  taosMemoryFreeClear(pReq->pComment);
94!
841
  taosMemoryFreeClear(pReq->pAst1);
94!
842
  taosMemoryFreeClear(pReq->pAst2);
94!
843
  FREESQL();
94!
844
}
94✔
845

846
int32_t tSerializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
14✔
847
  SEncoder encoder = {0};
14✔
848
  int32_t  code = 0;
14✔
849
  int32_t  lino;
850
  int32_t  tlen;
851
  tEncoderInit(&encoder, buf, bufLen);
14✔
852

853
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
14!
854
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
28!
855
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
28!
856
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
28!
857
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
98✔
858
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->reserved[i]));
168!
859
  }
860
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
28!
861
  ENCODESQL();
36!
862
  tEndEncode(&encoder);
14✔
863

864
_exit:
14✔
865
  if (code) {
14!
866
    tlen = code;
×
867
  } else {
868
    tlen = encoder.pos;
14✔
869
  }
870
  tEncoderClear(&encoder);
14✔
871
  return tlen;
14✔
872
}
873

874
int32_t tDeserializeSMDropStbReq(void *buf, int32_t bufLen, SMDropStbReq *pReq) {
3✔
875
  SDecoder decoder = {0};
3✔
876
  int32_t  code = 0;
3✔
877
  int32_t  lino;
878
  tDecoderInit(&decoder, buf, bufLen);
3✔
879

880
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
881
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
3!
882
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
6!
883
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
6!
884
  for (int32_t i = 0; i < sizeof(pReq->reserved) / sizeof(int8_t); ++i) {
21✔
885
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->reserved[i]));
36!
886
  }
887
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
6!
888

889
  DECODESQL();
6!
890

891
  tEndDecode(&decoder);
3✔
892

893
_exit:
3✔
894
  tDecoderClear(&decoder);
3✔
895
  return code;
3✔
896
}
897

898
void tFreeSMDropStbReq(SMDropStbReq *pReq) { FREESQL(); }
7!
899

900
int32_t tSerializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
162✔
901
  SEncoder encoder = {0};
162✔
902
  int32_t  code = 0;
162✔
903
  int32_t  lino;
904
  int32_t  tlen;
905
  tEncoderInit(&encoder, buf, bufLen);
162✔
906

907
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
162!
908
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
324!
909
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
324!
910
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFields));
324!
911

912
  // if (pReq->alterType == )
913
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
344✔
914
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
182!
915
      SFieldWithOptions *pField = taosArrayGet(pReq->pFields, i);
×
916
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
×
917
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
×
918
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
×
919
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pField->compress));
×
920

921
    } else {
922
      SField *pField = taosArrayGet(pReq->pFields, i);
182✔
923
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
364!
924
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
364!
925
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
364!
926
    }
927
  }
928
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttl));
324!
929
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->commentLen));
324!
930
  if (pReq->commentLen > 0) {
162✔
931
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->comment));
16!
932
  }
933
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->keep));
324!
934
  ENCODESQL();
420!
935
  if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN ||
162✔
936
      pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
142!
937
    if (taosArrayGetSize(pReq->pTypeMods) > 0) {
20✔
938
      int8_t hasTypeMod = 1;
8✔
939
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, hasTypeMod));
16!
940
      for (int32_t i = 0; i < pReq->pTypeMods->size; ++i) {
16✔
941
        const STypeMod *pTypeMod = taosArrayGet(pReq->pTypeMods, i);
8✔
942
        TAOS_CHECK_ERRNO(tEncodeI32(&encoder, *pTypeMod));
16!
943
      }
944
    } else {
945
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, 0));
12!
946
    }
947
  }
948
  tEndEncode(&encoder);
162✔
949

950
_exit:
162✔
951
  if (code) {
162!
952
    tlen = code;
×
953
  } else {
954
    tlen = encoder.pos;
162✔
955
  }
956
  tEncoderClear(&encoder);
162✔
957
  return tlen;
162✔
958
}
959

960
int32_t tDeserializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq) {
57✔
961
  SDecoder decoder = {0};
57✔
962
  int32_t  code = 0;
57✔
963
  int32_t  lino;
964
  tDecoderInit(&decoder, buf, bufLen);
57✔
965

966
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
57!
967
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
57!
968
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
114!
969
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFields));
114!
970
  pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SField));
57✔
971
  if (pReq->pFields == NULL) {
57!
972
    TAOS_CHECK_EXIT(terrno);
×
973
  }
974

975
  for (int32_t i = 0; i < pReq->numOfFields; ++i) {
122✔
976
    if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
65!
977
      taosArrayDestroy(pReq->pFields);
×
978
      if ((pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SFieldWithOptions))) == NULL) {
×
979
        TAOS_CHECK_EXIT(terrno);
×
980
      }
981
      SFieldWithOptions field = {0};
×
982
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
×
983
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
×
984
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
×
985
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &field.compress));
×
986
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
×
987
        TAOS_CHECK_EXIT(terrno);
×
988
      }
989
    } else {
990
      SField field = {0};
65✔
991
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
65!
992
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
65!
993
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
65!
994
      if (taosArrayPush(pReq->pFields, &field) == NULL) {
130!
995
        TAOS_CHECK_EXIT(terrno);
×
996
      }
997
    }
998
  }
999

1000
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttl));
114!
1001
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->commentLen));
114!
1002
  if (pReq->commentLen > 0) {
57✔
1003
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
2!
1004
    if (pReq->comment == NULL) {
2!
1005
      TAOS_CHECK_EXIT(terrno);
×
1006
    }
1007
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->comment));
2!
1008
  }
1009
  if (!tDecodeIsEnd(&decoder)) {
57!
1010
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->keep));
114!
1011
  }
1012
  DECODESQL();
138!
1013
  if (!tDecodeIsEnd(&decoder) && (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN ||
57!
1014
                                  pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION)) {
×
1015
    int8_t hasTypeMod = 0;
8✔
1016
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &hasTypeMod));
8!
1017
    if (hasTypeMod == 1) {
8✔
1018
      pReq->pTypeMods = taosArrayInit(pReq->numOfFields, sizeof(STypeMod));
2✔
1019
      if (!pReq->pTypeMods) {
2!
1020
        TAOS_CHECK_EXIT(terrno);
×
1021
      }
1022
      for (int32_t i = 0; i < pReq->numOfFields; ++i) {
4✔
1023
        STypeMod typeMod = 0;
2✔
1024
        TAOS_CHECK_EXIT(tDecodeI32(&decoder, &typeMod));
2!
1025
        if (taosArrayPush(pReq->pTypeMods, &typeMod) == NULL) {
4!
1026
          TAOS_CHECK_EXIT(terrno);
×
1027
        }
1028
      }
1029
    }
1030
  }
1031
  tEndDecode(&decoder);
57✔
1032

1033
_exit:
57✔
1034
  tDecoderClear(&decoder);
57✔
1035
  return code;
57✔
1036
}
1037

1038
void tFreeSMAltertbReq(SMAlterStbReq *pReq) {
137✔
1039
  taosArrayDestroy(pReq->pFields);
137✔
1040
  pReq->pFields = NULL;
137✔
1041
  taosMemoryFreeClear(pReq->comment);
137!
1042
  FREESQL();
137!
1043
  taosArrayDestroy(pReq->pTypeMods);
137✔
1044
}
137✔
1045

1046
int32_t tSerializeSEpSet(void *buf, int32_t bufLen, const SEpSet *pEpset) {
×
1047
  SEncoder encoder = {0};
×
1048
  int32_t  code = 0;
×
1049
  int32_t  lino;
1050
  int32_t  tlen;
1051
  tEncoderInit(&encoder, buf, bufLen);
×
1052

1053
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1054
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpset));
×
1055

1056
  tEndEncode(&encoder);
×
1057

1058
_exit:
×
1059
  if (code) {
×
1060
    tlen = code;
×
1061
  } else {
1062
    tlen = encoder.pos;
×
1063
  }
1064
  tEncoderClear(&encoder);
×
1065
  return tlen;
×
1066
}
1067

1068
int32_t tDeserializeSEpSet(void *buf, int32_t bufLen, SEpSet *pEpset) {
×
1069
  SDecoder decoder = {0};
×
1070
  int32_t  code = 0;
×
1071
  int32_t  lino;
1072

1073
  tDecoderInit(&decoder, buf, bufLen);
×
1074

1075
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1076
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, pEpset));
×
1077

1078
  tEndDecode(&decoder);
×
1079
_exit:
×
1080
  tDecoderClear(&decoder);
×
1081
  return code;
×
1082
}
1083

1084
int32_t tSerializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
10✔
1085
  SEncoder encoder = {0};
10✔
1086
  int32_t  code = 0;
10✔
1087
  int32_t  lino;
1088
  int32_t  tlen;
1089
  tEncoderInit(&encoder, buf, bufLen);
10✔
1090

1091
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
1092
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
20!
1093
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
20!
1094
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
20!
1095
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->intervalUnit));
20!
1096
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->slidingUnit));
20!
1097
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->timezone));
20!
1098
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
20!
1099
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->interval));
20!
1100
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->offset));
20!
1101
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->sliding));
20!
1102
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark));
20!
1103
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->maxDelay));
20!
1104
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->exprLen));
20!
1105
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tagsFilterLen));
20!
1106
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
20!
1107
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->astLen));
20!
1108
  if (pReq->exprLen > 0) {
10!
1109
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->expr, pReq->exprLen));
20!
1110
  }
1111
  if (pReq->tagsFilterLen > 0) {
10!
1112
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->tagsFilter, pReq->tagsFilterLen));
×
1113
  }
1114
  if (pReq->sqlLen > 0) {
10!
1115
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->sql, pReq->sqlLen));
20!
1116
  }
1117
  if (pReq->astLen > 0) {
10!
1118
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->ast, pReq->astLen));
20!
1119
  }
1120
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark));
20!
1121
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastTs));
20!
1122
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->normSourceTbUid));
20!
1123
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->pVgroupVerList)));
20!
1124

1125
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
10!
1126
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
×
1127
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
×
1128
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
×
1129
  }
1130
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->recursiveTsma));
20!
1131
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->baseTsmaName));
20!
1132
  tEndEncode(&encoder);
10✔
1133

1134
_exit:
10✔
1135
  if (code) {
10!
1136
    tlen = code;
×
1137
  } else {
1138
    tlen = encoder.pos;
10✔
1139
  }
1140
  tEncoderClear(&encoder);
10✔
1141
  return tlen;
10✔
1142
}
1143

1144
int32_t tDeserializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pReq) {
5✔
1145
  SDecoder decoder = {0};
5✔
1146
  int32_t  code = 0;
5✔
1147
  int32_t  lino;
1148
  tDecoderInit(&decoder, buf, bufLen);
5✔
1149

1150
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5!
1151
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
5!
1152
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
5!
1153
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
10!
1154
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->intervalUnit));
10!
1155
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->slidingUnit));
10!
1156
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->timezone));
10!
1157
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
10!
1158
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->interval));
10!
1159
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->offset));
10!
1160
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->sliding));
10!
1161
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
10!
1162
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
10!
1163
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->exprLen));
10!
1164
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tagsFilterLen));
10!
1165
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
10!
1166
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->astLen));
10!
1167
  if (pReq->exprLen > 0) {
5!
1168
    pReq->expr = taosMemoryMalloc(pReq->exprLen);
5!
1169
    if (pReq->expr == NULL) {
5!
1170
      TAOS_CHECK_EXIT(terrno);
×
1171
    }
1172
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->expr));
5!
1173
  }
1174
  if (pReq->tagsFilterLen > 0) {
5!
1175
    pReq->tagsFilter = taosMemoryMalloc(pReq->tagsFilterLen);
×
1176
    if (pReq->tagsFilter == NULL) {
×
1177
      TAOS_CHECK_EXIT(terrno);
×
1178
    }
1179
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tagsFilter));
×
1180
  }
1181
  if (pReq->sqlLen > 0) {
5!
1182
    pReq->sql = taosMemoryMalloc(pReq->sqlLen);
5!
1183
    if (pReq->sql == NULL) {
5!
1184
      TAOS_CHECK_EXIT(terrno);
×
1185
    }
1186
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
5!
1187
  }
1188
  if (pReq->astLen > 0) {
5!
1189
    pReq->ast = taosMemoryMalloc(pReq->astLen);
5!
1190
    if (pReq->ast == NULL) {
5!
1191
      TAOS_CHECK_EXIT(terrno);
×
1192
    }
1193
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
5!
1194
  }
1195
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
10!
1196
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
10!
1197
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->normSourceTbUid));
10!
1198

1199
  int32_t numOfVgVer;
1200
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
5!
1201
  if (numOfVgVer > 0) {
5!
1202
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
×
1203
    if (pReq->pVgroupVerList == NULL) {
×
1204
      TAOS_CHECK_EXIT(terrno);
×
1205
    }
1206

1207
    for (int32_t i = 0; i < numOfVgVer; ++i) {
×
1208
      SVgroupVer v = {0};
×
1209
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
×
1210
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
×
1211
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
×
1212
        TAOS_CHECK_EXIT(terrno);
×
1213
      }
1214
    }
1215
  }
1216
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->recursiveTsma));
10!
1217
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->baseTsmaName));
5!
1218
  tEndDecode(&decoder);
5✔
1219

1220
_exit:
5✔
1221
  tDecoderClear(&decoder);
5✔
1222
  return code;
5✔
1223
}
1224

1225
void tFreeSMCreateSmaReq(SMCreateSmaReq *pReq) {
14✔
1226
  taosMemoryFreeClear(pReq->expr);
14!
1227
  taosMemoryFreeClear(pReq->tagsFilter);
14!
1228
  taosMemoryFreeClear(pReq->sql);
14!
1229
  taosMemoryFreeClear(pReq->ast);
14!
1230
  taosArrayDestroy(pReq->pVgroupVerList);
14✔
1231
}
14✔
1232

1233
int32_t tSerializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
16✔
1234
  SEncoder encoder = {0};
16✔
1235
  int32_t  code = 0;
16✔
1236
  int32_t  lino;
1237
  int32_t  tlen;
1238
  tEncoderInit(&encoder, buf, bufLen);
16✔
1239

1240
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
1241
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
32!
1242
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
32!
1243

1244
  tEndEncode(&encoder);
16✔
1245

1246
_exit:
16✔
1247
  if (code) {
16!
1248
    tlen = code;
×
1249
  } else {
1250
    tlen = encoder.pos;
16✔
1251
  }
1252
  tEncoderClear(&encoder);
16✔
1253
  return tlen;
16✔
1254
}
1255

1256
int32_t tDeserializeSMDropSmaReq(void *buf, int32_t bufLen, SMDropSmaReq *pReq) {
4✔
1257
  SDecoder decoder = {0};
4✔
1258
  int32_t  code = 0;
4✔
1259
  int32_t  lino;
1260
  tDecoderInit(&decoder, buf, bufLen);
4✔
1261

1262
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
1263
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
4!
1264
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
8!
1265
  tEndDecode(&decoder);
4✔
1266

1267
_exit:
4✔
1268
  tDecoderClear(&decoder);
4✔
1269
  return code;
4✔
1270
}
1271

1272
int32_t tSerializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
×
1273
  SEncoder encoder = {0};
×
1274
  int32_t  code = 0;
×
1275
  int32_t  lino;
1276
  int32_t  tlen;
1277
  tEncoderInit(&encoder, buf, bufLen);
×
1278

1279
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1280
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
×
1281
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stbName));
×
1282
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
×
1283
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->idxName));
×
1284
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->idxType));
×
1285

1286
  tEndEncode(&encoder);
×
1287

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 tDeserializeSCreateTagIdxReq(void *buf, int32_t bufLen, SCreateTagIndexReq *pReq) {
×
1299
  SDecoder decoder = {0};
×
1300
  int32_t  code = 0;
×
1301
  int32_t  lino;
1302
  tDecoderInit(&decoder, buf, bufLen);
×
1303

1304
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1305
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
×
1306
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stbName));
×
1307
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
×
1308
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->idxName));
×
1309
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->idxType));
×
1310

1311
  tEndDecode(&decoder);
×
1312
_exit:
×
1313
  tDecoderClear(&decoder);
×
1314
  return code;
×
1315
}
1316

1317
int32_t tDeserializeSDropTagIdxReq(void *buf, int32_t bufLen, SDropTagIndexReq *pReq) {
×
1318
  SDecoder decoder = {0};
×
1319
  int32_t  code = 0;
×
1320
  int32_t  lino;
1321
  tDecoderInit(&decoder, buf, bufLen);
×
1322

1323
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1324
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
1325
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
×
1326

1327
  tEndDecode(&decoder);
×
1328
_exit:
×
1329
  tDecoderClear(&decoder);
×
1330
  return code;
×
1331
}
1332

1333
int32_t tSerializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1334
  SEncoder encoder = {0};
×
1335
  int32_t  code = 0;
×
1336
  int32_t  lino;
1337
  int32_t  tlen;
1338
  tEncoderInit(&encoder, buf, bufLen);
×
1339

1340
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1341

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

1353
int32_t tDeserializeSMCreateFullTextReq(void *buf, int32_t bufLen, SMCreateFullTextReq *pReq) {
×
1354
  SDecoder decoder = {0};
×
1355
  int32_t  code = 0;
×
1356
  int32_t  lino;
1357
  tDecoderInit(&decoder, buf, bufLen);
×
1358
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1359
  tEndDecode(&decoder);
×
1360
_exit:
×
1361
  tDecoderClear(&decoder);
×
1362
  return code;
×
1363
}
1364
void tFreeSMCreateFullTextReq(SMCreateFullTextReq *pReq) {
×
1365
  // impl later
1366
  return;
×
1367
}
1368

1369
int32_t tSerializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1370
  SEncoder encoder = {0};
×
1371
  int32_t  code = 0;
×
1372
  int32_t  lino;
1373
  int32_t  tlen;
1374
  tEncoderInit(&encoder, buf, bufLen);
×
1375

1376
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
1377
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
1378
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
×
1379

1380
  int32_t nVgroup = taosArrayGetSize(pReq->pVloads);
×
1381
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, nVgroup));
×
1382
  for (int32_t i = 0; i < nVgroup; ++i) {
×
1383
    SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1384
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, vload->vgId));
×
1385
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, vload->nTimeSeries));
×
1386
  }
1387

1388
  tEndEncode(&encoder);
×
1389

1390
_exit:
×
1391
  if (code) {
×
1392
    tlen = code;
×
1393
  } else {
1394
    tlen = encoder.pos;
×
1395
  }
1396
  tEncoderClear(&encoder);
×
1397
  return tlen;
×
1398
}
1399

1400
int32_t tDeserializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) {
×
1401
  int32_t  code = 0;
×
1402
  int32_t  lino;
1403
  SDecoder decoder = {0};
×
1404
  tDecoderInit(&decoder, buf, bufLen);
×
1405

1406
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1407
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
1408
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
×
1409
  int32_t nVgroup = 0;
×
1410
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nVgroup));
×
1411
  if (nVgroup > 0) {
×
1412
    pReq->pVloads = taosArrayInit_s(sizeof(SVnodeLoadLite), nVgroup);
×
1413
    if (!pReq->pVloads) {
×
1414
      TAOS_CHECK_EXIT(terrno);
×
1415
    }
1416
    for (int32_t i = 0; i < nVgroup; ++i) {
×
1417
      SVnodeLoadLite *vload = TARRAY_GET_ELEM(pReq->pVloads, i);
×
1418
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &(vload->vgId)));
×
1419
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &(vload->nTimeSeries)));
×
1420
    }
1421
  }
1422

1423
  tEndDecode(&decoder);
×
1424

1425
_exit:
×
1426
  tDecoderClear(&decoder);
×
1427
  return code;
×
1428
}
1429

1430
void tFreeSNotifyReq(SNotifyReq *pReq) {
×
1431
  if (pReq) {
×
1432
    taosArrayDestroy(pReq->pVloads);
×
1433
  }
1434
}
×
1435

1436
int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
38✔
1437
  SEncoder encoder = {0};
38✔
1438
  int32_t  code = 0;
38✔
1439
  int32_t  lino;
1440
  int32_t  tlen;
1441
  tEncoderInit(&encoder, buf, bufLen);
38✔
1442

1443
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
38!
1444

1445
  // status
1446
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sver));
76!
1447
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dnodeVer));
76!
1448
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
76!
1449
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterId));
76!
1450
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->rebootTime));
76!
1451
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->updateTime));
76!
1452
  TAOS_CHECK_EXIT(tEncodeFloat(&encoder, pReq->numOfCores));
76!
1453
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfSupportVnodes));
76!
1454
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->numOfDiskCfg));
76!
1455
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memTotal));
76!
1456
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->memAvail));
76!
1457
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeEp));
76!
1458
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
76!
1459

1460
  // cluster cfg
1461
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->clusterCfg.statusInterval));
76!
1462
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->clusterCfg.checkTime));
76!
1463
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.timezone));
76!
1464
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.locale));
76!
1465
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->clusterCfg.charset));
76!
1466
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.enableWhiteList));
76!
1467
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.encryptionKeyStat));
76!
1468
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->clusterCfg.encryptionKeyChksum));
76!
1469

1470
  // vnode loads
1471
  int32_t vlen = (int32_t)taosArrayGetSize(pReq->pVloads);
38✔
1472
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, vlen));
38!
1473
  for (int32_t i = 0; i < vlen; ++i) {
46✔
1474
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
8✔
1475
    int64_t     reserved = 0;
8✔
1476
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->vgId));
16!
1477
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncState));
16!
1478
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncRestore));
16!
1479
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pload->syncCanRead));
16!
1480
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->cacheUsage));
16!
1481
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTables));
16!
1482
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->numOfTimeSeries));
16!
1483
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->totalStorage));
16!
1484
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->compStorage));
16!
1485
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->pointsWritten));
16!
1486
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->numOfCachedTables));
16!
1487
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pload->learnerProgress));
16!
1488
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->roleTimeMs));
16!
1489
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->startTimeMs));
16!
1490
  }
1491

1492
  // mnode loads
1493
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncState));
76!
1494
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->mload.syncRestore));
76!
1495

1496
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->qload.dnodeId));
76!
1497
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedQuery));
76!
1498
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedCQuery));
76!
1499
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedFetch));
76!
1500
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDrop));
76!
1501
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedNotify));
76!
1502
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedHb));
76!
1503
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfProcessedDelete));
76!
1504
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.cacheDataSize));
76!
1505
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfQueryInQueue));
76!
1506
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.numOfFetchInQueue));
76!
1507
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInQueryQueue));
76!
1508
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->qload.timeInFetchQueue));
76!
1509

1510
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->statusSeq));
76!
1511
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.syncTerm));
76!
1512
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->mload.roleTimeMs));
76!
1513
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->clusterCfg.ttlChangeOnWrite));
76!
1514

1515
  // vnode extra
1516
  for (int32_t i = 0; i < vlen; ++i) {
46✔
1517
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
8✔
1518
    int64_t     reserved = 0;
8✔
1519
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncTerm));
16!
1520
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
8!
1521
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
8!
1522
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, reserved));
8!
1523
  }
1524

1525
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
76!
1526
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
76!
1527
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pReq->clusterCfg.monitorParas));
38!
1528

1529
  for (int32_t i = 0; i < vlen; ++i) {
46✔
1530
    SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
8✔
1531
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncAppliedIndex));
16!
1532
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pload->syncCommitIndex));
16!
1533
  }
1534
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
76!
1535

1536
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timestamp));
76!
1537

1538
  tEndEncode(&encoder);
38✔
1539

1540
_exit:
38✔
1541
  if (code) {
38!
1542
    tlen = code;
×
1543
  } else {
1544
    tlen = encoder.pos;
38✔
1545
  }
1546
  tEncoderClear(&encoder);
38✔
1547
  return tlen;
38✔
1548
}
1549

1550
int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
19✔
1551
  SDecoder decoder = {0};
19✔
1552
  int32_t  code = 0;
19✔
1553
  int32_t  lino;
1554
  tDecoderInit(&decoder, buf, bufLen);
19✔
1555

1556
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
19!
1557

1558
  // status
1559
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sver));
38!
1560
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dnodeVer));
38!
1561
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
38!
1562
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterId));
38!
1563
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->rebootTime));
38!
1564
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->updateTime));
38!
1565
  TAOS_CHECK_EXIT(tDecodeFloat(&decoder, &pReq->numOfCores));
38!
1566
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfSupportVnodes));
38!
1567
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->numOfDiskCfg));
38!
1568
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memTotal));
38!
1569
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->memAvail));
38!
1570
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeEp));
19!
1571
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
19!
1572

1573
  // cluster cfg
1574
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->clusterCfg.statusInterval));
38!
1575
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->clusterCfg.checkTime));
38!
1576
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.timezone));
19!
1577
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.locale));
19!
1578
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->clusterCfg.charset));
19!
1579
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.enableWhiteList));
38!
1580
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.encryptionKeyStat));
38!
1581
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->clusterCfg.encryptionKeyChksum));
38!
1582

1583
  // vnode loads
1584
  int32_t vlen = 0;
19✔
1585
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vlen));
19!
1586
  pReq->pVloads = taosArrayInit(vlen, sizeof(SVnodeLoad));
19✔
1587
  if (pReq->pVloads == NULL) {
19!
1588
    TAOS_CHECK_EXIT(terrno);
×
1589
  }
1590

1591
  for (int32_t i = 0; i < vlen; ++i) {
23✔
1592
    SVnodeLoad vload = {0};
4✔
1593
    vload.syncTerm = -1;
4✔
1594

1595
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.vgId));
4!
1596
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncState));
4!
1597
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncRestore));
4!
1598
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &vload.syncCanRead));
4!
1599
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.cacheUsage));
4!
1600
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTables));
4!
1601
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.numOfTimeSeries));
4!
1602
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.totalStorage));
4!
1603
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.compStorage));
4!
1604
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.pointsWritten));
4!
1605
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.numOfCachedTables));
4!
1606
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vload.learnerProgress));
4!
1607
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.roleTimeMs));
4!
1608
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &vload.startTimeMs));
4!
1609
    if (taosArrayPush(pReq->pVloads, &vload) == NULL) {
8!
1610
      TAOS_CHECK_EXIT(terrno);
×
1611
    }
1612
  }
1613

1614
  // mnode loads
1615
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncState));
38!
1616
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->mload.syncRestore));
38!
1617
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->qload.dnodeId));
38!
1618
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedQuery));
38!
1619
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedCQuery));
38!
1620
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedFetch));
38!
1621
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDrop));
38!
1622
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedNotify));
38!
1623
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedHb));
38!
1624
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfProcessedDelete));
38!
1625
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.cacheDataSize));
38!
1626
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfQueryInQueue));
38!
1627
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.numOfFetchInQueue));
38!
1628
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInQueryQueue));
38!
1629
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->qload.timeInFetchQueue));
38!
1630
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->statusSeq));
38!
1631

1632
  pReq->mload.syncTerm = -1;
19✔
1633
  pReq->mload.roleTimeMs = 0;
19✔
1634
  if (!tDecodeIsEnd(&decoder)) {
19!
1635
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.syncTerm));
38!
1636
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->mload.roleTimeMs));
38!
1637
  }
1638

1639
  pReq->clusterCfg.ttlChangeOnWrite = false;
19✔
1640
  if (!tDecodeIsEnd(&decoder)) {
19!
1641
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->clusterCfg.ttlChangeOnWrite));
38!
1642
  }
1643

1644
  // vnode extra
1645
  if (!tDecodeIsEnd(&decoder)) {
19!
1646
    for (int32_t i = 0; i < vlen; ++i) {
23✔
1647
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
4✔
1648
      int64_t     reserved = 0;
4✔
1649
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncTerm));
8!
1650
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
4!
1651
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
4!
1652
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &reserved));
4!
1653
    }
1654
  }
1655
  if (!tDecodeIsEnd(&decoder)) {
19!
1656
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
38!
1657
  }
1658

1659
  if (!tDecodeIsEnd(&decoder)) {
19!
1660
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
38!
1661
  }
1662

1663
  if (!tDecodeIsEnd(&decoder)) {
19!
1664
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pReq->clusterCfg.monitorParas));
19!
1665
  }
1666

1667
  if (!tDecodeIsEnd(&decoder)) {
19!
1668
    for (int32_t i = 0; i < vlen; ++i) {
23✔
1669
      SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i);
4✔
1670
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncAppliedIndex));
8!
1671
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pLoad->syncCommitIndex));
8!
1672
    }
1673
  }
1674

1675
  if (!tDecodeIsEnd(&decoder)) {
19!
1676
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timestamp));
38!
1677
  }
1678

1679
  tEndDecode(&decoder);
19✔
1680

1681
_exit:
19✔
1682
  tDecoderClear(&decoder);
19✔
1683
  return code;
19✔
1684
}
1685

1686
void tFreeSStatusReq(SStatusReq *pReq) { taosArrayDestroy(pReq->pVloads); }
19✔
1687

1688
int32_t tSerializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
38✔
1689
  SEncoder encoder = {0};
38✔
1690
  int32_t  code = 0;
38✔
1691
  int32_t  lino;
1692
  int32_t  tlen;
1693
  tEncoderInit(&encoder, buf, bufLen);
38✔
1694
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
38!
1695
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cver));
76!
1696
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->forceReadConfig));
76!
1697
  if (pReq->forceReadConfig) {
38!
1698
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pReq->array));
×
1699
  }
1700
  tEndEncode(&encoder);
38✔
1701
_exit:
38✔
1702
  if (code) {
38!
1703
    tlen = code;
×
1704
  } else {
1705
    tlen = encoder.pos;
38✔
1706
  }
1707
  tEncoderClear(&encoder);
38✔
1708
  return tlen;
38✔
1709
}
1710

1711
int32_t tDeserializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
19✔
1712
  SDecoder decoder = {0};
19✔
1713
  int32_t  code = 0;
19✔
1714
  int32_t  lino;
1715
  tDecoderInit(&decoder, buf, bufLen);
19✔
1716
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
19!
1717
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cver));
38!
1718
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->forceReadConfig));
38!
1719
  if (pReq->forceReadConfig) {
19!
1720
    pReq->array = taosArrayInit(128, sizeof(SConfigItem));
×
1721
    if (pReq->array == NULL) {
×
1722
      TAOS_CHECK_EXIT(terrno);
×
1723
    }
1724
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pReq->array));
×
1725
  }
1726
  tEndDecode(&decoder);
19✔
1727
_exit:
19✔
1728
  tDecoderClear(&decoder);
19✔
1729
  return code;
19✔
1730
}
1731

1732
void tFreeSConfigReq(SConfigReq *pReq) { taosArrayDestroy(pReq->array); }
19✔
1733

1734
int32_t tSerializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
38✔
1735
  SEncoder encoder = {0};
38✔
1736
  int32_t  code = 0;
38✔
1737
  int32_t  lino;
1738
  int32_t  tlen;
1739
  tEncoderInit(&encoder, buf, bufLen);
38✔
1740
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
38!
1741
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->forceReadConfig));
76!
1742
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isConifgVerified));
76!
1743
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->isVersionVerified));
76!
1744
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->cver));
76!
1745
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
38!
1746
    TAOS_CHECK_EXIT(tSerializeSConfigArray(&encoder, pRsp->array));
38!
1747
  }
1748
  tEndEncode(&encoder);
38✔
1749
_exit:
38✔
1750
  if (code) {
38!
1751
    tlen = code;
×
1752
  } else {
1753
    tlen = encoder.pos;
38✔
1754
  }
1755
  tEncoderClear(&encoder);
38✔
1756
  return tlen;
38✔
1757
}
1758

1759
int32_t tDeserializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
19✔
1760
  SDecoder decoder = {0};
19✔
1761
  int32_t  code = 0;
19✔
1762
  int32_t  lino;
1763
  tDecoderInit(&decoder, buf, bufLen);
19✔
1764
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
19!
1765
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->forceReadConfig));
38!
1766
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isConifgVerified));
38!
1767
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isVersionVerified));
38!
1768
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->cver));
38!
1769
  if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
19!
1770
    pRsp->array = taosArrayInit(128, sizeof(SConfigItem));
19✔
1771
    TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pRsp->array));
19!
1772
  }
1773
_exit:
19✔
1774
  tEndDecode(&decoder);
19✔
1775
  tDecoderClear(&decoder);
19✔
1776
  return code;
19✔
1777
}
1778

1779
void tFreeSConfigRsp(SConfigRsp *pRsp) { taosArrayDestroy(pRsp->array); }
19✔
1780

1781
int32_t tSerializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
18✔
1782
  int32_t  code = 0, lino = 0;
18✔
1783
  int32_t  tlen = 0;
18✔
1784
  SEncoder encoder = {0};
18✔
1785
  tEncoderInit(&encoder, buf, bufLen);
18✔
1786

1787
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
18!
1788
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
36!
1789
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->machineId));
36!
1790

1791
  tEndEncode(&encoder);
18✔
1792

1793
  tlen = encoder.pos;
18✔
1794
_exit:
18✔
1795
  tEncoderClear(&encoder);
18✔
1796
  return code < 0 ? code : tlen;
18!
1797
}
1798

1799
int32_t tDeserializeSDnodeInfoReq(void *buf, int32_t bufLen, SDnodeInfoReq *pReq) {
9✔
1800
  int32_t  code = 0, lino = 0;
9✔
1801
  SDecoder decoder = {0};
9✔
1802
  tDecoderInit(&decoder, buf, bufLen);
9✔
1803

1804
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
9!
1805
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
18!
1806
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->machineId));
9!
1807

1808
_exit:
9✔
1809
  tEndDecode(&decoder);
9✔
1810
  tDecoderClear(&decoder);
9✔
1811
  return code;
9✔
1812
}
1813

1814
int32_t tSerializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
20✔
1815
  SEncoder encoder = {0};
20✔
1816
  int32_t  code = 0;
20✔
1817
  int32_t  lino;
1818
  int32_t  tlen;
1819
  tEncoderInit(&encoder, buf, bufLen);
20✔
1820

1821
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
20!
1822

1823
  // status
1824
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeVer));
40!
1825

1826
  // dnode cfg
1827
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeCfg.dnodeId));
40!
1828
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->dnodeCfg.clusterId));
40!
1829

1830
  // dnode eps
1831
  int32_t dlen = (int32_t)taosArrayGetSize(pRsp->pDnodeEps);
20✔
1832
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, dlen));
20!
1833
  for (int32_t i = 0; i < dlen; ++i) {
40✔
1834
    SDnodeEp *pDnodeEp = taosArrayGet(pRsp->pDnodeEps, i);
20✔
1835
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pDnodeEp->id));
40!
1836
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pDnodeEp->isMnode));
40!
1837
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pDnodeEp->ep.fqdn));
40!
1838
    TAOS_CHECK_EXIT(tEncodeU16(&encoder, pDnodeEp->ep.port));
40!
1839
  }
1840

1841
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusSeq));
40!
1842

1843
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ipWhiteVer));
40!
1844
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->analVer));
40!
1845
  tEndEncode(&encoder);
20✔
1846

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

1857
int32_t tDeserializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) {
10✔
1858
  SDecoder decoder = {0};
10✔
1859
  int32_t  code = 0;
10✔
1860
  int32_t  lino;
1861
  tDecoderInit(&decoder, buf, bufLen);
10✔
1862

1863
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
1864

1865
  // status
1866
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeVer));
20!
1867

1868
  // cluster cfg
1869
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeCfg.dnodeId));
20!
1870
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->dnodeCfg.clusterId));
20!
1871

1872
  // dnode eps
1873
  int32_t dlen = 0;
10✔
1874
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dlen));
10!
1875
  pRsp->pDnodeEps = taosArrayInit(dlen, sizeof(SDnodeEp));
10✔
1876
  if (pRsp->pDnodeEps == NULL) {
10!
1877
    TAOS_CHECK_EXIT(terrno);
×
1878
  }
1879

1880
  for (int32_t i = 0; i < dlen; ++i) {
20✔
1881
    SDnodeEp dnodeEp = {0};
10✔
1882
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &dnodeEp.id));
10!
1883
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &dnodeEp.isMnode));
10!
1884
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, dnodeEp.ep.fqdn));
10!
1885
    TAOS_CHECK_EXIT(tDecodeU16(&decoder, &dnodeEp.ep.port));
10!
1886
    if (taosArrayPush(pRsp->pDnodeEps, &dnodeEp) == NULL) {
20!
1887
      TAOS_CHECK_EXIT(terrno);
×
1888
    }
1889
  }
1890

1891
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusSeq));
20!
1892

1893
  if (!tDecodeIsEnd(&decoder)) {
10!
1894
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ipWhiteVer));
20!
1895
  }
1896

1897
  if (!tDecodeIsEnd(&decoder)) {
10!
1898
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->analVer));
20!
1899
  }
1900

1901
  tEndDecode(&decoder);
10✔
1902
_exit:
10✔
1903
  tDecoderClear(&decoder);
10✔
1904
  return code;
10✔
1905
}
1906

1907
void tFreeSStatusRsp(SStatusRsp *pRsp) { taosArrayDestroy(pRsp->pDnodeEps); }
19✔
1908

1909
int32_t tSerializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
2✔
1910
  SEncoder encoder = {0};
2✔
1911
  int32_t  code = 0;
2✔
1912
  int32_t  lino;
1913
  int32_t  tlen;
1914
  tEncoderInit(&encoder, buf, bufLen);
2✔
1915

1916
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
1917
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->contLen));
4!
1918
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pCont));
4!
1919
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->type));
4!
1920

1921
  tEndEncode(&encoder);
2✔
1922

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

1933
int32_t tDeserializeSStatisReq(void *buf, int32_t bufLen, SStatisReq *pReq) {
×
1934
  SDecoder decoder = {0};
×
1935
  int32_t  code = 0;
×
1936
  int32_t  lino;
1937
  tDecoderInit(&decoder, buf, bufLen);
×
1938

1939
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
1940
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->contLen));
×
1941
  if (pReq->contLen > 0) {
×
1942
    pReq->pCont = taosMemoryMalloc(pReq->contLen + 1);
×
1943
    if (pReq->pCont == NULL) {
×
1944
      TAOS_CHECK_EXIT(terrno);
×
1945
    }
1946
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCont));
×
1947
  }
1948
  if (!tDecodeIsEnd(&decoder)) {
×
1949
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->type));
×
1950
  }
1951
  tEndDecode(&decoder);
×
1952
_exit:
×
1953
  tDecoderClear(&decoder);
×
1954
  return code;
×
1955
}
1956

1957
void tFreeSStatisReq(SStatisReq *pReq) { taosMemoryFreeClear(pReq->pCont); }
×
1958

1959
int32_t tSerializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
10✔
1960
  SEncoder encoder = {0};
10✔
1961
  int32_t  code = 0;
10✔
1962
  int32_t  lino;
1963
  int32_t  tlen;
1964
  tEncoderInit(&encoder, buf, bufLen);
10✔
1965

1966
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
1967
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
20!
1968
  ENCODESQL();
30!
1969
  tEndEncode(&encoder);
10✔
1970

1971
_exit:
10✔
1972
  if (code) {
10!
1973
    tlen = code;
×
1974
  } else {
1975
    tlen = encoder.pos;
10✔
1976
  }
1977
  tEncoderClear(&encoder);
10✔
1978
  return tlen;
10✔
1979
}
1980

1981
int32_t tDeserializeSDropUserReq(void *buf, int32_t bufLen, SDropUserReq *pReq) {
2✔
1982
  SDecoder decoder = {0};
2✔
1983
  int32_t  code = 0;
2✔
1984
  int32_t  lino;
1985
  tDecoderInit(&decoder, buf, bufLen);
2✔
1986

1987
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
1988
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
2!
1989
  DECODESQL();
6!
1990
  tEndDecode(&decoder);
2✔
1991

1992
_exit:
2✔
1993
  tDecoderClear(&decoder);
2✔
1994
  return code;
2✔
1995
}
1996

1997
void tFreeSDropUserReq(SDropUserReq *pReq) { FREESQL(); }
7!
1998

1999
int32_t tSerializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
×
2000
  SEncoder encoder = {0};
×
2001
  int32_t  code = 0;
×
2002
  int32_t  lino;
2003
  int32_t  tlen;
2004
  tEncoderInit(&encoder, buf, bufLen);
×
2005

2006
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
2007

2008
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->operation));
×
2009
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
×
2010
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->table));
×
2011
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sqlLen));
×
2012
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pSql));
×
2013

2014
  tEndEncode(&encoder);
×
2015

2016
_exit:
×
2017
  if (code) {
×
2018
    tlen = code;
×
2019
  } else {
2020
    tlen = encoder.pos;
×
2021
  }
2022
  tEncoderClear(&encoder);
×
2023
  return tlen;
×
2024
}
2025

2026
int32_t tDeserializeSAuditReq(void *buf, int32_t bufLen, SAuditReq *pReq) {
×
2027
  SDecoder decoder = {0};
×
2028
  int32_t  code = 0;
×
2029
  int32_t  lino;
2030
  tDecoderInit(&decoder, buf, bufLen);
×
2031

2032
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2033

2034
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->operation));
×
2035
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
2036
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->table));
×
2037
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sqlLen));
×
2038
  if (pReq->sqlLen > 0) {
×
2039
    pReq->pSql = taosMemoryMalloc(pReq->sqlLen + 1);
×
2040
    if (pReq->pSql == NULL) {
×
2041
      TAOS_CHECK_EXIT(terrno);
×
2042
    }
2043
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pSql));
×
2044
  }
2045
  tEndDecode(&decoder);
×
2046
_exit:
×
2047
  tDecoderClear(&decoder);
×
2048
  return code;
×
2049
}
2050

2051
void tFreeSAuditReq(SAuditReq *pReq) { taosMemoryFreeClear(pReq->pSql); }
×
2052

2053
SIpWhiteList *cloneIpWhiteList(SIpWhiteList *pIpWhiteList) {
10✔
2054
  if (pIpWhiteList == NULL) return NULL;
10!
2055

2056
  int32_t       sz = sizeof(SIpWhiteList) + pIpWhiteList->num * sizeof(SIpV4Range);
10✔
2057
  SIpWhiteList *pNew = taosMemoryCalloc(1, sz);
10!
2058
  if (pNew) {
10!
2059
    memcpy(pNew, pIpWhiteList, sz);
10✔
2060
  }
2061
  return pNew;
10✔
2062
}
2063

2064
int32_t tSerializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
16✔
2065
  SEncoder encoder = {0};
16✔
2066
  int32_t  code = 0;
16✔
2067
  int32_t  lino;
2068
  int32_t  tlen;
2069
  tEncoderInit(&encoder, buf, bufLen);
16✔
2070

2071
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
2072
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createType));
32!
2073
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
32!
2074
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
32!
2075
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
32!
2076
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
32!
2077
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
32!
2078
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
32!
2079
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
16!
2080
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
×
2081
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
×
2082
  }
2083
  ENCODESQL();
48!
2084
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isImport));
32!
2085
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createDb));
32!
2086
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->passIsMd5));
32!
2087

2088
  tEndEncode(&encoder);
16✔
2089

2090
_exit:
16✔
2091
  if (code) {
16!
2092
    tlen = code;
×
2093
  } else {
2094
    tlen = encoder.pos;
16✔
2095
  }
2096
  tEncoderClear(&encoder);
16✔
2097
  return tlen;
16✔
2098
}
2099

2100
int32_t tDeserializeSCreateUserReq(void *buf, int32_t bufLen, SCreateUserReq *pReq) {
4✔
2101
  SDecoder decoder = {0};
4✔
2102
  int32_t  code = 0;
4✔
2103
  int32_t  lino;
2104
  tDecoderInit(&decoder, buf, bufLen);
4✔
2105

2106
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
2107
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createType));
8!
2108
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
8!
2109
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
8!
2110
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
8!
2111
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
4!
2112
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
4!
2113
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
8!
2114
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
4!
2115
  if (pReq->pIpRanges == NULL) {
4!
2116
    TAOS_CHECK_EXIT(terrno);
×
2117
  }
2118
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
4!
2119
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
×
2120
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
×
2121
  }
2122
  DECODESQL();
12!
2123
  if (!tDecodeIsEnd(&decoder)) {
4!
2124
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createDb));
8!
2125
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isImport));
8!
2126
  }
2127
  if (!tDecodeIsEnd(&decoder)) {
4!
2128
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->passIsMd5));
8!
2129
  }
2130

2131
  tEndDecode(&decoder);
4✔
2132

2133
_exit:
4✔
2134
  tDecoderClear(&decoder);
4✔
2135
  return code;
4✔
2136
}
2137

2138
int32_t tSerializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
×
2139
  SEncoder encoder = {0};
×
2140
  int32_t  code = 0;
×
2141
  int32_t  lino;
2142
  int32_t  tlen;
2143

2144
  tEncoderInit(&encoder, buf, bufLen);
×
2145
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
2146
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ver));
×
2147
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfUser));
×
2148
  for (int i = 0; i < pReq->numOfUser; i++) {
×
2149
    SUpdateUserIpWhite *pUser = &(pReq->pUserIpWhite[i]);
×
2150

2151
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pUser->ver));
×
2152
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pUser->user));
×
2153
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUser->numOfRange));
×
2154
    for (int j = 0; j < pUser->numOfRange; j++) {
×
2155
      SIpV4Range *pRange = &pUser->pIpRanges[j];
×
2156
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->ip));
×
2157
      TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRange->mask));
×
2158
    }
2159
  }
2160

2161
  tEndEncode(&encoder);
×
2162

2163
_exit:
×
2164
  if (code) {
×
2165
    tlen = code;
×
2166
  } else {
2167
    tlen = encoder.pos;
×
2168
  }
2169
  tEncoderClear(&encoder);
×
2170
  return tlen;
×
2171
}
2172
int32_t tDeserializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pReq) {
×
2173
  SDecoder decoder = {0};
×
2174
  int32_t  code = 0;
×
2175
  int32_t  lino;
2176
  tDecoderInit(&decoder, buf, bufLen);
×
2177

2178
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2179
  // impl later
2180
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ver));
×
2181
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfUser));
×
2182

2183
  if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) {
×
2184
    TAOS_CHECK_EXIT(terrno);
×
2185
  }
2186
  for (int i = 0; i < pReq->numOfUser; i++) {
×
2187
    SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
×
2188
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pUserWhite->ver));
×
2189
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pUserWhite->user));
×
2190
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pUserWhite->numOfRange));
×
2191

2192
    if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpV4Range))) == NULL) {
×
2193
      TAOS_CHECK_EXIT(terrno);
×
2194
    }
2195
    for (int j = 0; j < pUserWhite->numOfRange; j++) {
×
2196
      SIpV4Range *pRange = &pUserWhite->pIpRanges[j];
×
2197
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->ip));
×
2198
      TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRange->mask));
×
2199
    }
2200
  }
2201

2202
  tEndDecode(&decoder);
×
2203

2204
_exit:
×
2205
  tDecoderClear(&decoder);
×
2206
  return code;
×
2207
}
2208
void tFreeSUpdateIpWhiteReq(SUpdateIpWhite *pReq) {
×
2209
  if (pReq == NULL) return;
×
2210

2211
  if (pReq->pUserIpWhite) {
×
2212
    for (int i = 0; i < pReq->numOfUser; i++) {
×
2213
      SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i];
×
2214
      taosMemoryFree(pUserWhite->pIpRanges);
×
2215
    }
2216
  }
2217
  taosMemoryFree(pReq->pUserIpWhite);
×
2218
  return;
×
2219
}
2220
int32_t cloneSUpdateIpWhiteReq(SUpdateIpWhite *pReq, SUpdateIpWhite **pUpdateMsg) {
10✔
2221
  int32_t code = 0;
10✔
2222
  if (pReq == NULL) {
10!
2223
    return 0;
10✔
2224
  }
2225
  SUpdateIpWhite *pClone = taosMemoryCalloc(1, sizeof(SUpdateIpWhite));
×
2226
  if (pClone == NULL) {
×
2227
    return terrno;
×
2228
  }
2229

2230
  pClone->numOfUser = pReq->numOfUser;
×
2231
  pClone->ver = pReq->ver;
×
2232
  pClone->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser);
×
2233
  if (pClone->pUserIpWhite == NULL) {
×
2234
    taosMemoryFree(pClone);
×
2235
    return terrno;
×
2236
  }
2237

2238
  for (int i = 0; i < pReq->numOfUser; i++) {
×
2239
    SUpdateUserIpWhite *pNew = &pClone->pUserIpWhite[i];
×
2240
    SUpdateUserIpWhite *pOld = &pReq->pUserIpWhite[i];
×
2241

2242
    pNew->ver = pOld->ver;
×
2243
    memcpy(pNew->user, pOld->user, strlen(pOld->user));
×
2244
    pNew->numOfRange = pOld->numOfRange;
×
2245

2246
    int32_t sz = pOld->numOfRange * sizeof(SIpV4Range);
×
2247
    pNew->pIpRanges = taosMemoryCalloc(1, sz);
×
2248
    if (pNew->pIpRanges == NULL) {
×
2249
      code = terrno;
×
2250
      break;
×
2251
    }
2252
    memcpy(pNew->pIpRanges, pOld->pIpRanges, sz);
×
2253
  }
2254
_return:
×
2255
  if (code < 0) {
×
2256
    tFreeSUpdateIpWhiteReq(pClone);
×
2257
    taosMemoryFree(pClone);
×
2258
  } else {
2259
    *pUpdateMsg = pClone;
×
2260
  }
2261
  return code;
×
2262
}
2263
int32_t tSerializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
×
2264
  SEncoder encoder = {0};
×
2265
  int32_t  code = 0;
×
2266
  int32_t  lino;
2267
  int32_t  tlen;
2268
  tEncoderInit(&encoder, buf, bufLen);
×
2269

2270
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
2271
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->ipWhiteVer));
×
2272
  tEndEncode(&encoder);
×
2273

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

2284
int32_t tDeserializeRetrieveIpWhite(void *buf, int32_t bufLen, SRetrieveIpWhiteReq *pReq) {
×
2285
  SDecoder decoder = {0};
×
2286
  int32_t  code = 0;
×
2287
  int32_t  lino;
2288

2289
  tDecoderInit(&decoder, buf, bufLen);
×
2290

2291
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2292
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->ipWhiteVer));
×
2293
  tEndDecode(&decoder);
×
2294

2295
_exit:
×
2296
  tDecoderClear(&decoder);
×
2297
  return code;
×
2298
}
2299

2300
int32_t tSerializeRetrieveAnalAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalAlgoReq *pReq) {
×
2301
  SEncoder encoder = {0};
×
2302
  int32_t  code = 0;
×
2303
  int32_t  lino;
2304
  int32_t  tlen;
2305
  tEncoderInit(&encoder, buf, bufLen);
×
2306

2307
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
2308
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
2309
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->analVer));
×
2310
  tEndEncode(&encoder);
×
2311

2312
_exit:
×
2313
  if (code) {
×
2314
    tlen = code;
×
2315
  } else {
2316
    tlen = encoder.pos;
×
2317
  }
2318
  tEncoderClear(&encoder);
×
2319
  return tlen;
×
2320
}
2321

2322
int32_t tDeserializeRetrieveAnalAlgoReq(void *buf, int32_t bufLen, SRetrieveAnalAlgoReq *pReq) {
×
2323
  SDecoder decoder = {0};
×
2324
  int32_t  code = 0;
×
2325
  int32_t  lino;
2326

2327
  tDecoderInit(&decoder, buf, bufLen);
×
2328

2329
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2330
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
2331
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->analVer));
×
2332
  tEndDecode(&decoder);
×
2333

2334
_exit:
×
2335
  tDecoderClear(&decoder);
×
2336
  return code;
×
2337
}
2338

2339
int32_t tSerializeRetrieveAnalAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalAlgoRsp *pRsp) {
×
2340
  SEncoder encoder = {0};
×
2341
  int32_t  code = 0;
×
2342
  int32_t  lino;
2343
  int32_t  tlen;
2344
  tEncoderInit(&encoder, buf, bufLen);
×
2345

2346
  int32_t numOfAlgos = 0;
×
2347
  void   *pIter = taosHashIterate(pRsp->hash, NULL);
×
2348
  while (pIter != NULL) {
×
2349
    SAnalyticsUrl *pUrl = pIter;
×
2350
    size_t         nameLen = 0;
×
2351
    const char    *name = taosHashGetKey(pIter, &nameLen);
×
2352
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_KEY_LEN && pUrl->urlLen > 0) {
×
2353
      numOfAlgos++;
×
2354
    }
2355
    pIter = taosHashIterate(pRsp->hash, pIter);
×
2356
  }
2357

2358
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
2359
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->ver));
×
2360
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfAlgos));
×
2361

2362
  pIter = taosHashIterate(pRsp->hash, NULL);
×
2363
  while (pIter != NULL) {
×
2364
    SAnalyticsUrl *pUrl = pIter;
×
2365
    size_t         nameLen = 0;
×
2366
    const char    *name = taosHashGetKey(pIter, &nameLen);
×
2367
    if (nameLen > 0 && pUrl->urlLen > 0) {
×
2368
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, nameLen));
×
2369
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)name, nameLen));
×
2370
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->anode));
×
2371
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->type));
×
2372
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pUrl->urlLen));
×
2373
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pUrl->url, pUrl->urlLen));
×
2374
    }
2375
    pIter = taosHashIterate(pRsp->hash, pIter);
×
2376
  }
2377

2378
  tEndEncode(&encoder);
×
2379

2380
_exit:
×
2381
  if (code) {
×
2382
    tlen = code;
×
2383
  } else {
2384
    tlen = encoder.pos;
×
2385
  }
2386
  tEncoderClear(&encoder);
×
2387
  return tlen;
×
2388
}
2389

2390
int32_t tDeserializeRetrieveAnalAlgoRsp(void *buf, int32_t bufLen, SRetrieveAnalAlgoRsp *pRsp) {
×
2391
  if (pRsp->hash == NULL) {
×
2392
    pRsp->hash = taosHashInit(64, MurmurHash3_32, true, HASH_ENTRY_LOCK);
×
2393
    if (pRsp->hash == NULL) {
×
2394
      terrno = TSDB_CODE_OUT_OF_BUFFER;
×
2395
      return terrno;
×
2396
    }
2397
  }
2398

2399
  SDecoder decoder = {0};
×
2400
  int32_t  code = 0;
×
2401
  int32_t  lino;
2402
  tDecoderInit(&decoder, buf, bufLen);
×
2403

2404
  int32_t       numOfAlgos = 0;
×
2405
  int32_t       nameLen;
2406
  int32_t       type;
2407
  char          name[TSDB_ANALYTIC_ALGO_KEY_LEN];
2408
  SAnalyticsUrl url = {0};
×
2409

2410
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2411
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->ver));
×
2412
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfAlgos));
×
2413

2414
  for (int32_t f = 0; f < numOfAlgos; ++f) {
×
2415
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &nameLen));
×
2416
    if (nameLen > 0 && nameLen <= TSDB_ANALYTIC_ALGO_NAME_LEN) {
×
2417
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, name));
×
2418
    }
2419

2420
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.anode));
×
2421
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &type));
×
2422
    url.type = (EAnalAlgoType)type;
×
2423
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &url.urlLen));
×
2424
    if (url.urlLen > 0) {
×
2425
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&url.url, NULL) < 0);
×
2426
    }
2427

2428
    TAOS_CHECK_EXIT(taosHashPut(pRsp->hash, name, nameLen, &url, sizeof(SAnalyticsUrl)));
×
2429
  }
2430

2431
  tEndDecode(&decoder);
×
2432

2433
_exit:
×
2434
  tDecoderClear(&decoder);
×
2435
  return code;
×
2436
}
2437

2438
void tFreeRetrieveAnalAlgoRsp(SRetrieveAnalAlgoRsp *pRsp) {
×
2439
  void *pIter = taosHashIterate(pRsp->hash, NULL);
×
2440
  while (pIter != NULL) {
×
2441
    SAnalyticsUrl *pUrl = (SAnalyticsUrl *)pIter;
×
2442
    taosMemoryFree(pUrl->url);
×
2443
    pIter = taosHashIterate(pRsp->hash, pIter);
×
2444
  }
2445
  taosHashCleanup(pRsp->hash);
×
2446

2447
  pRsp->hash = NULL;
×
2448
}
×
2449

2450
void tFreeSCreateUserReq(SCreateUserReq *pReq) {
12✔
2451
  FREESQL();
12!
2452
  taosMemoryFreeClear(pReq->pIpRanges);
12!
2453
}
12✔
2454

2455
int32_t tSerializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
120✔
2456
  SEncoder encoder = {0};
120✔
2457
  int32_t  code = 0;
120✔
2458
  int32_t  lino;
2459
  int32_t  tlen;
2460
  tEncoderInit(&encoder, buf, bufLen);
120✔
2461

2462
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
120!
2463
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->alterType));
240!
2464
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->superUser));
240!
2465
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sysInfo));
240!
2466
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enable));
240!
2467
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isView));
240!
2468
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
240!
2469
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pass));
240!
2470
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->objname));
240!
2471
  int32_t len = strlen(pReq->tabName);
120✔
2472
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, len));
120!
2473
  if (len > 0) {
120!
2474
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tabName));
×
2475
  }
2476
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->tagCond, pReq->tagCondLen));
240!
2477
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numIpRanges));
240!
2478
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
120!
2479
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].ip));
×
2480
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->pIpRanges[i].mask));
×
2481
  }
2482
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->privileges));
240!
2483
  ENCODESQL();
360!
2484
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->flag));
240!
2485
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->passIsMd5));
240!
2486
  tEndEncode(&encoder);
120✔
2487

2488
_exit:
120✔
2489
  if (code) {
120!
2490
    tlen = code;
×
2491
  } else {
2492
    tlen = encoder.pos;
120✔
2493
  }
2494
  tEncoderClear(&encoder);
120✔
2495
  return tlen;
120✔
2496
}
2497

2498
int32_t tDeserializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq) {
30✔
2499
  SDecoder decoder = {0};
30✔
2500
  int32_t  code = 0;
30✔
2501
  int32_t  lino;
2502
  tDecoderInit(&decoder, buf, bufLen);
30✔
2503

2504
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
30!
2505
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->alterType));
60!
2506
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->superUser));
60!
2507
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sysInfo));
60!
2508
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enable));
60!
2509
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isView));
60!
2510
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
30!
2511
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pass));
30!
2512
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->objname));
30!
2513
  if (!tDecodeIsEnd(&decoder)) {
30!
2514
    int32_t len = 0;
30✔
2515
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &len));
30!
2516
    if (len > 0) {
30!
2517
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tabName));
×
2518
    }
2519
    uint64_t tagCondLen = 0;
30✔
2520
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->tagCond, &tagCondLen));
60!
2521
    pReq->tagCondLen = tagCondLen;
30✔
2522
  }
2523
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numIpRanges));
60!
2524
  pReq->pIpRanges = taosMemoryMalloc(pReq->numIpRanges * sizeof(SIpV4Range));
30!
2525
  if (pReq->pIpRanges == NULL) {
30!
2526
    TAOS_CHECK_EXIT(terrno);
×
2527
  }
2528
  for (int32_t i = 0; i < pReq->numIpRanges; ++i) {
30!
2529
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].ip)));
×
2530
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pReq->pIpRanges[i].mask)));
×
2531
  }
2532
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->privileges));
60!
2533
  DECODESQL();
90!
2534
  if (!tDecodeIsEnd(&decoder)) {
30!
2535
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->flag));
60!
2536
  }
2537
  if (!tDecodeIsEnd(&decoder)) {
30!
2538
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->passIsMd5));
60!
2539
  }
2540
  tEndDecode(&decoder);
30✔
2541

2542
_exit:
30✔
2543
  tDecoderClear(&decoder);
30✔
2544
  return code;
30✔
2545
}
2546

2547
void tFreeSAlterUserReq(SAlterUserReq *pReq) {
90✔
2548
  taosMemoryFreeClear(pReq->tagCond);
90!
2549
  taosMemoryFree(pReq->pIpRanges);
90!
2550
  FREESQL();
90!
2551
}
90✔
2552

2553
int32_t tSerializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
8✔
2554
  SEncoder encoder = {0};
8✔
2555
  int32_t  code = 0;
8✔
2556
  int32_t  lino;
2557
  int32_t  tlen;
2558

2559
  tEncoderInit(&encoder, buf, bufLen);
8✔
2560
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
2561
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
16!
2562
  tEndEncode(&encoder);
8✔
2563

2564
_exit:
8✔
2565
  if (code) {
8!
2566
    tlen = code;
×
2567
  } else {
2568
    tlen = encoder.pos;
8✔
2569
  }
2570
  tEncoderClear(&encoder);
8✔
2571
  return tlen;
8✔
2572
}
2573

2574
int32_t tDeserializeSGetUserAuthReq(void *buf, int32_t bufLen, SGetUserAuthReq *pReq) {
×
2575
  SDecoder decoder = {0};
×
2576
  int32_t  code = 0;
×
2577
  int32_t  lino;
2578
  tDecoderInit(&decoder, buf, bufLen);
×
2579

2580
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
2581
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
×
2582
  tEndDecode(&decoder);
×
2583

2584
_exit:
×
2585
  tDecoderClear(&decoder);
×
2586
  return code;
×
2587
}
2588

2589
int32_t tSerializeSGetUserAuthRspImpl(SEncoder *pEncoder, SGetUserAuthRsp *pRsp) {
2✔
2590
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->user));
4!
2591
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->superAuth));
4!
2592
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->sysInfo));
4!
2593
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->enable));
4!
2594
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->dropped));
4!
2595
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->version));
4!
2596

2597
  int32_t numOfCreatedDbs = taosHashGetSize(pRsp->createdDbs);
2✔
2598
  int32_t numOfReadDbs = taosHashGetSize(pRsp->readDbs);
2✔
2599
  int32_t numOfWriteDbs = taosHashGetSize(pRsp->writeDbs);
2✔
2600

2601
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfCreatedDbs));
2!
2602
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadDbs));
2!
2603
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteDbs));
2!
2604

2605
  char *db = taosHashIterate(pRsp->createdDbs, NULL);
2✔
2606
  while (db != NULL) {
2!
2607
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
×
2608
    db = taosHashIterate(pRsp->createdDbs, db);
×
2609
  }
2610

2611
  db = taosHashIterate(pRsp->readDbs, NULL);
2✔
2612
  while (db != NULL) {
2!
2613
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
×
2614
    db = taosHashIterate(pRsp->readDbs, db);
×
2615
  }
2616

2617
  db = taosHashIterate(pRsp->writeDbs, NULL);
2✔
2618
  while (db != NULL) {
2!
2619
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, db));
×
2620
    db = taosHashIterate(pRsp->writeDbs, db);
×
2621
  }
2622

2623
  int32_t numOfReadTbs = taosHashGetSize(pRsp->readTbs);
2✔
2624
  int32_t numOfWriteTbs = taosHashGetSize(pRsp->writeTbs);
2✔
2625
  int32_t numOfAlterTbs = taosHashGetSize(pRsp->alterTbs);
2✔
2626
  int32_t numOfReadViews = taosHashGetSize(pRsp->readViews);
2✔
2627
  int32_t numOfWriteViews = taosHashGetSize(pRsp->writeViews);
2✔
2628
  int32_t numOfAlterViews = taosHashGetSize(pRsp->alterViews);
2✔
2629
  int32_t numOfUseDbs = taosHashGetSize(pRsp->useDbs);
2✔
2630
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadTbs));
2!
2631
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteTbs));
2!
2632
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterTbs));
2!
2633
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfReadViews));
2!
2634
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfWriteViews));
2!
2635
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfAlterViews));
2!
2636
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, numOfUseDbs));
2!
2637

2638
  char *tb = taosHashIterate(pRsp->readTbs, NULL);
2✔
2639
  while (tb != NULL) {
2!
2640
    size_t keyLen = 0;
×
2641
    void  *key = taosHashGetKey(tb, &keyLen);
×
2642
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
×
2643
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
×
2644

2645
    size_t valueLen = 0;
×
2646
    valueLen = strlen(tb);
×
2647
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
×
2648
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
×
2649

2650
    tb = taosHashIterate(pRsp->readTbs, tb);
×
2651
  }
2652

2653
  tb = taosHashIterate(pRsp->writeTbs, NULL);
2✔
2654
  while (tb != NULL) {
2!
2655
    size_t keyLen = 0;
×
2656
    void  *key = taosHashGetKey(tb, &keyLen);
×
2657
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
×
2658
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
×
2659

2660
    size_t valueLen = 0;
×
2661
    valueLen = strlen(tb);
×
2662
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
×
2663
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
×
2664

2665
    tb = taosHashIterate(pRsp->writeTbs, tb);
×
2666
  }
2667

2668
  tb = taosHashIterate(pRsp->alterTbs, NULL);
2✔
2669
  while (tb != NULL) {
2!
2670
    size_t keyLen = 0;
×
2671
    void  *key = taosHashGetKey(tb, &keyLen);
×
2672
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
×
2673
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
×
2674

2675
    size_t valueLen = 0;
×
2676
    valueLen = strlen(tb);
×
2677
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
×
2678
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
×
2679

2680
    tb = taosHashIterate(pRsp->alterTbs, tb);
×
2681
  }
2682

2683
  tb = taosHashIterate(pRsp->readViews, NULL);
2✔
2684
  while (tb != NULL) {
2!
2685
    size_t keyLen = 0;
×
2686
    void  *key = taosHashGetKey(tb, &keyLen);
×
2687
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
×
2688
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
×
2689

2690
    size_t valueLen = 0;
×
2691
    valueLen = strlen(tb);
×
2692
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
×
2693
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
×
2694

2695
    tb = taosHashIterate(pRsp->readViews, tb);
×
2696
  }
2697

2698
  tb = taosHashIterate(pRsp->writeViews, NULL);
2✔
2699
  while (tb != NULL) {
2!
2700
    size_t keyLen = 0;
×
2701
    void  *key = taosHashGetKey(tb, &keyLen);
×
2702
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
×
2703
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
×
2704

2705
    size_t valueLen = 0;
×
2706
    valueLen = strlen(tb);
×
2707
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
×
2708
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
×
2709

2710
    tb = taosHashIterate(pRsp->writeViews, tb);
×
2711
  }
2712

2713
  tb = taosHashIterate(pRsp->alterViews, NULL);
2✔
2714
  while (tb != NULL) {
2!
2715
    size_t keyLen = 0;
×
2716
    void  *key = taosHashGetKey(tb, &keyLen);
×
2717
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
×
2718
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
×
2719

2720
    size_t valueLen = 0;
×
2721
    valueLen = strlen(tb);
×
2722
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, valueLen));
×
2723
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, tb));
×
2724

2725
    tb = taosHashIterate(pRsp->alterViews, tb);
×
2726
  }
2727

2728
  int32_t *useDb = taosHashIterate(pRsp->useDbs, NULL);
2✔
2729
  while (useDb != NULL) {
2!
2730
    size_t keyLen = 0;
×
2731
    void  *key = taosHashGetKey(useDb, &keyLen);
×
2732
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, keyLen));
×
2733
    TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, key));
×
2734
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, *useDb));
×
2735
    useDb = taosHashIterate(pRsp->useDbs, useDb);
×
2736
  }
2737

2738
  // since 3.0.7.0
2739
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->passVer));
4!
2740
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->whiteListVer));
4!
2741
  return 0;
2✔
2742
}
2743

2744
int32_t tSerializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
2✔
2745
  SEncoder encoder = {0};
2✔
2746
  int32_t  code = 0;
2✔
2747
  int32_t  lino;
2748
  int32_t  tlen;
2749
  tEncoderInit(&encoder, buf, bufLen);
2✔
2750

2751
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
2752
  TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pRsp));
2!
2753

2754
  tEndEncode(&encoder);
2✔
2755

2756
_exit:
2✔
2757
  if (code) {
2!
2758
    tlen = code;
×
2759
  } else {
2760
    tlen = encoder.pos;
2✔
2761
  }
2762
  tEncoderClear(&encoder);
2✔
2763
  return tlen;
2✔
2764
}
2765

2766
int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRsp) {
29✔
2767
  char *key = NULL, *value = NULL;
29✔
2768
  pRsp->createdDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2769
  pRsp->readDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2770
  pRsp->writeDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2771
  pRsp->readTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2772
  pRsp->writeTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2773
  pRsp->alterTbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2774
  pRsp->readViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2775
  pRsp->writeViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2776
  pRsp->alterViews = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2777
  pRsp->useDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK);
29✔
2778
  if (pRsp->createdDbs == NULL || pRsp->readDbs == NULL || pRsp->writeDbs == NULL || pRsp->readTbs == NULL ||
29!
2779
      pRsp->writeTbs == NULL || pRsp->alterTbs == NULL || pRsp->readViews == NULL || pRsp->writeViews == NULL ||
29!
2780
      pRsp->alterViews == NULL || pRsp->useDbs == NULL) {
29!
2781
    goto _err;
×
2782
  }
2783

2784
  if (tDecodeCStrTo(pDecoder, pRsp->user) < 0) goto _err;
29!
2785
  if (tDecodeI8(pDecoder, &pRsp->superAuth) < 0) goto _err;
58!
2786
  if (tDecodeI8(pDecoder, &pRsp->sysInfo) < 0) goto _err;
58!
2787
  if (tDecodeI8(pDecoder, &pRsp->enable) < 0) goto _err;
58!
2788
  if (tDecodeI8(pDecoder, &pRsp->dropped) < 0) goto _err;
58!
2789
  if (tDecodeI32(pDecoder, &pRsp->version) < 0) goto _err;
58!
2790

2791
  int32_t numOfCreatedDbs = 0;
29✔
2792
  int32_t numOfReadDbs = 0;
29✔
2793
  int32_t numOfWriteDbs = 0;
29✔
2794
  if (tDecodeI32(pDecoder, &numOfCreatedDbs) < 0) goto _err;
29!
2795
  if (tDecodeI32(pDecoder, &numOfReadDbs) < 0) goto _err;
29!
2796
  if (tDecodeI32(pDecoder, &numOfWriteDbs) < 0) goto _err;
29!
2797

2798
  for (int32_t i = 0; i < numOfCreatedDbs; ++i) {
101✔
2799
    char db[TSDB_DB_FNAME_LEN] = {0};
72✔
2800
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
72!
2801
    int32_t len = strlen(db);
72✔
2802
    if (taosHashPut(pRsp->createdDbs, db, len + 1, db, len + 1) < 0) goto _err;
72!
2803
  }
2804

2805
  for (int32_t i = 0; i < numOfReadDbs; ++i) {
29!
2806
    char db[TSDB_DB_FNAME_LEN] = {0};
×
2807
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
×
2808
    int32_t len = strlen(db);
×
2809
    if (taosHashPut(pRsp->readDbs, db, len + 1, db, len + 1) < 0) goto _err;
×
2810
  }
2811

2812
  for (int32_t i = 0; i < numOfWriteDbs; ++i) {
29!
2813
    char db[TSDB_DB_FNAME_LEN] = {0};
×
2814
    if (tDecodeCStrTo(pDecoder, db) < 0) goto _err;
×
2815
    int32_t len = strlen(db);
×
2816
    if (taosHashPut(pRsp->writeDbs, db, len + 1, db, len + 1) < 0) goto _err;
×
2817
  }
2818

2819
  if (!tDecodeIsEnd(pDecoder)) {
29!
2820
    int32_t numOfReadTbs = 0;
29✔
2821
    int32_t numOfWriteTbs = 0;
29✔
2822
    int32_t numOfAlterTbs = 0;
29✔
2823
    int32_t numOfReadViews = 0;
29✔
2824
    int32_t numOfWriteViews = 0;
29✔
2825
    int32_t numOfAlterViews = 0;
29✔
2826
    int32_t numOfUseDbs = 0;
29✔
2827
    if (tDecodeI32(pDecoder, &numOfReadTbs) < 0) goto _err;
29!
2828
    if (tDecodeI32(pDecoder, &numOfWriteTbs) < 0) goto _err;
29!
2829
    if (tDecodeI32(pDecoder, &numOfAlterTbs) < 0) goto _err;
29!
2830
    if (tDecodeI32(pDecoder, &numOfReadViews) < 0) goto _err;
29!
2831
    if (tDecodeI32(pDecoder, &numOfWriteViews) < 0) goto _err;
29!
2832
    if (tDecodeI32(pDecoder, &numOfAlterViews) < 0) goto _err;
29!
2833
    if (tDecodeI32(pDecoder, &numOfUseDbs) < 0) goto _err;
29!
2834

2835
    for (int32_t i = 0; i < numOfReadTbs; ++i) {
29!
2836
      int32_t keyLen = 0;
×
2837
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
×
2838

2839
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
×
2840
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
×
2841

2842
      int32_t valuelen = 0;
×
2843
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
×
2844

2845
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
×
2846
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
×
2847

2848
      if (taosHashPut(pRsp->readTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
×
2849

2850
      taosMemoryFreeClear(key);
×
2851
      taosMemoryFreeClear(value);
×
2852
    }
2853

2854
    for (int32_t i = 0; i < numOfWriteTbs; ++i) {
29!
2855
      int32_t keyLen = 0;
×
2856
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
×
2857

2858
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
×
2859
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
×
2860

2861
      int32_t valuelen = 0;
×
2862
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
×
2863

2864
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
×
2865
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
×
2866

2867
      if (taosHashPut(pRsp->writeTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
×
2868

2869
      taosMemoryFreeClear(key);
×
2870
      taosMemoryFreeClear(value);
×
2871
    }
2872

2873
    for (int32_t i = 0; i < numOfAlterTbs; ++i) {
29!
2874
      int32_t keyLen = 0;
×
2875
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
×
2876

2877
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
×
2878
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
×
2879

2880
      int32_t valuelen = 0;
×
2881
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
×
2882

2883
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
×
2884
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
×
2885

2886
      if (taosHashPut(pRsp->alterTbs, key, keyLen, value, valuelen + 1) < 0) goto _err;
×
2887

2888
      taosMemoryFreeClear(key);
×
2889
      taosMemoryFreeClear(value);
×
2890
    }
2891

2892
    for (int32_t i = 0; i < numOfReadViews; ++i) {
29!
2893
      int32_t keyLen = 0;
×
2894
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
×
2895

2896
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
×
2897
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
×
2898

2899
      int32_t valuelen = 0;
×
2900
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
×
2901

2902
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
×
2903
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
×
2904

2905
      if (taosHashPut(pRsp->readViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
×
2906

2907
      taosMemoryFreeClear(key);
×
2908
      taosMemoryFreeClear(value);
×
2909
    }
2910

2911
    for (int32_t i = 0; i < numOfWriteViews; ++i) {
29!
2912
      int32_t keyLen = 0;
×
2913
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
×
2914

2915
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
×
2916
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
×
2917

2918
      int32_t valuelen = 0;
×
2919
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
×
2920

2921
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
×
2922
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
×
2923

2924
      if (taosHashPut(pRsp->writeViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
×
2925

2926
      taosMemoryFreeClear(key);
×
2927
      taosMemoryFreeClear(value);
×
2928
    }
2929

2930
    for (int32_t i = 0; i < numOfAlterViews; ++i) {
29!
2931
      int32_t keyLen = 0;
×
2932
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
×
2933

2934
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
×
2935
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
×
2936

2937
      int32_t valuelen = 0;
×
2938
      if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err;
×
2939

2940
      if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err;
×
2941
      if (tDecodeCStrTo(pDecoder, value) < 0) goto _err;
×
2942

2943
      if (taosHashPut(pRsp->alterViews, key, keyLen, value, valuelen + 1) < 0) goto _err;
×
2944

2945
      taosMemoryFreeClear(key);
×
2946
      taosMemoryFreeClear(value);
×
2947
    }
2948

2949
    for (int32_t i = 0; i < numOfUseDbs; ++i) {
29!
2950
      int32_t keyLen = 0;
×
2951
      if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err;
×
2952

2953
      if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err;
×
2954
      if (tDecodeCStrTo(pDecoder, key) < 0) goto _err;
×
2955

2956
      int32_t ref = 0;
×
2957
      if (tDecodeI32(pDecoder, &ref) < 0) goto _err;
×
2958

2959
      if (taosHashPut(pRsp->useDbs, key, keyLen, &ref, sizeof(ref)) < 0) goto _err;
×
2960
      taosMemoryFreeClear(key);
×
2961
    }
2962
    // since 3.0.7.0
2963
    if (!tDecodeIsEnd(pDecoder)) {
29!
2964
      if (tDecodeI32(pDecoder, &pRsp->passVer) < 0) goto _err;
58!
2965
    } else {
2966
      pRsp->passVer = 0;
×
2967
    }
2968
    if (!tDecodeIsEnd(pDecoder)) {
29!
2969
      if (tDecodeI64(pDecoder, &pRsp->whiteListVer) < 0) goto _err;
58!
2970
    } else {
2971
      pRsp->whiteListVer = 0;
×
2972
    }
2973
  }
2974
  return 0;
29✔
2975
_err:
×
2976
  taosHashCleanup(pRsp->createdDbs);
×
2977
  taosHashCleanup(pRsp->readDbs);
×
2978
  taosHashCleanup(pRsp->writeDbs);
×
2979
  taosHashCleanup(pRsp->readTbs);
×
2980
  taosHashCleanup(pRsp->writeTbs);
×
2981
  taosHashCleanup(pRsp->alterTbs);
×
2982
  taosHashCleanup(pRsp->readViews);
×
2983
  taosHashCleanup(pRsp->writeViews);
×
2984
  taosHashCleanup(pRsp->alterViews);
×
2985
  taosHashCleanup(pRsp->useDbs);
×
2986

2987
  taosMemoryFreeClear(key);
×
2988
  taosMemoryFreeClear(value);
×
2989
  return -1;
×
2990
}
2991

2992
int32_t tDeserializeSGetUserAuthRsp(void *buf, int32_t bufLen, SGetUserAuthRsp *pRsp) {
4✔
2993
  SDecoder decoder = {0};
4✔
2994
  int32_t  code = 0;
4✔
2995
  int32_t  lino;
2996
  tDecoderInit(&decoder, buf, bufLen);
4✔
2997

2998
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
2999
  TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, pRsp));
4!
3000

3001
  tEndDecode(&decoder);
4✔
3002

3003
_exit:
4✔
3004
  tDecoderClear(&decoder);
4✔
3005
  return code;
4✔
3006
}
3007

3008
void tFreeSGetUserAuthRsp(SGetUserAuthRsp *pRsp) {
×
3009
  taosHashCleanup(pRsp->createdDbs);
×
3010
  taosHashCleanup(pRsp->readDbs);
×
3011
  taosHashCleanup(pRsp->writeDbs);
×
3012
  taosHashCleanup(pRsp->readTbs);
×
3013
  taosHashCleanup(pRsp->writeTbs);
×
3014
  taosHashCleanup(pRsp->alterTbs);
×
3015
  taosHashCleanup(pRsp->readViews);
×
3016
  taosHashCleanup(pRsp->writeViews);
×
3017
  taosHashCleanup(pRsp->alterViews);
×
3018
  taosHashCleanup(pRsp->useDbs);
×
3019
}
×
3020

3021
int32_t tSerializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
×
3022
  SEncoder encoder = {0};
×
3023
  int32_t  code = 0;
×
3024
  int32_t  lino;
3025
  int32_t  tlen;
3026

3027
  tEncoderInit(&encoder, buf, bufLen);
×
3028

3029
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3030
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
×
3031
  tEndEncode(&encoder);
×
3032

3033
_exit:
×
3034
  if (code) {
×
3035
    tlen = code;
×
3036
  } else {
3037
    tlen = encoder.pos;
×
3038
  }
3039
  tEncoderClear(&encoder);
×
3040
  return tlen;
×
3041
}
3042

3043
int32_t tDeserializeSGetUserWhiteListReq(void *buf, int32_t bufLen, SGetUserWhiteListReq *pReq) {
×
3044
  SDecoder decoder = {0};
×
3045
  int32_t  code = 0;
×
3046
  int32_t  lino;
3047
  tDecoderInit(&decoder, buf, bufLen);
×
3048

3049
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3050
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
×
3051
  tEndDecode(&decoder);
×
3052

3053
_exit:
×
3054
  tDecoderClear(&decoder);
×
3055
  return code;
×
3056
}
3057

3058
int32_t tSerializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
×
3059
  SEncoder encoder = {0};
×
3060
  int32_t  code = 0;
×
3061
  int32_t  lino;
3062
  int32_t  tlen;
3063
  tEncoderInit(&encoder, buf, bufLen);
×
3064

3065
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3066
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->user));
×
3067
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numWhiteLists));
×
3068
  for (int i = 0; i < pRsp->numWhiteLists; ++i) {
×
3069
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].ip));
×
3070
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->pWhiteLists[i].mask));
×
3071
  }
3072
  tEndEncode(&encoder);
×
3073

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

3084
int32_t tDeserializeSGetUserWhiteListRsp(void *buf, int32_t bufLen, SGetUserWhiteListRsp *pRsp) {
×
3085
  SDecoder decoder = {0};
×
3086
  int32_t  code = 0;
×
3087
  int32_t  lino;
3088
  tDecoderInit(&decoder, buf, bufLen);
×
3089

3090
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3091
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->user));
×
3092
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numWhiteLists));
×
3093
  pRsp->pWhiteLists = taosMemoryMalloc(pRsp->numWhiteLists * sizeof(SIpV4Range));
×
3094
  if (pRsp->pWhiteLists == NULL) {
×
3095
    TAOS_CHECK_EXIT(terrno);
×
3096
  }
3097
  for (int32_t i = 0; i < pRsp->numWhiteLists; ++i) {
×
3098
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].ip)));
×
3099
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &(pRsp->pWhiteLists[i].mask)));
×
3100
  }
3101

3102
  tEndDecode(&decoder);
×
3103
_exit:
×
3104
  tDecoderClear(&decoder);
×
3105
  return code;
×
3106
}
3107

3108
void tFreeSGetUserWhiteListRsp(SGetUserWhiteListRsp *pRsp) { taosMemoryFree(pRsp->pWhiteLists); }
×
3109

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

3117
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3118
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
×
3119
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
×
3120
  ENCODESQL();
×
3121
  tEndEncode(&encoder);
×
3122

3123
_exit:
×
3124
  if (code) {
×
3125
    tlen = code;
×
3126
  } else {
3127
    tlen = encoder.pos;
×
3128
  }
3129
  tEncoderClear(&encoder);
×
3130
  return tlen;
×
3131
}
3132

3133
int32_t tDeserializeSMCfgClusterReq(void *buf, int32_t bufLen, SMCfgClusterReq *pReq) {
×
3134
  SDecoder decoder = {0};
×
3135
  int32_t  code = 0;
×
3136
  int32_t  lino;
3137
  tDecoderInit(&decoder, buf, bufLen);
×
3138

3139
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3140
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
×
3141
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
×
3142
  DECODESQL();
×
3143
  tEndDecode(&decoder);
×
3144

3145
_exit:
×
3146
  tDecoderClear(&decoder);
×
3147
  return code;
×
3148
}
3149

3150
void tFreeSMCfgClusterReq(SMCfgClusterReq *pReq) { FREESQL(); }
×
3151

3152
int32_t tSerializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
64✔
3153
  SEncoder encoder = {0};
64✔
3154
  int32_t  code = 0;
64✔
3155
  int32_t  lino;
3156
  int32_t  tlen;
3157
  tEncoderInit(&encoder, buf, bufLen);
64✔
3158

3159
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
64!
3160
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
128!
3161
  ENCODESQL();
160!
3162
  tEndEncode(&encoder);
64✔
3163

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

3174
int32_t tDeserializeSCreateDropMQSNodeReq(void *buf, int32_t bufLen, SMCreateQnodeReq *pReq) {
12✔
3175
  SDecoder decoder = {0};
12✔
3176
  int32_t  code = 0;
12✔
3177
  int32_t  lino;
3178
  tDecoderInit(&decoder, buf, bufLen);
12✔
3179

3180
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12!
3181
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
24!
3182
  DECODESQL();
30!
3183
  tEndDecode(&decoder);
12✔
3184

3185
_exit:
12✔
3186
  tDecoderClear(&decoder);
12✔
3187
  return code;
12✔
3188
}
3189

3190
void tFreeSMCreateQnodeReq(SMCreateQnodeReq *pReq) { FREESQL(); }
20!
3191

3192
void tFreeSDDropQnodeReq(SDDropQnodeReq *pReq) { FREESQL(); }
14!
3193

3194
int32_t tSerializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
76✔
3195
  SEncoder encoder = {0};
76✔
3196
  int32_t  code = 0;
76✔
3197
  int32_t  lino;
3198
  int32_t  tlen;
3199
  tEncoderInit(&encoder, buf, bufLen);
76✔
3200

3201
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
76!
3202
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
152!
3203
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
152!
3204
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
152!
3205
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
152!
3206
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->unsafe));
152!
3207
  ENCODESQL();
228!
3208
  tEndEncode(&encoder);
76✔
3209

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

3220
int32_t tDeserializeSDropDnodeReq(void *buf, int32_t bufLen, SDropDnodeReq *pReq) {
18✔
3221
  SDecoder decoder = {0};
18✔
3222
  int32_t  code = 0;
18✔
3223
  int32_t  lino;
3224
  tDecoderInit(&decoder, buf, bufLen);
18✔
3225

3226
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
18!
3227
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
36!
3228
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
18!
3229
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
36!
3230
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
36!
3231
  if (!tDecodeIsEnd(&decoder)) {
18!
3232
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->unsafe));
36!
3233
  } else {
3234
    pReq->unsafe = false;
×
3235
  }
3236

3237
  DECODESQL();
54!
3238
  tEndDecode(&decoder);
18✔
3239

3240
_exit:
18✔
3241
  tDecoderClear(&decoder);
18✔
3242
  return code;
18✔
3243
}
3244

3245
void tFreeSDropDnodeReq(SDropDnodeReq *pReq) { FREESQL(); }
56!
3246

3247
int32_t tSerializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
32✔
3248
  SEncoder encoder = {0};
32✔
3249
  int32_t  code = 0;
32✔
3250
  int32_t  lino;
3251
  int32_t  tlen;
3252
  tEncoderInit(&encoder, buf, bufLen);
32✔
3253

3254
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
3255
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
64!
3256
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->restoreType));
64!
3257
  ENCODESQL();
96!
3258
  tEndEncode(&encoder);
32✔
3259

3260
_exit:
32✔
3261
  if (code) {
32!
3262
    tlen = code;
×
3263
  } else {
3264
    tlen = encoder.pos;
32✔
3265
  }
3266
  tEncoderClear(&encoder);
32✔
3267
  return tlen;
32✔
3268
}
3269

3270
int32_t tDeserializeSRestoreDnodeReq(void *buf, int32_t bufLen, SRestoreDnodeReq *pReq) {
8✔
3271
  SDecoder decoder = {0};
8✔
3272
  int32_t  code = 0;
8✔
3273
  int32_t  lino;
3274
  tDecoderInit(&decoder, buf, bufLen);
8✔
3275

3276
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
3277
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
16!
3278
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->restoreType));
16!
3279
  DECODESQL();
24!
3280
  tEndDecode(&decoder);
8✔
3281

3282
_exit:
8✔
3283
  tDecoderClear(&decoder);
8✔
3284
  return code;
8✔
3285
}
3286

3287
void tFreeSRestoreDnodeReq(SRestoreDnodeReq *pReq) { FREESQL(); }
24!
3288

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

3296
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
36!
3297
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
72!
3298
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
72!
3299
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
72!
3300
  ENCODESQL();
108!
3301
  tEndEncode(&encoder);
36✔
3302

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

3313
int32_t tDeserializeSMCfgDnodeReq(void *buf, int32_t bufLen, SMCfgDnodeReq *pReq) {
8✔
3314
  SDecoder decoder = {0};
8✔
3315
  int32_t  code = 0;
8✔
3316
  int32_t  lino;
3317
  tDecoderInit(&decoder, buf, bufLen);
8✔
3318

3319
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
3320
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
16!
3321
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
8!
3322
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
8!
3323
  DECODESQL();
24!
3324
  tEndDecode(&decoder);
8✔
3325

3326
_exit:
8✔
3327
  tDecoderClear(&decoder);
8✔
3328
  return code;
8✔
3329
}
3330

3331
void tFreeSMCfgDnodeReq(SMCfgDnodeReq *pReq) { FREESQL(); }
26!
3332

3333
int32_t tSerializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
×
3334
  SEncoder encoder = {0};
×
3335
  int32_t  code = 0;
×
3336
  int32_t  lino;
3337
  int32_t  tlen;
3338
  tEncoderInit(&encoder, buf, bufLen);
×
3339

3340
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3341
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->version));
×
3342
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->config));
×
3343
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->value));
×
3344
  tEndEncode(&encoder);
×
3345

3346
_exit:
×
3347
  if (code) {
×
3348
    tlen = code;
×
3349
  } else {
3350
    tlen = encoder.pos;
×
3351
  }
3352
  tEncoderClear(&encoder);
×
3353
  return tlen;
×
3354
}
3355

3356
int32_t tDeserializeSDCfgDnodeReq(void *buf, int32_t bufLen, SDCfgDnodeReq *pReq) {
×
3357
  SDecoder decoder = {0};
×
3358
  int32_t  code = 0;
×
3359
  int32_t  lino;
3360
  tDecoderInit(&decoder, buf, bufLen);
×
3361

3362
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3363
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->version));
×
3364
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->config));
×
3365
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->value));
×
3366
  tEndDecode(&decoder);
×
3367

3368
_exit:
×
3369
  tDecoderClear(&decoder);
×
3370
  return code;
×
3371
}
3372

3373
int32_t tSerializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
×
3374
  SEncoder encoder = {0};
×
3375
  int32_t  code = 0;
×
3376
  int32_t  lino;
3377
  int32_t  tlen;
3378
  tEncoderInit(&encoder, buf, bufLen);
×
3379

3380
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3381
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->urlLen));
×
3382
  if (pReq->urlLen > 0) {
×
3383
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->url, pReq->urlLen));
×
3384
  }
3385
  ENCODESQL();
×
3386
  tEndEncode(&encoder);
×
3387

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

3398
int32_t tDeserializeSMCreateAnodeReq(void *buf, int32_t bufLen, SMCreateAnodeReq *pReq) {
×
3399
  SDecoder decoder = {0};
×
3400
  int32_t  code = 0;
×
3401
  int32_t  lino;
3402

3403
  tDecoderInit(&decoder, buf, bufLen);
×
3404

3405
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3406
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->urlLen));
×
3407
  if (pReq->urlLen > 0) {
×
3408
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->url, NULL));
×
3409
  }
3410

3411
  DECODESQL();
×
3412
  tEndDecode(&decoder);
×
3413

3414
_exit:
×
3415
  tDecoderClear(&decoder);
×
3416
  return code;
×
3417
}
3418

3419
void tFreeSMCreateAnodeReq(SMCreateAnodeReq *pReq) {
×
3420
  taosMemoryFreeClear(pReq->url);
×
3421
  FREESQL();
×
3422
}
×
3423

3424
int32_t tSerializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
×
3425
  SEncoder encoder = {0};
×
3426
  int32_t  code = 0;
×
3427
  int32_t  lino;
3428
  int32_t  tlen;
3429
  tEncoderInit(&encoder, buf, bufLen);
×
3430

3431
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
3432
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->anodeId));
×
3433
  ENCODESQL();
×
3434
  tEndEncode(&encoder);
×
3435

3436
_exit:
×
3437
  if (code) {
×
3438
    tlen = code;
×
3439
  } else {
3440
    tlen = encoder.pos;
×
3441
  }
3442
  tEncoderClear(&encoder);
×
3443
  return tlen;
×
3444
}
3445

3446
int32_t tDeserializeSMDropAnodeReq(void *buf, int32_t bufLen, SMDropAnodeReq *pReq) {
×
3447
  SDecoder decoder = {0};
×
3448
  int32_t  code = 0;
×
3449
  int32_t  lino;
3450

3451
  tDecoderInit(&decoder, buf, bufLen);
×
3452

3453
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3454
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->anodeId));
×
3455
  DECODESQL();
×
3456
  tEndDecode(&decoder);
×
3457

3458
_exit:
×
3459
  tDecoderClear(&decoder);
×
3460
  return code;
×
3461
}
3462

3463
void tFreeSMDropAnodeReq(SMDropAnodeReq *pReq) { FREESQL(); }
×
3464

3465
int32_t tSerializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3466
  return tSerializeSMDropAnodeReq(buf, bufLen, pReq);
×
3467
}
3468

3469
int32_t tDeserializeSMUpdateAnodeReq(void *buf, int32_t bufLen, SMUpdateAnodeReq *pReq) {
×
3470
  return tDeserializeSMDropAnodeReq(buf, bufLen, pReq);
×
3471
}
3472

3473
void tFreeSMUpdateAnodeReq(SMUpdateAnodeReq *pReq) { tFreeSMDropAnodeReq(pReq); }
×
3474

3475
int32_t tSerializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
52✔
3476
  SEncoder encoder = {0};
52✔
3477
  int32_t  code = 0;
52✔
3478
  int32_t  lino;
3479
  int32_t  tlen;
3480
  tEncoderInit(&encoder, buf, bufLen);
52✔
3481

3482
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
52!
3483
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fqdn));
104!
3484
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->port));
104!
3485
  ENCODESQL();
156!
3486
  tEndEncode(&encoder);
52✔
3487

3488
_exit:
52✔
3489
  if (code) {
52!
3490
    tlen = code;
×
3491
  } else {
3492
    tlen = encoder.pos;
52✔
3493
  }
3494
  tEncoderClear(&encoder);
52✔
3495
  return tlen;
52✔
3496
}
3497

3498
int32_t tDeserializeSCreateDnodeReq(void *buf, int32_t bufLen, SCreateDnodeReq *pReq) {
12✔
3499
  SDecoder decoder = {0};
12✔
3500
  int32_t  code = 0;
12✔
3501
  int32_t  lino;
3502
  tDecoderInit(&decoder, buf, bufLen);
12✔
3503

3504
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
12!
3505
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fqdn));
12!
3506
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->port));
24!
3507
  DECODESQL();
36!
3508
  tEndDecode(&decoder);
12✔
3509

3510
_exit:
12✔
3511
  tDecoderClear(&decoder);
12✔
3512
  return code;
12✔
3513
}
3514

3515
void tFreeSCreateDnodeReq(SCreateDnodeReq *pReq) { FREESQL(); }
38!
3516

3517
int32_t tSerializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
36✔
3518
  SEncoder encoder = {0};
36✔
3519
  int32_t  code = 0;
36✔
3520
  int32_t  lino;
3521
  int32_t  tlen;
3522
  tEncoderInit(&encoder, buf, bufLen);
36✔
3523

3524
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
36!
3525
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
72!
3526
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
72!
3527
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->funcType));
72!
3528
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->scriptType));
72!
3529
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->outputType));
72!
3530
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->outputLen));
72!
3531
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->bufSize));
72!
3532
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->codeLen));
72!
3533
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->signature));
72!
3534

3535
  if (pReq->pCode != NULL) {
36✔
3536
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->pCode, pReq->codeLen));
64!
3537
  }
3538

3539
  int32_t commentSize = 0;
36✔
3540
  if (pReq->pComment != NULL) {
36✔
3541
    commentSize = strlen(pReq->pComment) + 1;
18✔
3542
  }
3543
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, commentSize));
36!
3544
  if (pReq->pComment != NULL) {
36✔
3545
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pComment));
36!
3546
  }
3547

3548
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
72!
3549

3550
  tEndEncode(&encoder);
36✔
3551

3552
_exit:
36✔
3553
  if (code) {
36!
3554
    tlen = code;
×
3555
  } else {
3556
    tlen = encoder.pos;
36✔
3557
  }
3558
  tEncoderClear(&encoder);
36✔
3559
  return tlen;
36✔
3560
}
3561

3562
int32_t tDeserializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pReq) {
14✔
3563
  SDecoder decoder = {0};
14✔
3564
  int32_t  code = 0;
14✔
3565
  int32_t  lino;
3566
  tDecoderInit(&decoder, buf, bufLen);
14✔
3567

3568
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
14!
3569
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
14!
3570
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
28!
3571
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->funcType));
28!
3572
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->scriptType));
28!
3573
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->outputType));
28!
3574
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->outputLen));
28!
3575
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->bufSize));
28!
3576
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->codeLen));
28!
3577
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->signature));
28!
3578

3579
  if (pReq->codeLen > 0) {
14✔
3580
    pReq->pCode = taosMemoryCalloc(1, pReq->codeLen);
12!
3581
    if (pReq->pCode == NULL) {
12!
3582
      TAOS_CHECK_EXIT(terrno);
×
3583
    }
3584
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pCode));
12!
3585
  }
3586

3587
  int32_t commentSize = 0;
14✔
3588
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &commentSize));
14!
3589
  if (commentSize > 0) {
14✔
3590
    pReq->pComment = taosMemoryCalloc(1, commentSize);
9!
3591
    if (pReq->pComment == NULL) {
9!
3592
      TAOS_CHECK_EXIT(terrno);
×
3593
    }
3594
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pComment));
9!
3595
  }
3596

3597
  if (!tDecodeIsEnd(&decoder)) {
14!
3598
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
28!
3599
  } else {
3600
    pReq->orReplace = false;
×
3601
  }
3602

3603
  tEndDecode(&decoder);
14✔
3604

3605
_exit:
14✔
3606
  tDecoderClear(&decoder);
14✔
3607
  return code;
14✔
3608
}
3609

3610
void tFreeSCreateFuncReq(SCreateFuncReq *pReq) {
32✔
3611
  taosMemoryFree(pReq->pCode);
32!
3612
  taosMemoryFree(pReq->pComment);
32!
3613
}
32✔
3614

3615
int32_t tSerializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
8✔
3616
  SEncoder encoder = {0};
8✔
3617
  int32_t  code = 0;
8✔
3618
  int32_t  lino;
3619
  int32_t  tlen;
3620
  tEncoderInit(&encoder, buf, bufLen);
8✔
3621

3622
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
3623
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
16!
3624
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
16!
3625
  tEndEncode(&encoder);
8✔
3626

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

3637
int32_t tDeserializeSDropFuncReq(void *buf, int32_t bufLen, SDropFuncReq *pReq) {
4✔
3638
  SDecoder decoder = {0};
4✔
3639
  int32_t  code = 0;
4✔
3640
  int32_t  lino;
3641
  tDecoderInit(&decoder, buf, bufLen);
4✔
3642

3643
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
3644
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
4!
3645
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
8!
3646
  tEndDecode(&decoder);
4✔
3647

3648
_exit:
4✔
3649
  tDecoderClear(&decoder);
4✔
3650
  return code;
4✔
3651
}
3652

3653
int32_t tSerializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
18✔
3654
  SEncoder encoder = {0};
18✔
3655
  int32_t  code = 0;
18✔
3656
  int32_t  lino;
3657
  int32_t  tlen;
3658
  tEncoderInit(&encoder, buf, bufLen);
18✔
3659

3660
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
18!
3661
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfFuncs));
36!
3662
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreCodeComment));
36!
3663

3664
  if (pReq->numOfFuncs != (int32_t)taosArrayGetSize(pReq->pFuncNames)) {
18!
3665
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3666
  }
3667
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
2,086✔
3668
    char *fname = taosArrayGet(pReq->pFuncNames, i);
2,068✔
3669
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, fname));
2,068!
3670
  }
3671

3672
  tEndEncode(&encoder);
18✔
3673

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

3684
int32_t tDeserializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq *pReq) {
8✔
3685
  SDecoder decoder = {0};
8✔
3686
  int32_t  code = 0;
8✔
3687
  int32_t  lino;
3688
  tDecoderInit(&decoder, buf, bufLen);
8✔
3689

3690
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
3691
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfFuncs));
16!
3692
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->ignoreCodeComment));
16!
3693

3694
  pReq->pFuncNames = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN);
8✔
3695
  if (pReq->pFuncNames == NULL) {
8!
3696
    TAOS_CHECK_EXIT(terrno);
×
3697
  }
3698

3699
  for (int32_t i = 0; i < pReq->numOfFuncs; ++i) {
1,041✔
3700
    char fname[TSDB_FUNC_NAME_LEN] = {0};
1,033✔
3701
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fname));
1,033!
3702
    if (taosArrayPush(pReq->pFuncNames, fname) == NULL) {
2,066!
3703
      TAOS_CHECK_EXIT(terrno);
×
3704
    }
3705
  }
3706
  tEndDecode(&decoder);
8✔
3707

3708
_exit:
8✔
3709
  tDecoderClear(&decoder);
8✔
3710
  return code;
8✔
3711
}
3712

3713
void tFreeSRetrieveFuncReq(SRetrieveFuncReq *pReq) { taosArrayDestroy(pReq->pFuncNames); }
16✔
3714

3715
int32_t tSerializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
10✔
3716
  SEncoder encoder = {0};
10✔
3717
  int32_t  code = 0;
10✔
3718
  int32_t  lino;
3719
  int32_t  tlen;
3720
  tEncoderInit(&encoder, buf, bufLen);
10✔
3721

3722
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
10!
3723
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfFuncs));
20!
3724

3725
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncInfos)) {
10!
3726
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3727
  }
3728
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
22✔
3729
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
12✔
3730

3731
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->name));
24!
3732
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->funcType));
24!
3733
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->scriptType));
24!
3734
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pInfo->outputType));
24!
3735
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->outputLen));
24!
3736
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->bufSize));
24!
3737
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pInfo->signature));
24!
3738
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->codeSize));
24!
3739
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pInfo->commentSize));
24!
3740
    if (pInfo->codeSize) {
12✔
3741
      TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pInfo->pCode, pInfo->codeSize));
20!
3742
    }
3743
    if (pInfo->commentSize) {
12✔
3744
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pInfo->pComment));
20!
3745
    }
3746
  }
3747

3748
  if (pRsp->numOfFuncs != (int32_t)taosArrayGetSize(pRsp->pFuncExtraInfos)) {
10!
3749
    TAOS_CHECK_EXIT(TSDB_CODE_INVALID_PARA);
×
3750
  }
3751
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
22✔
3752
    SFuncExtraInfo *extraInfo = taosArrayGet(pRsp->pFuncExtraInfos, i);
12✔
3753
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, extraInfo->funcVersion));
24!
3754
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, extraInfo->funcCreatedTime));
24!
3755
  }
3756

3757
  tEndEncode(&encoder);
10✔
3758

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

3769
int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp *pRsp) {
5✔
3770
  SDecoder decoder = {0};
5✔
3771
  int32_t  code = 0;
5✔
3772
  int32_t  lino;
3773
  tDecoderInit(&decoder, buf, bufLen);
5✔
3774

3775
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
5!
3776
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfFuncs));
10!
3777

3778
  pRsp->pFuncInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncInfo));
5✔
3779
  if (pRsp->pFuncInfos == NULL) {
5!
3780
    TAOS_CHECK_EXIT(terrno);
×
3781
  }
3782

3783
  for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
11✔
3784
    SFuncInfo fInfo = {0};
6✔
3785
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.name));
6!
3786
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.funcType));
6!
3787
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.scriptType));
6!
3788
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &fInfo.outputType));
6!
3789
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.outputLen));
6!
3790
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.bufSize));
6!
3791
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &fInfo.signature));
6!
3792
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.codeSize));
6!
3793
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &fInfo.commentSize));
6!
3794
    if (fInfo.codeSize) {
6✔
3795
      fInfo.pCode = taosMemoryCalloc(1, fInfo.codeSize);
5!
3796
      if (fInfo.pCode == NULL) {
5!
3797
        TAOS_CHECK_EXIT(terrno);
×
3798
      }
3799
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pCode));
5!
3800
    }
3801
    if (fInfo.commentSize) {
6✔
3802
      fInfo.pComment = taosMemoryCalloc(1, fInfo.commentSize);
5!
3803
      if (fInfo.pComment == NULL) {
5!
3804
        TAOS_CHECK_EXIT(terrno);
×
3805
      }
3806
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, fInfo.pComment));
5!
3807
    }
3808

3809
    if (taosArrayPush(pRsp->pFuncInfos, &fInfo) == NULL) {
12!
3810
      TAOS_CHECK_EXIT(terrno);
×
3811
    }
3812
  }
3813

3814
  pRsp->pFuncExtraInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncExtraInfo));
5✔
3815
  if (pRsp->pFuncExtraInfos == NULL) {
5!
3816
    TAOS_CHECK_EXIT(terrno);
×
3817
  }
3818
  if (tDecodeIsEnd(&decoder)) {
5!
3819
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
×
3820
      SFuncExtraInfo extraInfo = {0};
×
3821
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
×
3822
        TAOS_CHECK_EXIT(terrno);
×
3823
      }
3824
    }
3825
  } else {
3826
    for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) {
11✔
3827
      SFuncExtraInfo extraInfo = {0};
6✔
3828
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &extraInfo.funcVersion));
6!
3829
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &extraInfo.funcCreatedTime));
6!
3830
      if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) {
12!
3831
        TAOS_CHECK_EXIT(terrno);
×
3832
      }
3833
    }
3834
  }
3835
  tEndDecode(&decoder);
5✔
3836

3837
_exit:
5✔
3838
  tDecoderClear(&decoder);
5✔
3839
  return code;
5✔
3840
}
3841

3842
void tFreeSFuncInfo(SFuncInfo *pInfo) {
20✔
3843
  if (NULL == pInfo) {
20!
3844
    return;
×
3845
  }
3846

3847
  taosMemoryFree(pInfo->pCode);
20!
3848
  taosMemoryFree(pInfo->pComment);
20!
3849
}
3850

3851
void tFreeSRetrieveFuncRsp(SRetrieveFuncRsp *pRsp) {
13✔
3852
  int32_t size = taosArrayGetSize(pRsp->pFuncInfos);
13✔
3853
  for (int32_t i = 0; i < size; ++i) {
25✔
3854
    SFuncInfo *pInfo = taosArrayGet(pRsp->pFuncInfos, i);
12✔
3855
    tFreeSFuncInfo(pInfo);
12✔
3856
  }
3857
  taosArrayDestroy(pRsp->pFuncInfos);
13✔
3858
  taosArrayDestroy(pRsp->pFuncExtraInfos);
13✔
3859
}
13✔
3860

3861
int32_t tSerializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
2✔
3862
  int32_t code = 0;
2✔
3863
  int32_t lino;
3864
  int32_t headLen = sizeof(SMsgHead);
2✔
3865
  if (buf != NULL) {
2✔
3866
    buf = (char *)buf + headLen;
1✔
3867
    bufLen -= headLen;
1✔
3868
  }
3869

3870
  SEncoder encoder = {0};
2✔
3871
  tEncoderInit(&encoder, buf, bufLen);
2✔
3872

3873
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
3874
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
4!
3875
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
4!
3876
  tEndEncode(&encoder);
2✔
3877

3878
_exit:
2✔
3879
  if (code) {
2!
3880
    tEncoderClear(&encoder);
×
3881
    return code;
×
3882
  } else {
3883
    int32_t tlen = encoder.pos;
2✔
3884
    tEncoderClear(&encoder);
2✔
3885

3886
    if (buf != NULL) {
2✔
3887
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
1✔
3888
      pHead->vgId = htonl(pReq->header.vgId);
1✔
3889
      pHead->contLen = htonl(tlen + headLen);
1✔
3890
    }
3891

3892
    return tlen + headLen;
2✔
3893
  }
3894
}
3895

3896
int32_t tDeserializeSTableCfgReq(void *buf, int32_t bufLen, STableCfgReq *pReq) {
×
3897
  int32_t headLen = sizeof(SMsgHead);
×
3898

3899
  int32_t   code = 0;
×
3900
  int32_t   lino;
3901
  SMsgHead *pHead = buf;
×
3902
  pHead->vgId = pReq->header.vgId;
×
3903
  pHead->contLen = pReq->header.contLen;
×
3904

3905
  SDecoder decoder = {0};
×
3906
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
3907

3908
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
3909
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
×
3910
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
×
3911

3912
  tEndDecode(&decoder);
×
3913
_exit:
×
3914
  tDecoderClear(&decoder);
×
3915
  return code;
×
3916
}
3917

3918
int32_t tSerializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
2✔
3919
  SEncoder encoder = {0};
2✔
3920
  int32_t  code = 0;
2✔
3921
  int32_t  lino;
3922
  int32_t  tlen;
3923
  tEncoderInit(&encoder, buf, bufLen);
2✔
3924

3925
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
3926
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
4!
3927
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->stbName));
4!
3928
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
4!
3929
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfTags));
4!
3930
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfColumns));
4!
3931
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->tableType));
4!
3932
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay1));
4!
3933
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->delay2));
4!
3934
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark1));
4!
3935
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->watermark2));
4!
3936
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->ttl));
4!
3937

3938
  int32_t numOfFuncs = taosArrayGetSize(pRsp->pFuncs);
2✔
3939
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfFuncs));
2!
3940
  for (int32_t i = 0; i < numOfFuncs; ++i) {
2!
3941
    const char *pFunc = taosArrayGet(pRsp->pFuncs, i);
×
3942
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pFunc));
×
3943
  }
3944

3945
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->commentLen));
4!
3946
  if (pRsp->commentLen > 0) {
2!
3947
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->pComment));
×
3948
  }
3949

3950
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
6✔
3951
    SSchema *pSchema = &pRsp->pSchemas[i];
4✔
3952
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
4!
3953
  }
3954

3955
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->tagsLen));
4!
3956
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pRsp->pTags, pRsp->tagsLen));
4!
3957

3958
  if (withExtSchema(pRsp->tableType)) {
2!
3959
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
×
3960
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
×
3961
      TAOS_CHECK_EXIT(tEncodeSSchemaExt(&encoder, pSchemaExt));
×
3962
    }
3963
  }
3964

3965
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->virtualStb));
4!
3966
  if (hasRefCol(pRsp->tableType)) {
2!
3967
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
×
3968
      SColRef *pColRef = &pRsp->pColRefs[i];
×
3969
      TAOS_CHECK_EXIT(tEncodeSColRef(&encoder, pColRef));
×
3970
    }
3971
  }
3972

3973
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->keep));
4!
3974

3975
  tEndEncode(&encoder);
2✔
3976

3977
_exit:
2✔
3978
  if (code) {
2!
3979
    tlen = code;
×
3980
  } else {
3981
    tlen = encoder.pos;
2✔
3982
  }
3983
  tEncoderClear(&encoder);
2✔
3984
  return tlen;
2✔
3985
}
3986

3987
int32_t tDeserializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) {
1✔
3988
  SDecoder decoder = {0};
1✔
3989
  int32_t  code = 0;
1✔
3990
  int32_t  lino;
3991
  tDecoderInit(&decoder, buf, bufLen);
1✔
3992

3993
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
3994
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
1!
3995
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->stbName));
1!
3996
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
1!
3997
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfTags));
2!
3998
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfColumns));
2!
3999
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->tableType));
2!
4000
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay1));
2!
4001
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->delay2));
2!
4002
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark1));
2!
4003
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->watermark2));
2!
4004
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->ttl));
2!
4005

4006
  int32_t numOfFuncs = 0;
1✔
4007
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFuncs));
1!
4008
  if (numOfFuncs > 0) {
1!
4009
    pRsp->pFuncs = taosArrayInit(numOfFuncs, TSDB_FUNC_NAME_LEN);
×
4010
    if (NULL == pRsp->pFuncs) {
×
4011
      TAOS_CHECK_EXIT(terrno);
×
4012
    }
4013
  }
4014
  for (int32_t i = 0; i < numOfFuncs; ++i) {
1!
4015
    char pFunc[TSDB_FUNC_NAME_LEN];
4016
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pFunc));
×
4017
    if (taosArrayPush(pRsp->pFuncs, pFunc) == NULL) {
×
4018
      TAOS_CHECK_EXIT(terrno);
×
4019
    }
4020
  }
4021

4022
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->commentLen));
2!
4023
  if (pRsp->commentLen > 0) {
1!
4024
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pRsp->pComment));
×
4025
  } else {
4026
    pRsp->pComment = NULL;
1✔
4027
  }
4028

4029
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
1✔
4030
  pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
1!
4031
  if (pRsp->pSchemas == NULL) {
1!
4032
    TAOS_CHECK_EXIT(terrno);
×
4033
  }
4034

4035
  for (int32_t i = 0; i < totalCols; ++i) {
3✔
4036
    SSchema *pSchema = &pRsp->pSchemas[i];
2✔
4037
    TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
2!
4038
  }
4039

4040
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->tagsLen));
2!
4041
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pRsp->pTags, NULL));
2!
4042

4043
  if (!tDecodeIsEnd(&decoder)) {
1!
4044
    if (withExtSchema(pRsp->tableType) && pRsp->numOfColumns > 0) {
1!
4045
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
×
4046
      if (pRsp->pSchemaExt == NULL) {
×
4047
        TAOS_CHECK_EXIT(terrno);
×
4048
      }
4049

4050
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
×
4051
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
×
4052
        TAOS_CHECK_EXIT(tDecodeSSchemaExt(&decoder, pSchemaExt));
×
4053
      }
4054
    } else {
4055
      pRsp->pSchemaExt = NULL;
1✔
4056
    }
4057
  }
4058

4059
  if (!tDecodeIsEnd(&decoder)) {
1!
4060
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->virtualStb));
2!
4061
    if (hasRefCol(pRsp->tableType) && pRsp->numOfColumns > 0) {
1!
4062
      pRsp->pColRefs = taosMemoryMalloc(sizeof(SColRef) * pRsp->numOfColumns);
×
4063
      if (pRsp->pColRefs == NULL) {
×
4064
        TAOS_CHECK_EXIT(terrno);
×
4065
      }
4066

4067
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
×
4068
        SColRef *pColRef = &pRsp->pColRefs[i];
×
4069
        TAOS_CHECK_EXIT(tDecodeSColRef(&decoder, pColRef));
×
4070
      }
4071
    } else {
4072
      pRsp->pColRefs = NULL;
1✔
4073
    }
4074
  }
4075

4076
  if (!tDecodeIsEnd(&decoder)) {
1!
4077
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->keep));
2!
4078
  } else {
4079
    pRsp->keep = 0;
×
4080
  }
4081

4082
  tEndDecode(&decoder);
1✔
4083

4084
_exit:
1✔
4085
  tDecoderClear(&decoder);
1✔
4086
  return code;
1✔
4087
}
4088

4089
void tFreeSTableCfgRsp(STableCfgRsp *pRsp) {
2✔
4090
  if (NULL == pRsp) {
2!
4091
    return;
×
4092
  }
4093

4094
  taosMemoryFreeClear(pRsp->pComment);
2!
4095
  taosMemoryFreeClear(pRsp->pSchemas);
2!
4096
  taosMemoryFreeClear(pRsp->pSchemaExt);
2!
4097
  taosMemoryFreeClear(pRsp->pColRefs);
2!
4098
  taosMemoryFreeClear(pRsp->pTags);
2!
4099

4100
  taosArrayDestroy(pRsp->pFuncs);
2✔
4101
}
4102

4103
int32_t tSerializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
148✔
4104
  SEncoder encoder = {0};
148✔
4105
  int32_t  code = 0;
148✔
4106
  int32_t  lino;
4107
  int32_t  tlen;
4108

4109
  tEncoderInit(&encoder, buf, bufLen);
148✔
4110

4111
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
148!
4112
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
296!
4113
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfVgroups));
296!
4114
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
296!
4115
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
296!
4116
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
296!
4117
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
296!
4118
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
296!
4119
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
296!
4120
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
296!
4121
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
296!
4122
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
296!
4123
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
296!
4124
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
296!
4125
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
296!
4126
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
296!
4127
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
296!
4128
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
296!
4129
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
296!
4130
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
296!
4131
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
296!
4132
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->schemaless));
296!
4133
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
296!
4134
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
296!
4135
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
296!
4136
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
296!
4137
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
296!
4138
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
296!
4139
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
296!
4140
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreExist));
296!
4141
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
296!
4142
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
172✔
4143
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
24✔
4144
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
48!
4145
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
48!
4146
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
48!
4147
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
48!
4148
  }
4149
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
296!
4150
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
296!
4151

4152
  ENCODESQL();
424!
4153

4154
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
296!
4155
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
296!
4156
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
296!
4157
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
296!
4158
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
296!
4159
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dnodeListStr));
296!
4160

4161
  // auto-compact parameters
4162
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
296!
4163
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
296!
4164
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
296!
4165
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
296!
4166

4167
  tEndEncode(&encoder);
148✔
4168

4169
_exit:
148✔
4170
  if (code) {
148!
4171
    tlen = code;
×
4172
  } else {
4173
    tlen = encoder.pos;
148✔
4174
  }
4175
  tEncoderClear(&encoder);
148✔
4176
  return tlen;
148✔
4177
}
4178

4179
int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
18✔
4180
  SDecoder decoder = {0};
18✔
4181
  int32_t  code = 0;
18✔
4182
  int32_t  lino;
4183
  tDecoderInit(&decoder, buf, bufLen);
18✔
4184

4185
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
18!
4186
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
18!
4187
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfVgroups));
36!
4188
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
36!
4189
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
36!
4190
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
36!
4191
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
36!
4192
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
36!
4193
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
36!
4194
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
36!
4195
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
36!
4196
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
36!
4197
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
36!
4198
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
36!
4199
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
36!
4200
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
36!
4201
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
36!
4202
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
36!
4203
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
36!
4204
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
36!
4205
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
36!
4206
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->schemaless));
36!
4207
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
36!
4208
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
36!
4209
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
36!
4210
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
36!
4211
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
36!
4212
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
36!
4213
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
36!
4214
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreExist));
36!
4215
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
36!
4216
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
18✔
4217
  if (pReq->pRetensions == NULL) {
18!
4218
    TAOS_CHECK_EXIT(terrno);
×
4219
  }
4220

4221
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
24✔
4222
    SRetention rentension = {0};
6✔
4223
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
6!
4224
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
6!
4225
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
6!
4226
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
6!
4227
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
12!
4228
      TAOS_CHECK_EXIT(terrno);
×
4229
    }
4230
  }
4231

4232
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
36!
4233

4234
  if (!tDecodeIsEnd(&decoder)) {
18!
4235
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
36!
4236
  } else {
4237
    pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
4238
  }
4239

4240
  DECODESQL();
44!
4241

4242
  if (!tDecodeIsEnd(&decoder)) {
18!
4243
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
36!
4244
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
36!
4245
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
36!
4246
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
36!
4247
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
36!
4248
  } else {
4249
    pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
4250
    pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
4251
    pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
4252
    pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
4253
    pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
4254
  }
4255

4256
  if (!tDecodeIsEnd(&decoder)) {
18!
4257
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dnodeListStr));
18!
4258
  }
4259

4260
  if (!tDecodeIsEnd(&decoder)) {
18!
4261
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
36!
4262
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
36!
4263
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
36!
4264
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
36!
4265
  } else {
4266
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4267
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4268
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4269
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4270
  }
4271

4272
  tEndDecode(&decoder);
18✔
4273

4274
_exit:
18✔
4275
  tDecoderClear(&decoder);
18✔
4276
  return code;
18✔
4277
}
4278

4279
void tFreeSCreateDbReq(SCreateDbReq *pReq) {
110✔
4280
  taosArrayDestroy(pReq->pRetensions);
110✔
4281
  pReq->pRetensions = NULL;
110✔
4282
  FREESQL();
110!
4283
}
110✔
4284

4285
int32_t tSerializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) {
288✔
4286
  SEncoder encoder = {0};
288✔
4287
  int32_t  code = 0;
288✔
4288
  int32_t  lino;
4289
  int32_t  tlen;
4290

4291
  tEncoderInit(&encoder, buf, bufLen);
288✔
4292

4293
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
288!
4294
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
576!
4295
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
576!
4296
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
576!
4297
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
576!
4298
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
576!
4299
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
576!
4300
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
576!
4301
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
576!
4302
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
576!
4303
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
576!
4304
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
576!
4305
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
576!
4306
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
576!
4307
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replications));
576!
4308
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->sstTrigger));
576!
4309

4310
  // 1st modification
4311
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
576!
4312
  // 2nd modification
4313
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
576!
4314
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
576!
4315
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
576!
4316

4317
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
576!
4318
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
576!
4319

4320
  ENCODESQL();
864!
4321
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withArbitrator));
576!
4322
  // auto compact config
4323
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactInterval));
576!
4324
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactStartTime));
576!
4325
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->compactEndTime));
576!
4326
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compactTimeOffset));
576!
4327
  tEndEncode(&encoder);
288✔
4328

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

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

4345
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
72!
4346
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
72!
4347
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
144!
4348
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
144!
4349
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
144!
4350
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
144!
4351
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
144!
4352
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
144!
4353
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
144!
4354
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
144!
4355
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
144!
4356
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
144!
4357
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
144!
4358
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
144!
4359
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replications));
144!
4360
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->sstTrigger));
144!
4361

4362
  // 1st modification
4363
  if (!tDecodeIsEnd(&decoder)) {
72!
4364
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
144!
4365
  } else {
4366
    pReq->minRows = -1;
×
4367
  }
4368

4369
  // 2nd modification
4370
  if (!tDecodeIsEnd(&decoder)) {
72!
4371
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
144!
4372
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
144!
4373
  } else {
4374
    pReq->walRetentionPeriod = -1;
×
4375
    pReq->walRetentionSize = -1;
×
4376
  }
4377
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
72✔
4378
  if (!tDecodeIsEnd(&decoder)) {
72!
4379
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
144!
4380
  }
4381

4382
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
72✔
4383
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
72✔
4384
  if (!tDecodeIsEnd(&decoder)) {
72!
4385
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
144!
4386
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
144!
4387
  }
4388

4389
  DECODESQL();
216!
4390
  pReq->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
72✔
4391
  if (!tDecodeIsEnd(&decoder)) {
72!
4392
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withArbitrator));
144!
4393
  }
4394

4395
  // auto compact config
4396
  if (!tDecodeIsEnd(&decoder)) {
72!
4397
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactInterval));
144!
4398
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactStartTime));
144!
4399
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->compactEndTime));
144!
4400
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compactTimeOffset));
144!
4401
  } else {
4402
    pReq->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
4403
    pReq->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
4404
    pReq->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
4405
    pReq->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
4406
  }
4407
  tEndDecode(&decoder);
72✔
4408

4409
_exit:
72✔
4410
  tDecoderClear(&decoder);
72✔
4411
  return code;
72✔
4412
}
4413

4414
void tFreeSAlterDbReq(SAlterDbReq *pReq) { FREESQL(); }
216!
4415

4416
int32_t tSerializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
142✔
4417
  SEncoder encoder = {0};
142✔
4418
  int32_t  code = 0;
142✔
4419
  int32_t  lino;
4420
  int32_t  tlen;
4421
  tEncoderInit(&encoder, buf, bufLen);
142✔
4422

4423
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
142!
4424
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
284!
4425
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->ignoreNotExists));
284!
4426
  ENCODESQL();
410!
4427
  tEndEncode(&encoder);
142✔
4428

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

4439
int32_t tDeserializeSDropDbReq(void *buf, int32_t bufLen, SDropDbReq *pReq) {
8✔
4440
  SDecoder decoder = {0};
8✔
4441
  int32_t  code = 0;
8✔
4442
  int32_t  lino;
4443
  tDecoderInit(&decoder, buf, bufLen);
8✔
4444

4445
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
4446
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
8!
4447
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->ignoreNotExists));
16!
4448
  DECODESQL();
16!
4449
  tEndDecode(&decoder);
8✔
4450

4451
_exit:
8✔
4452
  tDecoderClear(&decoder);
8✔
4453
  return code;
8✔
4454
}
4455

4456
void tFreeSDropDbReq(SDropDbReq *pReq) { FREESQL(); }
71!
4457

4458
int32_t tSerializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
16✔
4459
  SEncoder encoder = {0};
16✔
4460
  int32_t  code = 0;
16✔
4461
  int32_t  lino;
4462
  int32_t  tlen;
4463
  tEncoderInit(&encoder, buf, bufLen);
16✔
4464

4465
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
4466
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->db));
32!
4467
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->uid));
32!
4468
  tEndEncode(&encoder);
16✔
4469

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

4480
int32_t tDeserializeSDropDbRsp(void *buf, int32_t bufLen, SDropDbRsp *pRsp) {
62✔
4481
  SDecoder decoder = {0};
62✔
4482
  int32_t  code = 0;
62✔
4483
  int32_t  lino;
4484
  tDecoderInit(&decoder, buf, bufLen);
62✔
4485

4486
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
62!
4487
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->db));
62!
4488
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->uid));
124!
4489
  tEndDecode(&decoder);
62✔
4490

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

4496
int32_t tSerializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
6,506✔
4497
  SEncoder encoder = {0};
6,506✔
4498
  int32_t  code = 0;
6,506✔
4499
  int32_t  lino;
4500
  int32_t  tlen;
4501
  tEncoderInit(&encoder, buf, bufLen);
6,506✔
4502

4503
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
6,506!
4504
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
13,012!
4505
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbId));
13,012!
4506
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
13,012!
4507
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTable));
13,012!
4508
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stateTs));
13,012!
4509
  tEndEncode(&encoder);
6,506✔
4510

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

4521
int32_t tDeserializeSUseDbReq(void *buf, int32_t bufLen, SUseDbReq *pReq) {
×
4522
  SDecoder decoder = {0};
×
4523
  int32_t  code = 0;
×
4524
  int32_t  lino;
4525
  tDecoderInit(&decoder, buf, bufLen);
×
4526

4527
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
4528
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
4529
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbId));
×
4530
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
×
4531
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTable));
×
4532
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stateTs));
×
4533
  tEndDecode(&decoder);
×
4534

4535
_exit:
×
4536
  tDecoderClear(&decoder);
×
4537
  return code;
×
4538
}
4539

4540
int32_t tSerializeSVSubTablesReq(void *buf, int32_t bufLen, SVSubTablesReq *pReq) {
×
4541
  SEncoder encoder = {0};
×
4542
  int32_t  code = 0;
×
4543
  int32_t  lino;
4544
  int32_t  tlen;
4545
  tEncoderInit(&encoder, buf, bufLen);
×
4546

4547
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
4548
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->suid));
×
4549
  tEndEncode(&encoder);
×
4550

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

4561
int32_t tDeserializeSVSubTablesReq(void *buf, int32_t bufLen, SVSubTablesReq *pReq) {
×
4562
  SDecoder decoder = {0};
×
4563
  int32_t  code = 0;
×
4564
  int32_t  lino;
4565
  tDecoderInit(&decoder, buf, bufLen);
×
4566

4567
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
4568
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->suid));
×
4569
  tEndDecode(&decoder);
×
4570

4571
_exit:
×
4572
  tDecoderClear(&decoder);
×
4573
  return code;
×
4574
}
4575

4576
int32_t tSerializeSVSubTablesRspImpl(SEncoder* pEncoder, SVSubTablesRsp *pRsp) {
×
4577
  int32_t  code = 0;
×
4578
  int32_t  lino;
4579
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
×
4580
  int32_t numOfTables = taosArrayGetSize(pRsp->pTables);
×
4581
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, numOfTables));
×
4582
  for (int32_t i = 0; i < numOfTables; ++i) {
×
4583
    SVCTableRefCols *pTb = (SVCTableRefCols *)taosArrayGetP(pRsp->pTables, i);
×
4584
    TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTb->uid));
×
4585
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTb->numOfSrcTbls));
×
4586
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTb->numOfColRefs));
×
4587
    for (int32_t n = 0; n < pTb->numOfColRefs; ++n) {
×
4588
      SRefColInfo* pCol = pTb->refCols + n;
×
4589
      TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pCol->colId));
×
4590
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refDbName));
×
4591
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refTableName));
×
4592
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pCol->refColName));
×
4593
    }
4594
  }
4595

4596
_exit:
×
4597

4598
  return code;
×
4599
}
4600

4601
int32_t tSerializeSVSubTablesRsp(void *buf, int32_t bufLen, SVSubTablesRsp *pRsp) {
×
4602
  SEncoder encoder = {0};
×
4603
  int32_t  code = 0;
×
4604
  int32_t  lino;
4605
  int32_t  tlen;
4606
  tEncoderInit(&encoder, buf, bufLen);
×
4607

4608
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
4609
  TAOS_CHECK_EXIT(tSerializeSVSubTablesRspImpl(&encoder, pRsp));
×
4610

4611
  tEndEncode(&encoder);
×
4612

4613
_exit:
×
4614
  if (code) {
×
4615
    tlen = code;
×
4616
  } else {
4617
    tlen = encoder.pos;
×
4618
  }
4619
  tEncoderClear(&encoder);
×
4620
  return tlen;
×
4621
}
4622

4623
int32_t tDeserializeSVSubTablesRspImpl(SDecoder* pDecoder, SVSubTablesRsp *pRsp) {
×
4624
  int32_t  code = 0;
×
4625
  int32_t  lino;
4626
  SVCTableRefCols tb = {0};
×
4627
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
×
4628
  int32_t numOfTables = 0;
×
4629
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &numOfTables));
×
4630
  if (numOfTables > 0) {
×
4631
    pRsp->pTables = taosArrayInit(numOfTables, POINTER_BYTES);
×
4632
    if (NULL == pRsp->pTables) {
×
4633
      code = terrno;
×
4634
      return code;
×
4635
    }
4636
    
4637
    for (int32_t i = 0; i < numOfTables; ++i) {
×
4638
      TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &tb.uid));
×
4639
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &tb.numOfSrcTbls));
×
4640
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &tb.numOfColRefs));
×
4641
      if (tb.numOfColRefs > 0) {
×
4642
        SVCTableRefCols* pTb = taosMemoryCalloc(1, sizeof(tb) + tb.numOfColRefs * sizeof(SRefColInfo));
×
4643
        if (NULL == pTb) {
×
4644
          code = terrno;
×
4645
          return code;
×
4646
        }
4647
        if (NULL == taosArrayPush(pRsp->pTables, &pTb)) {
×
4648
          code = terrno;
×
4649
          taosMemoryFree(pTb);
×
4650
          return code;
×
4651
        }
4652

4653
        pTb->uid = tb.uid;
×
4654
        pTb->numOfSrcTbls = tb.numOfSrcTbls;
×
4655
        pTb->numOfColRefs = tb.numOfColRefs;
×
4656
        pTb->refCols = (SRefColInfo*)(pTb + 1);
×
4657
        for (int32_t n = 0; n < tb.numOfColRefs; ++n) {
×
4658
          TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &pTb->refCols[n].colId));
×
4659
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refDbName));
×
4660
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refTableName));
×
4661
          TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTb->refCols[n].refColName));
×
4662
        }
4663
      }
4664
    }
4665
  }
4666

4667
_exit:
×
4668

4669
  return code;
×
4670
}
4671

4672
int32_t tDeserializeSVSubTablesRsp(void *buf, int32_t bufLen, SVSubTablesRsp *pRsp) {
×
4673
  SDecoder decoder = {0};
×
4674
  int32_t  code = 0;
×
4675
  int32_t  lino;
4676
  tDecoderInit(&decoder, buf, bufLen);
×
4677

4678
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
4679
  TAOS_CHECK_EXIT(tDeserializeSVSubTablesRspImpl(&decoder, pRsp));
×
4680

4681
  tEndDecode(&decoder);
×
4682

4683
_exit:
×
4684

4685
  tDecoderClear(&decoder);
×
4686
  return code;
×
4687
}
4688

4689
void tFreeSVCTableRefCols(void *pParam) {
×
4690
  SVCTableRefCols* pCols = *(SVCTableRefCols**)pParam;
×
4691
  if (NULL == pCols) {
×
4692
    return;
×
4693
  }
4694

4695
  taosMemoryFree(pCols);
×
4696
}
4697

4698
void tDestroySVSubTablesRsp(void* rsp) {
×
4699
  if (NULL == rsp) {
×
4700
    return;
×
4701
  }
4702

4703
  SVSubTablesRsp *pRsp = (SVSubTablesRsp*)rsp;
×
4704

4705
  taosArrayDestroyEx(pRsp->pTables, tFreeSVCTableRefCols);
×
4706
}
4707

4708
int32_t tSerializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
2✔
4709
  SEncoder encoder = {0};
2✔
4710
  int32_t  code = 0;
2✔
4711
  int32_t  lino;
4712
  int32_t  tlen;
4713

4714
  tEncoderInit(&encoder, buf, bufLen);
2✔
4715

4716
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4717
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
4!
4718
  tEndEncode(&encoder);
2✔
4719

4720
_exit:
2✔
4721
  if (code) {
2!
4722
    tlen = code;
×
4723
  } else {
4724
    tlen = encoder.pos;
2✔
4725
  }
4726
  tEncoderClear(&encoder);
2✔
4727
  return tlen;
2✔
4728
}
4729

4730
int32_t tDeserializeSQnodeListReq(void *buf, int32_t bufLen, SQnodeListReq *pReq) {
×
4731
  SDecoder decoder = {0};
×
4732
  int32_t  code = 0;
×
4733
  int32_t  lino;
4734
  tDecoderInit(&decoder, buf, bufLen);
×
4735

4736
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
4737
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->rowNum));
×
4738
  tEndDecode(&decoder);
×
4739

4740
_exit:
×
4741
  tDecoderClear(&decoder);
×
4742
  return code;
×
4743
}
4744

4745
int32_t tSerializeSDnodeListReq(void *buf, int32_t bufLen, SDnodeListReq *pReq) {
2✔
4746
  SEncoder encoder = {0};
2✔
4747
  int32_t  code = 0;
2✔
4748
  int32_t  lino;
4749
  int32_t  tlen;
4750
  tEncoderInit(&encoder, buf, bufLen);
2✔
4751

4752
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4753
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->rowNum));
4!
4754
  tEndEncode(&encoder);
2✔
4755

4756
_exit:
2✔
4757
  if (code) {
2!
4758
    tlen = code;
×
4759
  } else {
4760
    tlen = encoder.pos;
2✔
4761
  }
4762
  tEncoderClear(&encoder);
2✔
4763
  return tlen;
2✔
4764
}
4765

4766
int32_t tSerializeSServerVerReq(void *buf, int32_t bufLen, SServerVerReq *pReq) {
2✔
4767
  SEncoder encoder = {0};
2✔
4768
  int32_t  code = 0;
2✔
4769
  int32_t  lino;
4770
  int32_t  tlen;
4771
  tEncoderInit(&encoder, buf, bufLen);
2✔
4772

4773
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4774
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
4!
4775
  tEndEncode(&encoder);
2✔
4776

4777
_exit:
2✔
4778
  if (code) {
2!
4779
    tlen = code;
×
4780
  } else {
4781
    tlen = encoder.pos;
2✔
4782
  }
4783
  tEncoderClear(&encoder);
2✔
4784
  return tlen;
2✔
4785
}
4786

4787
int32_t tSerializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
2✔
4788
  SEncoder encoder = {0};
2✔
4789
  int32_t  code = 0;
2✔
4790
  int32_t  lino;
4791
  int32_t  tlen;
4792
  tEncoderInit(&encoder, buf, bufLen);
2✔
4793

4794
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4795
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->ver));
4!
4796
  tEndEncode(&encoder);
2✔
4797

4798
_exit:
2✔
4799
  if (code) {
2!
4800
    tlen = code;
×
4801
  } else {
4802
    tlen = encoder.pos;
2✔
4803
  }
4804
  tEncoderClear(&encoder);
2✔
4805
  return tlen;
2✔
4806
}
4807

4808
int32_t tDeserializeSServerVerRsp(void *buf, int32_t bufLen, SServerVerRsp *pRsp) {
1✔
4809
  SDecoder decoder = {0};
1✔
4810
  int32_t  code = 0;
1✔
4811
  int32_t  lino;
4812
  tDecoderInit(&decoder, buf, bufLen);
1✔
4813

4814
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
4815
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->ver));
1!
4816

4817
  tEndDecode(&decoder);
1✔
4818
_exit:
1✔
4819
  tDecoderClear(&decoder);
1✔
4820
  return code;
1✔
4821
}
4822

4823
int32_t tSerializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
2✔
4824
  SEncoder encoder = {0};
2✔
4825
  int32_t  code = 0;
2✔
4826
  int32_t  lino;
4827
  int32_t  tlen;
4828
  tEncoderInit(&encoder, buf, bufLen);
2✔
4829

4830
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4831
  int32_t num = taosArrayGetSize(pRsp->qnodeList);
2✔
4832
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
2!
4833
  for (int32_t i = 0; i < num; ++i) {
8✔
4834
    SQueryNodeLoad *pLoad = taosArrayGet(pRsp->qnodeList, i);
6✔
4835
    TAOS_CHECK_EXIT(tEncodeSQueryNodeLoad(&encoder, pLoad));
6!
4836
  }
4837
  tEndEncode(&encoder);
2✔
4838

4839
_exit:
2✔
4840
  if (code) {
2!
4841
    tlen = code;
×
4842
  } else {
4843
    tlen = encoder.pos;
2✔
4844
  }
4845
  tEncoderClear(&encoder);
2✔
4846
  return tlen;
2✔
4847
}
4848

4849
int32_t tDeserializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp) {
1✔
4850
  SDecoder decoder = {0};
1✔
4851
  int32_t  code = 0;
1✔
4852
  int32_t  lino;
4853
  tDecoderInit(&decoder, buf, bufLen);
1✔
4854

4855
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
4856
  int32_t num = 0;
1✔
4857
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1!
4858
  if (NULL == pRsp->qnodeList) {
1!
4859
    pRsp->qnodeList = taosArrayInit(num, sizeof(SQueryNodeLoad));
×
4860
    if (NULL == pRsp->qnodeList) {
×
4861
      TAOS_CHECK_EXIT(terrno);
×
4862
    }
4863
  }
4864

4865
  for (int32_t i = 0; i < num; ++i) {
4✔
4866
    SQueryNodeLoad load = {0};
3✔
4867
    TAOS_CHECK_EXIT(tDecodeSQueryNodeLoad(&decoder, &load));
3!
4868
    if (taosArrayPush(pRsp->qnodeList, &load) == NULL) {
6!
4869
      TAOS_CHECK_EXIT(terrno);
×
4870
    }
4871
  }
4872
  tEndDecode(&decoder);
1✔
4873

4874
_exit:
1✔
4875
  tDecoderClear(&decoder);
1✔
4876
  return code;
1✔
4877
}
4878

4879
void tFreeSQnodeListRsp(SQnodeListRsp *pRsp) { taosArrayDestroy(pRsp->qnodeList); }
1✔
4880

4881
int32_t tSerializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
2✔
4882
  SEncoder encoder = {0};
2✔
4883
  int32_t  code = 0;
2✔
4884
  int32_t  lino;
4885
  int32_t  tlen;
4886
  tEncoderInit(&encoder, buf, bufLen);
2✔
4887

4888
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
4889
  int32_t num = taosArrayGetSize(pRsp->dnodeList);
2✔
4890
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
2!
4891
  for (int32_t i = 0; i < num; ++i) {
4✔
4892
    SEpSet *pEpSet = taosArrayGet(pRsp->dnodeList, i);
2✔
4893
    TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, pEpSet));
2!
4894
  }
4895
  tEndEncode(&encoder);
2✔
4896

4897
_exit:
2✔
4898
  if (code) {
2!
4899
    tlen = code;
×
4900
  } else {
4901
    tlen = encoder.pos;
2✔
4902
  }
4903
  tEncoderClear(&encoder);
2✔
4904
  return tlen;
2✔
4905
}
4906

4907
int32_t tDeserializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp) {
1✔
4908
  SDecoder decoder = {0};
1✔
4909
  int32_t  code = 0;
1✔
4910
  int32_t  lino;
4911
  tDecoderInit(&decoder, buf, bufLen);
1✔
4912

4913
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
4914
  int32_t num = 0;
1✔
4915
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1!
4916
  if (NULL == pRsp->dnodeList) {
1!
4917
    pRsp->dnodeList = taosArrayInit(num, sizeof(SEpSet));
1✔
4918
    if (NULL == pRsp->dnodeList) {
1!
4919
      TAOS_CHECK_EXIT(terrno);
×
4920
    }
4921
  }
4922

4923
  for (int32_t i = 0; i < num; ++i) {
2✔
4924
    SEpSet epSet = {0};
1✔
4925
    TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &epSet));
1!
4926
    if (taosArrayPush(pRsp->dnodeList, &epSet) == NULL) {
2!
4927
      TAOS_CHECK_EXIT(terrno);
×
4928
    }
4929
  }
4930
  tEndDecode(&decoder);
1✔
4931

4932
_exit:
1✔
4933
  tDecoderClear(&decoder);
1✔
4934
  return code;
1✔
4935
}
4936

4937
void tFreeSDnodeListRsp(SDnodeListRsp *pRsp) { taosArrayDestroy(pRsp->dnodeList); }
1✔
4938

4939
int32_t tSerializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
32✔
4940
  SEncoder encoder = {0};
32✔
4941
  int32_t  code = 0;
32✔
4942
  int32_t  lino;
4943
  int32_t  tlen;
4944
  tEncoderInit(&encoder, buf, bufLen);
32✔
4945

4946
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
32!
4947
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
64!
4948
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.skey));
64!
4949
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeRange.ekey));
64!
4950
  ENCODESQL();
96!
4951

4952
  // encode vgroup list
4953
  int32_t numOfVgroups = taosArrayGetSize(pReq->vgroupIds);
32✔
4954
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfVgroups));
32!
4955
  if (numOfVgroups > 0) {
32!
4956
    for (int32_t i = 0; i < numOfVgroups; ++i) {
×
4957
      int64_t vgid = *(int64_t *)taosArrayGet(pReq->vgroupIds, i);
×
4958
      TAOS_CHECK_EXIT(tEncodeI64v(&encoder, vgid));
×
4959
    }
4960
  }
4961

4962
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
64!
4963

4964
  tEndEncode(&encoder);
32✔
4965

4966
_exit:
32✔
4967
  if (code) {
32!
4968
    tlen = code;
×
4969
  } else {
4970
    tlen = encoder.pos;
32✔
4971
  }
4972
  tEncoderClear(&encoder);
32✔
4973
  return tlen;
32✔
4974
}
4975

4976
int32_t tDeserializeSCompactDbReq(void *buf, int32_t bufLen, SCompactDbReq *pReq) {
8✔
4977
  SDecoder decoder = {0};
8✔
4978
  int32_t  code = 0;
8✔
4979
  int32_t  lino;
4980
  tDecoderInit(&decoder, buf, bufLen);
8✔
4981

4982
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
8!
4983
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
8!
4984
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.skey));
16!
4985
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeRange.ekey));
16!
4986
  DECODESQL();
24!
4987

4988
  // decode vgroup list
4989
  if (!tDecodeIsEnd(&decoder)) {
8!
4990
    int32_t numOfVgroups = 0;
8✔
4991
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgroups));
8!
4992
    if (numOfVgroups > 0) {
8!
4993
      pReq->vgroupIds = taosArrayInit(numOfVgroups, sizeof(int64_t));
×
4994
      if (NULL == pReq->vgroupIds) {
×
4995
        TAOS_CHECK_EXIT(terrno);
×
4996
      }
4997

4998
      for (int32_t i = 0; i < numOfVgroups; ++i) {
×
4999
        int64_t vgid;
5000
        TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &vgid));
×
5001
        if (taosArrayPush(pReq->vgroupIds, &vgid) == NULL) {
×
5002
          TAOS_CHECK_EXIT(terrno);
×
5003
        }
5004
      }
5005
    }
5006
  }
5007

5008
  if (!tDecodeIsEnd(&decoder)) {
8!
5009
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
16!
5010
  } else {
5011
    pReq->metaOnly = false;
×
5012
  }
5013
  tEndDecode(&decoder);
8✔
5014

5015
_exit:
8✔
5016
  tDecoderClear(&decoder);
8✔
5017
  return code;
8✔
5018
}
5019

5020
void tFreeSCompactDbReq(SCompactDbReq *pReq) {
24✔
5021
  FREESQL();
24!
5022
  taosArrayDestroy(pReq->vgroupIds);
24✔
5023
  pReq->vgroupIds = NULL;
24✔
5024
}
24✔
5025

5026
int32_t tSerializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
×
5027
  SEncoder encoder = {0};
×
5028
  int32_t  code = 0;
×
5029
  int32_t  lino;
5030
  int32_t  tlen;
5031
  tEncoderInit(&encoder, buf, bufLen);
×
5032

5033
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5034
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->compactId));
×
5035
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->bAccepted));
×
5036
  tEndEncode(&encoder);
×
5037

5038
_exit:
×
5039
  if (code) {
×
5040
    tlen = code;
×
5041
  } else {
5042
    tlen = encoder.pos;
×
5043
  }
5044
  tEncoderClear(&encoder);
×
5045
  return tlen;
×
5046
}
5047

5048
int32_t tDeserializeSCompactDbRsp(void *buf, int32_t bufLen, SCompactDbRsp *pRsp) {
×
5049
  SDecoder decoder = {0};
×
5050
  int32_t  code = 0;
×
5051
  int32_t  lino;
5052
  tDecoderInit(&decoder, buf, bufLen);
×
5053

5054
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5055
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->compactId));
×
5056
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->bAccepted));
×
5057
  tEndDecode(&decoder);
×
5058

5059
_exit:
×
5060
  tDecoderClear(&decoder);
×
5061
  return code;
×
5062
}
5063

5064
int32_t tSerializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
×
5065
  SEncoder encoder = {0};
×
5066
  int32_t  code = 0;
×
5067
  int32_t  lino;
5068
  int32_t  tlen;
5069
  tEncoderInit(&encoder, buf, bufLen);
×
5070

5071
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5072
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
5073
  ENCODESQL();
×
5074

5075
  tEndEncode(&encoder);
×
5076

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

5087
int32_t tDeserializeSKillCompactReq(void *buf, int32_t bufLen, SKillCompactReq *pReq) {
×
5088
  SDecoder decoder = {0};
×
5089
  int32_t  code = 0;
×
5090
  int32_t  lino;
5091
  tDecoderInit(&decoder, buf, bufLen);
×
5092

5093
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5094
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
5095
  DECODESQL();
×
5096

5097
  tEndDecode(&decoder);
×
5098

5099
_exit:
×
5100
  tDecoderClear(&decoder);
×
5101
  return code;
×
5102
}
5103

5104
void tFreeSKillCompactReq(SKillCompactReq *pReq) { FREESQL(); }
×
5105

5106
int32_t tSerializeSUseDbRspImp(SEncoder *pEncoder, const SUseDbRsp *pRsp) {
5,882✔
5107
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
11,764!
5108
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->uid));
11,764!
5109
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgVersion));
11,764!
5110
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgNum));
11,764!
5111
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashPrefix));
11,764!
5112
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->hashSuffix));
11,764!
5113
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->hashMethod));
11,764!
5114

5115
  for (int32_t i = 0; i < pRsp->vgNum; ++i) {
64,702✔
5116
    SVgroupInfo *pVgInfo = taosArrayGet(pRsp->pVgroupInfos, i);
58,820✔
5117
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->vgId));
117,640!
5118
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashBegin));
117,640!
5119
    TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pVgInfo->hashEnd));
117,640!
5120
    TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
58,820!
5121
    TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pVgInfo->numOfTable));
117,640!
5122
  }
5123

5124
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->errCode));
11,764!
5125
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->stateTs));
11,764!
5126
  return 0;
5,882✔
5127
}
5128

5129
int32_t tSerializeSUseDbRsp(void *buf, int32_t bufLen, const SUseDbRsp *pRsp) {
5,882✔
5130
  SEncoder encoder = {0};
5,882✔
5131
  int32_t  code = 0;
5,882✔
5132
  int32_t  lino;
5133
  int32_t  tlen;
5134
  tEncoderInit(&encoder, buf, bufLen);
5,882✔
5135

5136
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
5,882!
5137
  TAOS_CHECK_EXIT(tSerializeSUseDbRspImp(&encoder, pRsp));
5,882!
5138
  tEndEncode(&encoder);
5,882✔
5139

5140
_exit:
5,882✔
5141
  if (code) {
5,882!
5142
    tlen = code;
×
5143
  } else {
5144
    tlen = encoder.pos;
5,882✔
5145
  }
5146
  tEncoderClear(&encoder);
5,882✔
5147
  return tlen;
5,882✔
5148
}
5149

5150
int32_t tSerializeSDbHbRspImp(SEncoder *pEncoder, const SDbHbRsp *pRsp) {
×
5151
  if (pRsp->useDbRsp) {
×
5152
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
×
5153
    TAOS_CHECK_RETURN(tSerializeSUseDbRspImp(pEncoder, pRsp->useDbRsp));
×
5154
  } else {
5155
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
×
5156
  }
5157

5158
  if (pRsp->cfgRsp) {
×
5159
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
×
5160
    TAOS_CHECK_RETURN(tSerializeSDbCfgRspImpl(pEncoder, pRsp->cfgRsp));
×
5161
  } else {
5162
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
×
5163
  }
5164

5165
  if (pRsp->pTsmaRsp) {
×
5166
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 1));
×
5167
    TAOS_CHECK_RETURN(tEncodeTableTSMAInfoRsp(pEncoder, pRsp->pTsmaRsp));
×
5168
  } else {
5169
    TAOS_CHECK_RETURN(tEncodeI8(pEncoder, 0));
×
5170
  }
5171
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->dbTsmaVersion));
×
5172
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->db));
×
5173
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
×
5174
  return 0;
×
5175
}
5176

5177
int32_t tSerializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
×
5178
  SEncoder encoder = {0};
×
5179
  int32_t  code = 0;
×
5180
  int32_t  lino;
5181
  int32_t  tlen;
5182
  tEncoderInit(&encoder, buf, bufLen);
×
5183

5184
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5185

5186
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
×
5187
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
×
5188
  for (int32_t i = 0; i < numOfBatch; ++i) {
×
5189
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
×
5190
    TAOS_CHECK_EXIT(tSerializeSDbHbRspImp(&encoder, pDbRsp));
×
5191
  }
5192
  tEndEncode(&encoder);
×
5193

5194
_exit:
×
5195
  if (code) {
×
5196
    tlen = code;
×
5197
  } else {
5198
    tlen = encoder.pos;
×
5199
  }
5200
  tEncoderClear(&encoder);
×
5201
  return tlen;
×
5202
}
5203

5204
int32_t tDeserializeSUseDbRspImp(SDecoder *pDecoder, SUseDbRsp *pRsp) {
3,260✔
5205
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->db));
3,260!
5206
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->uid));
6,520!
5207
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgVersion));
6,520!
5208
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgNum));
6,520!
5209
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashPrefix));
6,520!
5210
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->hashSuffix));
6,520!
5211
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->hashMethod));
6,520!
5212

5213
  if (pRsp->vgNum > 0) {
3,260✔
5214
    pRsp->pVgroupInfos = taosArrayInit(pRsp->vgNum, sizeof(SVgroupInfo));
3,229✔
5215
    if (pRsp->pVgroupInfos == NULL) {
3,229!
5216
      TAOS_CHECK_RETURN(terrno);
×
5217
    }
5218

5219
    for (int32_t i = 0; i < pRsp->vgNum; ++i) {
34,665✔
5220
      SVgroupInfo vgInfo = {0};
31,436✔
5221
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.vgId));
31,436!
5222
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashBegin));
31,436!
5223
      TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &vgInfo.hashEnd));
31,436!
5224
      TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &vgInfo.epSet));
31,436!
5225
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &vgInfo.numOfTable));
31,436!
5226
      if (taosArrayPush(pRsp->pVgroupInfos, &vgInfo) == NULL) {
62,872!
5227
        TAOS_CHECK_RETURN(terrno);
×
5228
      }
5229
    }
5230
  }
5231

5232
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->errCode));
6,520!
5233
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->stateTs));
6,520!
5234
  return 0;
3,260✔
5235
}
5236

5237
int32_t tDeserializeSUseDbRsp(void *buf, int32_t bufLen, SUseDbRsp *pRsp) {
3,245✔
5238
  SDecoder decoder = {0};
3,245✔
5239
  int32_t  code = 0;
3,245✔
5240
  int32_t  lino;
5241
  tDecoderInit(&decoder, buf, bufLen);
3,245✔
5242

5243
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3,245!
5244
  TAOS_CHECK_EXIT(tDeserializeSUseDbRspImp(&decoder, pRsp));
3,245!
5245
  tEndDecode(&decoder);
3,245✔
5246

5247
_exit:
3,245✔
5248
  tDecoderClear(&decoder);
3,245✔
5249
  return code;
3,245✔
5250
}
5251

5252
int32_t tDeserializeSDbHbRspImp(SDecoder *decoder, SDbHbRsp *pRsp) {
16✔
5253
  int8_t flag = 0;
16✔
5254
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
16!
5255
  if (flag) {
16✔
5256
    pRsp->useDbRsp = taosMemoryCalloc(1, sizeof(SUseDbRsp));
15!
5257
    if (NULL == pRsp->useDbRsp) {
15!
5258
      TAOS_CHECK_RETURN(terrno);
×
5259
    }
5260
    TAOS_CHECK_RETURN(tDeserializeSUseDbRspImp(decoder, pRsp->useDbRsp));
15!
5261
  }
5262
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
16!
5263
  if (flag) {
16!
5264
    pRsp->cfgRsp = taosMemoryCalloc(1, sizeof(SDbCfgRsp));
×
5265
    if (NULL == pRsp->cfgRsp) {
×
5266
      TAOS_CHECK_RETURN(terrno);
×
5267
    }
5268
    TAOS_CHECK_RETURN(tDeserializeSDbCfgRspImpl(decoder, pRsp->cfgRsp));
×
5269
  }
5270
  if (!tDecodeIsEnd(decoder)) {
16!
5271
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &flag));
16!
5272
    if (flag) {
16✔
5273
      pRsp->pTsmaRsp = taosMemoryCalloc(1, sizeof(STableTSMAInfoRsp));
1!
5274
      if (!pRsp->pTsmaRsp) {
1!
5275
        TAOS_CHECK_RETURN(terrno);
×
5276
      }
5277
      TAOS_CHECK_RETURN(tDecodeTableTSMAInfoRsp(decoder, pRsp->pTsmaRsp));
1!
5278
    }
5279
  }
5280
  if (!tDecodeIsEnd(decoder)) {
16!
5281
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->dbTsmaVersion));
32!
5282
  }
5283
  if (!tDecodeIsEnd(decoder)) {
16!
5284
    TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
16!
5285
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
32!
5286
  }
5287

5288
  return 0;
16✔
5289
}
5290

5291
int32_t tDeserializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp) {
20✔
5292
  SDecoder decoder = {0};
20✔
5293
  int32_t  code = 0;
20✔
5294
  int32_t  lino;
5295
  tDecoderInit(&decoder, buf, bufLen);
20✔
5296

5297
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
20!
5298

5299
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
20✔
5300
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
20!
5301

5302
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SDbHbRsp));
20✔
5303
  if (pRsp->pArray == NULL) {
20!
5304
    TAOS_CHECK_EXIT(terrno);
×
5305
  }
5306

5307
  for (int32_t i = 0; i < numOfBatch; ++i) {
36✔
5308
    SDbHbRsp rsp = {0};
16✔
5309
    TAOS_CHECK_EXIT(tDeserializeSDbHbRspImp(&decoder, &rsp));
16!
5310

5311
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
32!
5312
      TAOS_CHECK_EXIT(terrno);
×
5313
    }
5314
  }
5315
  tEndDecode(&decoder);
20✔
5316

5317
_exit:
20✔
5318
  tDecoderClear(&decoder);
20✔
5319
  return code;
20✔
5320
}
5321

5322
void tFreeSUsedbRsp(SUseDbRsp *pRsp) { taosArrayDestroy(pRsp->pVgroupInfos); }
3,260✔
5323

5324
void tFreeSDbHbRsp(SDbHbRsp *pDbRsp) {
16✔
5325
  if (NULL == pDbRsp) {
16!
5326
    return;
×
5327
  }
5328

5329
  if (pDbRsp->useDbRsp) {
16✔
5330
    tFreeSUsedbRsp(pDbRsp->useDbRsp);
15✔
5331
    taosMemoryFree(pDbRsp->useDbRsp);
15!
5332
  }
5333

5334
  if (pDbRsp->cfgRsp) {
16!
5335
    tFreeSDbCfgRsp(pDbRsp->cfgRsp);
×
5336
    taosMemoryFree(pDbRsp->cfgRsp);
×
5337
  }
5338
  if (pDbRsp->pTsmaRsp) {
16✔
5339
    tFreeTableTSMAInfoRsp(pDbRsp->pTsmaRsp);
1✔
5340
    taosMemoryFree(pDbRsp->pTsmaRsp);
1!
5341
  }
5342
}
5343

5344
void tFreeSDbHbBatchRsp(SDbHbBatchRsp *pRsp) {
20✔
5345
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
20✔
5346
  for (int32_t i = 0; i < numOfBatch; ++i) {
36✔
5347
    SDbHbRsp *pDbRsp = taosArrayGet(pRsp->pArray, i);
16✔
5348
    tFreeSDbHbRsp(pDbRsp);
16✔
5349
  }
5350

5351
  taosArrayDestroy(pRsp->pArray);
20✔
5352
}
20✔
5353

5354
int32_t tSerializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
×
5355
  SEncoder encoder = {0};
×
5356
  int32_t  code = 0;
×
5357
  int32_t  lino;
5358
  int32_t  tlen;
5359
  tEncoderInit(&encoder, buf, bufLen);
×
5360

5361
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5362

5363
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
×
5364
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfBatch));
×
5365
  for (int32_t i = 0; i < numOfBatch; ++i) {
×
5366
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
×
5367
    TAOS_CHECK_EXIT(tSerializeSGetUserAuthRspImpl(&encoder, pUserAuthRsp));
×
5368
  }
5369
  tEndEncode(&encoder);
×
5370

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

5381
int32_t tDeserializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchRsp *pRsp) {
25✔
5382
  SDecoder decoder = {0};
25✔
5383
  int32_t  code = 0;
25✔
5384
  int32_t  lino;
5385
  tDecoderInit(&decoder, buf, bufLen);
25✔
5386

5387
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
25!
5388

5389
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
25✔
5390
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfBatch));
25!
5391

5392
  pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SGetUserAuthRsp));
25✔
5393
  if (pRsp->pArray == NULL) {
25!
5394
    TAOS_CHECK_EXIT(terrno);
×
5395
  }
5396

5397
  for (int32_t i = 0; i < numOfBatch; ++i) {
50✔
5398
    SGetUserAuthRsp rsp = {0};
25✔
5399
    TAOS_CHECK_EXIT(tDeserializeSGetUserAuthRspImpl(&decoder, &rsp));
25!
5400
    if (taosArrayPush(pRsp->pArray, &rsp) == NULL) {
50!
5401
      TAOS_CHECK_EXIT(terrno);
×
5402
    }
5403
  }
5404
  tEndDecode(&decoder);
25✔
5405

5406
_exit:
25✔
5407
  tDecoderClear(&decoder);
25✔
5408
  return code;
25✔
5409
}
5410

5411
void tFreeSUserAuthBatchRsp(SUserAuthBatchRsp *pRsp) {
×
5412
  int32_t numOfBatch = taosArrayGetSize(pRsp->pArray);
×
5413
  for (int32_t i = 0; i < numOfBatch; ++i) {
×
5414
    SGetUserAuthRsp *pUserAuthRsp = taosArrayGet(pRsp->pArray, i);
×
5415
    tFreeSGetUserAuthRsp(pUserAuthRsp);
×
5416
  }
5417

5418
  taosArrayDestroy(pRsp->pArray);
×
5419
}
×
5420

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

5428
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
90!
5429
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
180!
5430
  tEndEncode(&encoder);
90✔
5431

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

5442
int32_t tDeserializeSDbCfgReq(void *buf, int32_t bufLen, SDbCfgReq *pReq) {
×
5443
  SDecoder decoder = {0};
×
5444
  int32_t  code = 0;
×
5445
  int32_t  lino;
5446
  tDecoderInit(&decoder, buf, bufLen);
×
5447

5448
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5449
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
5450
  tEndDecode(&decoder);
×
5451

5452
_exit:
×
5453
  tDecoderClear(&decoder);
×
5454
  return code;
×
5455
}
5456

5457
int32_t tSerializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
16✔
5458
  SEncoder encoder = {0};
16✔
5459
  int32_t  code = 0;
16✔
5460
  int32_t  lino;
5461
  int32_t  tlen;
5462
  tEncoderInit(&encoder, buf, bufLen);
16✔
5463

5464
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
5465
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
32!
5466
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxSpeed));
32!
5467
  tEndEncode(&encoder);
16✔
5468

5469
_exit:
16✔
5470
  if (code) {
16!
5471
    tlen = code;
×
5472
  } else {
5473
    tlen = encoder.pos;
16✔
5474
  }
5475
  tEncoderClear(&encoder);
16✔
5476
  return tlen;
16✔
5477
}
5478

5479
int32_t tDeserializeSTrimDbReq(void *buf, int32_t bufLen, STrimDbReq *pReq) {
4✔
5480
  SDecoder decoder = {0};
4✔
5481
  int32_t  code = 0;
4✔
5482
  int32_t  lino;
5483
  tDecoderInit(&decoder, buf, bufLen);
4✔
5484

5485
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
5486
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
4!
5487
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxSpeed));
8!
5488
  tEndDecode(&decoder);
4✔
5489

5490
_exit:
4✔
5491
  tDecoderClear(&decoder);
4✔
5492
  return code;
4✔
5493
}
5494

5495
int32_t tSerializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
×
5496
  SEncoder encoder = {0};
×
5497
  int32_t  code = 0;
×
5498
  int32_t  lino;
5499
  int32_t  tlen;
5500
  tEncoderInit(&encoder, buf, bufLen);
×
5501

5502
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5503
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
×
5504
  tEndEncode(&encoder);
×
5505

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

5516
int32_t tDeserializeSVTrimDbReq(void *buf, int32_t bufLen, SVTrimDbReq *pReq) {
×
5517
  SDecoder decoder = {0};
×
5518
  int32_t  code = 0;
×
5519
  int32_t  lino;
5520
  tDecoderInit(&decoder, buf, bufLen);
×
5521

5522
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5523
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
×
5524

5525
  tEndDecode(&decoder);
×
5526

5527
_exit:
×
5528
  tDecoderClear(&decoder);
×
5529
  return code;
×
5530
}
5531

5532
int32_t tSerializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
×
5533
  SEncoder encoder = {0};
×
5534
  int32_t  code = 0;
×
5535
  int32_t  lino;
5536
  int32_t  tlen;
5537
  tEncoderInit(&encoder, buf, bufLen);
×
5538

5539
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5540
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
×
5541
  tEndEncode(&encoder);
×
5542

5543
_exit:
×
5544
  if (code) {
×
5545
    tlen = code;
×
5546
  } else {
5547
    tlen = encoder.pos;
×
5548
  }
5549
  tEncoderClear(&encoder);
×
5550
  return tlen;
×
5551
}
5552

5553
int32_t tDeserializeSS3MigrateDbReq(void *buf, int32_t bufLen, SS3MigrateDbReq *pReq) {
×
5554
  SDecoder decoder = {0};
×
5555
  int32_t  code = 0;
×
5556
  int32_t  lino;
5557
  tDecoderInit(&decoder, buf, bufLen);
×
5558

5559
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5560
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
5561
  tEndDecode(&decoder);
×
5562

5563
_exit:
×
5564
  tDecoderClear(&decoder);
×
5565
  return code;
×
5566
}
5567

5568
int32_t tSerializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
5569
  SEncoder encoder = {0};
×
5570
  int32_t  code = 0;
×
5571
  int32_t  lino;
5572
  int32_t  tlen;
5573
  tEncoderInit(&encoder, buf, bufLen);
×
5574

5575
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5576
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestamp));
×
5577
  tEndEncode(&encoder);
×
5578

5579
_exit:
×
5580
  if (code) {
×
5581
    tlen = code;
×
5582
  } else {
5583
    tlen = encoder.pos;
×
5584
  }
5585
  tEncoderClear(&encoder);
×
5586
  return tlen;
×
5587
}
5588

5589
int32_t tDeserializeSVS3MigrateDbReq(void *buf, int32_t bufLen, SVS3MigrateDbReq *pReq) {
×
5590
  SDecoder decoder = {0};
×
5591
  int32_t  code = 0;
×
5592
  int32_t  lino;
5593
  tDecoderInit(&decoder, buf, bufLen);
×
5594

5595
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5596
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestamp));
×
5597

5598
  tEndDecode(&decoder);
×
5599

5600
_exit:
×
5601
  tDecoderClear(&decoder);
×
5602
  return code;
×
5603
}
5604

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

5612
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
3!
5613
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->timestampSec));
6!
5614
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->ttlDropMaxCount));
6!
5615
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->nUids));
6!
5616
  for (int32_t i = 0; i < pReq->nUids; ++i) {
3!
5617
    tb_uid_t *pTbUid = taosArrayGet(pReq->pTbUids, i);
×
5618
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, *pTbUid));
×
5619
  }
5620
  tEndEncode(&encoder);
3✔
5621

5622
_exit:
3✔
5623
  if (code) {
3!
5624
    tlen = code;
×
5625
  } else {
5626
    tlen = encoder.pos;
3✔
5627
  }
5628
  tEncoderClear(&encoder);
3✔
5629
  return tlen;
3✔
5630
}
5631

5632
int32_t tDeserializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableReq *pReq) {
1✔
5633
  SDecoder decoder = {0};
1✔
5634
  int32_t  code = 0;
1✔
5635
  int32_t  lino;
5636
  tDecoderInit(&decoder, buf, bufLen);
1✔
5637

5638
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
5639
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->timestampSec));
2!
5640
  pReq->ttlDropMaxCount = INT32_MAX;
1✔
5641
  pReq->nUids = 0;
1✔
5642
  pReq->pTbUids = NULL;
1✔
5643
  if (!tDecodeIsEnd(&decoder)) {
1!
5644
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->ttlDropMaxCount));
2!
5645
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->nUids));
2!
5646

5647
    if (pReq->nUids > 0) {
1!
5648
      pReq->pTbUids = taosArrayInit(pReq->nUids, sizeof(tb_uid_t));
×
5649
      if (pReq->pTbUids == NULL) {
×
5650
        TAOS_CHECK_EXIT(terrno);
×
5651
      }
5652
    }
5653

5654
    tb_uid_t tbUid = 0;
1✔
5655
    for (int32_t i = 0; i < pReq->nUids; ++i) {
1!
5656
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &tbUid));
×
5657
      if (taosArrayPush(pReq->pTbUids, &tbUid) == NULL) {
×
5658
        TAOS_CHECK_EXIT(terrno);
×
5659
      }
5660
    }
5661
  }
5662
  tEndDecode(&decoder);
1✔
5663

5664
_exit:
1✔
5665
  tDecoderClear(&decoder);
1✔
5666
  return code;
1✔
5667
}
5668

5669
int32_t tSerializeSDbCfgRspImpl(SEncoder *encoder, const SDbCfgRsp *pRsp) {
2✔
5670
  TAOS_CHECK_RETURN(tEncodeCStr(encoder, pRsp->db));
4!
5671
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->dbId));
4!
5672
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cfgVersion));
4!
5673
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfVgroups));
4!
5674
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfStables));
4!
5675
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->buffer));
4!
5676
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->cacheSize));
4!
5677
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pageSize));
4!
5678
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->pages));
4!
5679
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysPerFile));
4!
5680
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep0));
4!
5681
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep1));
4!
5682
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->daysToKeep2));
4!
5683
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->minRows));
4!
5684
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->maxRows));
4!
5685
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walFsyncPeriod));
4!
5686
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashPrefix));
4!
5687
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->hashSuffix));
4!
5688
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->walLevel));
4!
5689
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->precision));
4!
5690
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compression));
4!
5691
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->replications));
4!
5692
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->strict));
4!
5693
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->cacheLast));
4!
5694
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->tsdbPageSize));
4!
5695
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRetentionPeriod));
4!
5696
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->walRollPeriod));
4!
5697
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walRetentionSize));
4!
5698
  TAOS_CHECK_RETURN(tEncodeI64(encoder, pRsp->walSegmentSize));
4!
5699
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->numOfRetensions));
4!
5700
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
2!
5701
    SRetention *pRetension = taosArrayGet(pRsp->pRetensions, i);
×
5702
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->freq));
×
5703
    TAOS_CHECK_RETURN(tEncodeI64(encoder, pRetension->keep));
×
5704
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->freqUnit));
×
5705
    TAOS_CHECK_RETURN(tEncodeI8(encoder, pRetension->keepUnit));
×
5706
  }
5707
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->schemaless));
4!
5708
  TAOS_CHECK_RETURN(tEncodeI16(encoder, pRsp->sstTrigger));
4!
5709
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->keepTimeOffset));
4!
5710
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->withArbitrator));
4!
5711
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->encryptAlgorithm));
4!
5712
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3ChunkSize));
4!
5713
  TAOS_CHECK_RETURN(tEncodeI32(encoder, pRsp->s3KeepLocal));
4!
5714
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->s3Compact));
4!
5715
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->hashMethod));
4!
5716
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactInterval));
4!
5717
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactStartTime));
4!
5718
  TAOS_CHECK_RETURN(tEncodeI32v(encoder, pRsp->compactEndTime));
4!
5719
  TAOS_CHECK_RETURN(tEncodeI8(encoder, pRsp->compactTimeOffset));
4!
5720

5721
  return 0;
2✔
5722
}
5723

5724
int32_t tSerializeSDbCfgRsp(void *buf, int32_t bufLen, const SDbCfgRsp *pRsp) {
2✔
5725
  SEncoder encoder = {0};
2✔
5726
  int32_t  code = 0;
2✔
5727
  int32_t  lino;
5728
  int32_t  tlen;
5729
  tEncoderInit(&encoder, buf, bufLen);
2✔
5730

5731
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5732
  TAOS_CHECK_EXIT(tSerializeSDbCfgRspImpl(&encoder, pRsp));
2!
5733
  tEndEncode(&encoder);
2✔
5734

5735
_exit:
2✔
5736
  if (code) {
2!
5737
    tlen = code;
×
5738
  } else {
5739
    tlen = encoder.pos;
2✔
5740
  }
5741
  tEncoderClear(&encoder);
2✔
5742
  return tlen;
2✔
5743
}
5744

5745
int32_t tDeserializeSDbCfgRspImpl(SDecoder *decoder, SDbCfgRsp *pRsp) {
45✔
5746
  TAOS_CHECK_RETURN(tDecodeCStrTo(decoder, pRsp->db));
45!
5747
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->dbId));
90!
5748
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cfgVersion));
90!
5749
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfVgroups));
90!
5750
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfStables));
90!
5751
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->buffer));
90!
5752
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->cacheSize));
90!
5753
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pageSize));
90!
5754
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->pages));
90!
5755
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysPerFile));
90!
5756
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep0));
90!
5757
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep1));
90!
5758
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->daysToKeep2));
90!
5759
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->minRows));
90!
5760
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->maxRows));
90!
5761
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walFsyncPeriod));
90!
5762
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashPrefix));
90!
5763
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->hashSuffix));
90!
5764
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->walLevel));
90!
5765
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->precision));
90!
5766
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compression));
90!
5767
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->replications));
90!
5768
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->strict));
90!
5769
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->cacheLast));
90!
5770
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->tsdbPageSize));
90!
5771
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRetentionPeriod));
90!
5772
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->walRollPeriod));
90!
5773
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walRetentionSize));
90!
5774
  TAOS_CHECK_RETURN(tDecodeI64(decoder, &pRsp->walSegmentSize));
90!
5775
  TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->numOfRetensions));
90!
5776
  if (pRsp->numOfRetensions > 0) {
45!
5777
    pRsp->pRetensions = taosArrayInit(pRsp->numOfRetensions, sizeof(SRetention));
×
5778
    if (pRsp->pRetensions == NULL) {
×
5779
      TAOS_CHECK_RETURN(terrno);
×
5780
    }
5781
  }
5782

5783
  for (int32_t i = 0; i < pRsp->numOfRetensions; ++i) {
45!
5784
    SRetention rentension = {0};
×
5785
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.freq));
×
5786
    TAOS_CHECK_RETURN(tDecodeI64(decoder, &rentension.keep));
×
5787
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.freqUnit));
×
5788
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &rentension.keepUnit));
×
5789
    if (taosArrayPush(pRsp->pRetensions, &rentension) == NULL) {
×
5790
      TAOS_CHECK_RETURN(terrno);
×
5791
    }
5792
  }
5793
  TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->schemaless));
90!
5794
  TAOS_CHECK_RETURN(tDecodeI16(decoder, &pRsp->sstTrigger));
90!
5795
  if (!tDecodeIsEnd(decoder)) {
45!
5796
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->keepTimeOffset));
90!
5797
  } else {
5798
    pRsp->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
5799
  }
5800
  if (!tDecodeIsEnd(decoder)) {
45!
5801
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->withArbitrator));
90!
5802
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->encryptAlgorithm));
90!
5803
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3ChunkSize));
90!
5804
    TAOS_CHECK_RETURN(tDecodeI32(decoder, &pRsp->s3KeepLocal));
90!
5805
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->s3Compact));
90!
5806
  } else {
5807
    pRsp->withArbitrator = TSDB_DEFAULT_DB_WITH_ARBITRATOR;
×
5808
    pRsp->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
×
5809
    pRsp->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
×
5810
    pRsp->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
5811
    pRsp->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
5812
  }
5813
  if (!tDecodeIsEnd(decoder)) {
45!
5814
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->hashMethod));
90!
5815
  } else {
5816
    pRsp->hashMethod = 1;  // default value
×
5817
  }
5818
  if (!tDecodeIsEnd(decoder)) {
45!
5819
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactInterval));
90!
5820
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactStartTime));
90!
5821
    TAOS_CHECK_RETURN(tDecodeI32v(decoder, &pRsp->compactEndTime));
90!
5822
    TAOS_CHECK_RETURN(tDecodeI8(decoder, &pRsp->compactTimeOffset));
90!
5823
  } else {
5824
    pRsp->compactInterval = TSDB_DEFAULT_COMPACT_INTERVAL;
×
5825
    pRsp->compactStartTime = TSDB_DEFAULT_COMPACT_START_TIME;
×
5826
    pRsp->compactEndTime = TSDB_DEFAULT_COMPACT_END_TIME;
×
5827
    pRsp->compactTimeOffset = TSDB_DEFAULT_COMPACT_TIME_OFFSET;
×
5828
  }
5829

5830
  return 0;
45✔
5831
}
5832

5833
int32_t tDeserializeSDbCfgRsp(void *buf, int32_t bufLen, SDbCfgRsp *pRsp) {
45✔
5834
  SDecoder decoder = {0};
45✔
5835
  int32_t  code = 0;
45✔
5836
  int32_t  lino;
5837
  tDecoderInit(&decoder, buf, bufLen);
45✔
5838

5839
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
45!
5840
  TAOS_CHECK_EXIT(tDeserializeSDbCfgRspImpl(&decoder, pRsp));
45!
5841
  tEndDecode(&decoder);
45✔
5842

5843
_exit:
45✔
5844
  tDecoderClear(&decoder);
45✔
5845
  return code;
45✔
5846
}
5847

5848
void tFreeSDbCfgRsp(SDbCfgRsp *pRsp) {
×
5849
  if (NULL == pRsp) {
×
5850
    return;
×
5851
  }
5852

5853
  taosArrayDestroy(pRsp->pRetensions);
×
5854
}
5855

5856
int32_t tSerializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
2✔
5857
  SEncoder encoder = {0};
2✔
5858
  int32_t  code = 0;
2✔
5859
  int32_t  lino;
5860
  int32_t  tlen;
5861
  tEncoderInit(&encoder, buf, bufLen);
2✔
5862

5863
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5864
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->indexFName));
4!
5865
  tEndEncode(&encoder);
2✔
5866

5867
_exit:
2✔
5868
  if (code) {
2!
5869
    tlen = code;
×
5870
  } else {
5871
    tlen = encoder.pos;
2✔
5872
  }
5873
  tEncoderClear(&encoder);
2✔
5874
  return tlen;
2✔
5875
}
5876

5877
int32_t tDeserializeSUserIndexReq(void *buf, int32_t bufLen, SUserIndexReq *pReq) {
×
5878
  SDecoder decoder = {0};
×
5879
  int32_t  code = 0;
×
5880
  int32_t  lino;
5881
  tDecoderInit(&decoder, buf, bufLen);
×
5882

5883
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5884
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->indexFName));
×
5885
  tEndDecode(&decoder);
×
5886

5887
_exit:
×
5888
  tDecoderClear(&decoder);
×
5889
  return code;
×
5890
}
5891

5892
int32_t tSerializeSUserIndexRsp(void *buf, int32_t bufLen, const SUserIndexRsp *pRsp) {
×
5893
  SEncoder encoder = {0};
×
5894
  int32_t  code = 0;
×
5895
  int32_t  lino;
5896
  int32_t  tlen;
5897
  tEncoderInit(&encoder, buf, bufLen);
×
5898

5899
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
5900
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
×
5901
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tblFName));
×
5902
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->colName));
×
5903
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexType));
×
5904
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->indexExts));
×
5905
  tEndEncode(&encoder);
×
5906

5907
_exit:
×
5908
  if (code) {
×
5909
    tlen = code;
×
5910
  } else {
5911
    tlen = encoder.pos;
×
5912
  }
5913
  tEncoderClear(&encoder);
×
5914
  return tlen;
×
5915
}
5916

5917
int32_t tDeserializeSUserIndexRsp(void *buf, int32_t bufLen, SUserIndexRsp *pRsp) {
×
5918
  SDecoder decoder = {0};
×
5919
  int32_t  code = 0;
×
5920
  int32_t  lino;
5921
  tDecoderInit(&decoder, buf, bufLen);
×
5922

5923
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5924
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
×
5925
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tblFName));
×
5926
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->colName));
×
5927
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexType));
×
5928
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->indexExts));
×
5929
  tEndDecode(&decoder);
×
5930

5931
_exit:
×
5932
  tDecoderClear(&decoder);
×
5933
  return code;
×
5934
}
5935

5936
int32_t tSerializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
2✔
5937
  SEncoder encoder = {0};
2✔
5938
  int32_t  code = 0;
2✔
5939
  int32_t  lino;
5940
  int32_t  tlen;
5941
  tEncoderInit(&encoder, buf, bufLen);
2✔
5942

5943
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5944
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbFName));
4!
5945
  tEndEncode(&encoder);
2✔
5946

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

5957
int32_t tDeserializeSTableIndexReq(void *buf, int32_t bufLen, STableIndexReq *pReq) {
×
5958
  SDecoder decoder = {0};
×
5959
  int32_t  code = 0;
×
5960
  int32_t  lino;
5961
  tDecoderInit(&decoder, buf, bufLen);
×
5962

5963
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
5964
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbFName));
×
5965
  tEndDecode(&decoder);
×
5966

5967
_exit:
×
5968
  tDecoderClear(&decoder);
×
5969
  return code;
×
5970
}
5971

5972
int32_t tSerializeSTableIndexInfo(SEncoder *pEncoder, STableIndexInfo *pInfo) {
6✔
5973
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->intervalUnit));
12!
5974
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pInfo->slidingUnit));
12!
5975
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->interval));
12!
5976
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->offset));
12!
5977
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->sliding));
12!
5978
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->dstTbUid));
12!
5979
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pInfo->dstVgId));
12!
5980
  TAOS_CHECK_RETURN(tEncodeSEpSet(pEncoder, &pInfo->epSet));
6!
5981
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->expr));
12!
5982
  return 0;
6✔
5983
}
5984

5985
int32_t tSerializeSTableIndexRsp(void *buf, int32_t bufLen, const STableIndexRsp *pRsp) {
2✔
5986
  SEncoder encoder = {0};
2✔
5987
  int32_t  code = 0;
2✔
5988
  int32_t  lino;
5989
  int32_t  tlen;
5990
  tEncoderInit(&encoder, buf, bufLen);
2✔
5991

5992
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
5993
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->tbName));
4!
5994
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->dbFName));
4!
5995
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pRsp->suid));
4!
5996
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->version));
4!
5997
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->indexSize));
4!
5998
  int32_t num = taosArrayGetSize(pRsp->pIndex);
2✔
5999
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
2!
6000
  if (num > 0) {
2!
6001
    for (int32_t i = 0; i < num; ++i) {
8✔
6002
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pRsp->pIndex, i);
6✔
6003
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
6!
6004
    }
6005
  }
6006
  tEndEncode(&encoder);
2✔
6007

6008
_exit:
2✔
6009
  if (code) {
2!
6010
    tlen = code;
×
6011
  } else {
6012
    tlen = encoder.pos;
2✔
6013
  }
6014
  tEncoderClear(&encoder);
2✔
6015
  return tlen;
2✔
6016
}
6017

6018
void tFreeSerializeSTableIndexRsp(STableIndexRsp *pRsp) {
×
6019
  if (pRsp->pIndex != NULL) {
×
6020
    tFreeSTableIndexRsp(pRsp);
×
6021
    pRsp->pIndex = NULL;
×
6022
  }
6023
}
×
6024

6025
int32_t tDeserializeSTableIndexInfo(SDecoder *pDecoder, STableIndexInfo *pInfo) {
3✔
6026
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->intervalUnit));
6!
6027
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pInfo->slidingUnit));
6!
6028
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->interval));
6!
6029
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->offset));
6!
6030
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->sliding));
6!
6031
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->dstTbUid));
6!
6032
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pInfo->dstVgId));
6!
6033
  TAOS_CHECK_RETURN(tDecodeSEpSet(pDecoder, &pInfo->epSet));
3!
6034
  TAOS_CHECK_RETURN(tDecodeCStrAlloc(pDecoder, &pInfo->expr));
6!
6035
  return 0;
3✔
6036
}
6037

6038
int32_t tDeserializeSTableIndexRsp(void *buf, int32_t bufLen, STableIndexRsp *pRsp) {
1✔
6039
  SDecoder decoder = {0};
1✔
6040
  int32_t  code = 0;
1✔
6041
  int32_t  lino;
6042
  tDecoderInit(&decoder, buf, bufLen);
1✔
6043

6044
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
6045
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->tbName));
1!
6046
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->dbFName));
1!
6047
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->suid));
2!
6048
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->version));
2!
6049
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->indexSize));
2!
6050
  int32_t num = 0;
1✔
6051
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
1!
6052
  if (num > 0) {
1!
6053
    pRsp->pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
1✔
6054
    if (NULL == pRsp->pIndex) {
1!
6055
      TAOS_CHECK_EXIT(terrno);
×
6056
    }
6057
    STableIndexInfo info;
6058
    for (int32_t i = 0; i < num; ++i) {
4✔
6059
      TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
3!
6060
      if (NULL == taosArrayPush(pRsp->pIndex, &info)) {
6!
6061
        taosMemoryFree(info.expr);
×
6062
        TAOS_CHECK_EXIT(terrno);
×
6063
      }
6064
    }
6065
  }
6066
  tEndDecode(&decoder);
1✔
6067

6068
_exit:
1✔
6069
  tDecoderClear(&decoder);
1✔
6070
  return code;
1✔
6071
}
6072

6073
void tFreeSTableIndexInfo(void *info) {
9✔
6074
  if (NULL == info) {
9!
6075
    return;
×
6076
  }
6077

6078
  STableIndexInfo *pInfo = (STableIndexInfo *)info;
9✔
6079

6080
  taosMemoryFree(pInfo->expr);
9!
6081
}
6082

6083
int32_t tSerializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
8✔
6084
  SEncoder encoder = {0};
8✔
6085
  int32_t  code = 0;
8✔
6086
  int32_t  lino;
6087
  int32_t  tlen;
6088
  tEncoderInit(&encoder, buf, bufLen);
8✔
6089

6090
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
6091
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->opType));
16!
6092
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->valLen));
16!
6093
  if (pReq->valLen > 0) {
8!
6094
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->val, pReq->valLen));
×
6095
  }
6096
  tEndEncode(&encoder);
8✔
6097

6098
_exit:
8✔
6099
  if (code) {
8!
6100
    tlen = code;
×
6101
  } else {
6102
    tlen = encoder.pos;
8✔
6103
  }
6104
  tEncoderClear(&encoder);
8✔
6105
  return tlen;
8✔
6106
}
6107

6108
int32_t tDeserializeSShowVariablesReq(void *buf, int32_t bufLen, SShowVariablesReq *pReq) {
×
6109
  SDecoder decoder = {0};
×
6110
  int32_t  code = 0;
×
6111
  int32_t  lino;
6112
  tDecoderInit(&decoder, buf, bufLen);
×
6113

6114
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6115
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->opType));
×
6116
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->valLen));
×
6117

6118
  if (pReq->valLen > 0) {
×
6119
    pReq->val = taosMemoryCalloc(1, pReq->valLen + 1);
×
6120
    if (pReq->val == NULL) {
×
6121
      TAOS_CHECK_EXIT(terrno);
×
6122
    }
6123
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->val));
×
6124
  }
6125

6126
  tEndDecode(&decoder);
×
6127
_exit:
×
6128
  tDecoderClear(&decoder);
×
6129
  return code;
×
6130
}
6131

6132
void tFreeSShowVariablesReq(SShowVariablesReq *pReq) {
4✔
6133
  if (NULL != pReq && NULL != pReq->val) {
4!
6134
    taosMemoryFree(pReq->val);
×
6135
    pReq->val = NULL;
×
6136
  }
6137
}
4✔
6138

6139
int32_t tEncodeSVariablesInfo(SEncoder *pEncoder, SVariablesInfo *pInfo) {
×
6140
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->name));
×
6141
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->value));
×
6142
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->scope));
×
6143
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->category));
×
6144
  return 0;
×
6145
}
6146

6147
int32_t tDecodeSVariablesInfo(SDecoder *pDecoder, SVariablesInfo *pInfo) {
×
6148
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->name));
×
6149
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->value));
×
6150
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->scope));
×
6151
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->category));
×
6152
  return 0;
×
6153
}
6154

6155
int32_t tSerializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
×
6156
  SEncoder encoder = {0};
×
6157
  int32_t  code = 0;
×
6158
  int32_t  lino;
6159
  int32_t  tlen;
6160
  tEncoderInit(&encoder, buf, bufLen);
×
6161

6162
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6163
  int32_t varNum = taosArrayGetSize(pRsp->variables);
×
6164
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, varNum));
×
6165
  for (int32_t i = 0; i < varNum; ++i) {
×
6166
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
×
6167
    TAOS_CHECK_EXIT(tEncodeSVariablesInfo(&encoder, pInfo));
×
6168
  }
6169

6170
  for (int32_t i = 0; i < varNum; ++i) {
×
6171
    SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
×
6172
    TAOS_CHECK_RETURN(tEncodeCStr(&encoder, pInfo->info));
×
6173
  }
6174

6175
  tEndEncode(&encoder);
×
6176

6177
_exit:
×
6178
  if (code) {
×
6179
    tlen = code;
×
6180
  } else {
6181
    tlen = encoder.pos;
×
6182
  }
6183
  tEncoderClear(&encoder);
×
6184
  return tlen;
×
6185
}
6186

6187
int32_t tDeserializeSShowVariablesRsp(void *buf, int32_t bufLen, SShowVariablesRsp *pRsp) {
×
6188
  SDecoder decoder = {0};
×
6189
  int32_t  code = 0;
×
6190
  int32_t  lino;
6191
  tDecoderInit(&decoder, buf, bufLen);
×
6192

6193
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6194
  int32_t varNum = 0;
×
6195
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &varNum));
×
6196
  if (varNum > 0) {
×
6197
    pRsp->variables = taosArrayInit(varNum, sizeof(SVariablesInfo));
×
6198
    if (NULL == pRsp->variables) {
×
6199
      TAOS_CHECK_EXIT(terrno);
×
6200
    }
6201
    for (int32_t i = 0; i < varNum; ++i) {
×
6202
      SVariablesInfo info = {0};
×
6203
      TAOS_CHECK_EXIT(tDecodeSVariablesInfo(&decoder, &info));
×
6204
      if (NULL == taosArrayPush(pRsp->variables, &info)) {
×
6205
        TAOS_CHECK_EXIT(terrno);
×
6206
      }
6207
    }
6208

6209
    if (!tDecodeIsEnd(&decoder)) {
×
6210
      for (int32_t i = 0; i < varNum; ++i) {
×
6211
        SVariablesInfo *pInfo = taosArrayGet(pRsp->variables, i);
×
6212
        TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pInfo->info));
×
6213
      }
6214
    }
6215
  }
6216

6217
  tEndDecode(&decoder);
×
6218
_exit:
×
6219
  tDecoderClear(&decoder);
×
6220
  return code;
×
6221
}
6222

6223
void tFreeSShowVariablesRsp(SShowVariablesRsp *pRsp) {
×
6224
  if (NULL == pRsp) {
×
6225
    return;
×
6226
  }
6227

6228
  taosArrayDestroy(pRsp->variables);
×
6229
}
6230

6231
int32_t tSerializeSShowReq(void *buf, int32_t bufLen, SShowReq *pReq) {
4✔
6232
  SEncoder encoder = {0};
4✔
6233
  int32_t  code = 0;
4✔
6234
  int32_t  lino;
6235
  int32_t  tlen;
6236
  tEncoderInit(&encoder, buf, bufLen);
4✔
6237

6238
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
6239
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
8!
6240
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
8!
6241
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->payloadLen));
8!
6242
  if (pReq->payloadLen > 0) {
4!
6243
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->payload, pReq->payloadLen));
×
6244
  }
6245
  tEndEncode(&encoder);
4✔
6246

6247
_exit:
4✔
6248
  if (code) {
4!
6249
    tlen = code;
×
6250
  } else {
6251
    tlen = encoder.pos;
4✔
6252
  }
6253
  tEncoderClear(&encoder);
4✔
6254
  return tlen;
4✔
6255
}
6256

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

6259
int32_t tSerializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
44✔
6260
  SEncoder encoder = {0};
44✔
6261
  int32_t  code = 0;
44✔
6262
  int32_t  lino;
6263
  int32_t  tlen;
6264
  tEncoderInit(&encoder, buf, bufLen);
44✔
6265

6266
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
44!
6267
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->showId));
88!
6268
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
88!
6269
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tb));
88!
6270
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->filterTb));
88!
6271
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
88!
6272
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactId));
88!
6273
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withFull));
88!
6274
  tEndEncode(&encoder);
44✔
6275

6276
_exit:
44✔
6277
  if (code) {
44!
6278
    tlen = code;
×
6279
  } else {
6280
    tlen = encoder.pos;
44✔
6281
  }
6282
  tEncoderClear(&encoder);
44✔
6283
  return tlen;
44✔
6284
}
6285

6286
int32_t tDeserializeSRetrieveTableReq(void *buf, int32_t bufLen, SRetrieveTableReq *pReq) {
24✔
6287
  SDecoder decoder = {0};
24✔
6288
  int32_t  code = 0;
24✔
6289
  int32_t  lino;
6290

6291
  tDecoderInit(&decoder, buf, bufLen);
24✔
6292

6293
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
24!
6294
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->showId));
48!
6295
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
24!
6296
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tb));
24!
6297
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->filterTb));
24✔
6298
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
22!
6299
  if (!tDecodeIsEnd(&decoder)) {
22!
6300
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactId));
44!
6301
  } else {
6302
    pReq->compactId = -1;
×
6303
  }
6304
  if (!tDecodeIsEnd(&decoder)) {
22!
6305
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, (int8_t *)&pReq->withFull));
44!
6306
  }
6307
  tEndDecode(&decoder);
22✔
6308
_exit:
24✔
6309
  tDecoderClear(&decoder);
24✔
6310
  return code;
24✔
6311
}
6312

6313
static int32_t tEncodeSTableMetaRsp(SEncoder *pEncoder, STableMetaRsp *pRsp) {
130✔
6314
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->tbName));
260!
6315
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->stbName));
260!
6316
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pRsp->dbFName));
260!
6317
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->dbId));
260!
6318
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfTags));
260!
6319
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColumns));
260!
6320
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->precision));
260!
6321
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->tableType));
260!
6322
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->sversion));
260!
6323
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->tversion));
260!
6324
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->suid));
260!
6325
  TAOS_CHECK_RETURN(tEncodeU64(pEncoder, pRsp->tuid));
260!
6326
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->vgId));
260!
6327
  for (int32_t i = 0; i < pRsp->numOfColumns + pRsp->numOfTags; ++i) {
578✔
6328
    SSchema *pSchema = &pRsp->pSchemas[i];
448✔
6329
    TAOS_CHECK_RETURN(tEncodeSSchema(pEncoder, pSchema));
448!
6330
  }
6331

6332
  if (withExtSchema(pRsp->tableType)) {
130!
6333
    for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
396✔
6334
      SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
266✔
6335
      TAOS_CHECK_RETURN(tEncodeSSchemaExt(pEncoder, pSchemaExt));
266!
6336
    }
6337
  }
6338

6339
  TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pRsp->virtualStb));
260!
6340
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pRsp->numOfColRefs));
260!
6341
  if (hasRefCol(pRsp->tableType)) {
130!
6342
    for (int32_t i = 0; i < pRsp->numOfColRefs; ++i) {
×
6343
      SColRef *pColRef = &pRsp->pColRefs[i];
×
6344
      TAOS_CHECK_RETURN(tEncodeSColRef(pEncoder, pColRef));
×
6345
    }
6346
  }
6347

6348
  return 0;
130✔
6349
}
6350

6351
static int32_t tDecodeSTableMetaRsp(SDecoder *pDecoder, STableMetaRsp *pRsp) {
686✔
6352
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->tbName));
686!
6353
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->stbName));
686!
6354
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pRsp->dbFName));
686!
6355
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->dbId));
1,372!
6356
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfTags));
1,372!
6357
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColumns));
1,370!
6358
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->precision));
1,369!
6359
  TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->tableType));
1,370!
6360
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->sversion));
1,370!
6361
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->tversion));
1,370!
6362
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->suid));
1,370!
6363
  TAOS_CHECK_RETURN(tDecodeU64(pDecoder, &pRsp->tuid));
1,370!
6364
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->vgId));
1,370!
6365

6366
  int32_t totalCols = pRsp->numOfTags + pRsp->numOfColumns;
685✔
6367
  if (totalCols > 0) {
685✔
6368
    pRsp->pSchemas = taosMemoryMalloc(sizeof(SSchema) * totalCols);
108!
6369
    if (pRsp->pSchemas == NULL) {
108!
6370
      TAOS_CHECK_RETURN(terrno);
×
6371
    }
6372

6373
    for (int32_t i = 0; i < totalCols; ++i) {
682✔
6374
      SSchema *pSchema = &pRsp->pSchemas[i];
574✔
6375
      TAOS_CHECK_RETURN(tDecodeSSchema(pDecoder, pSchema));
574!
6376
    }
6377
  } else {
6378
    pRsp->pSchemas = NULL;
577✔
6379
  }
6380

6381
  if (!tDecodeIsEnd(pDecoder)) {
685✔
6382
    if (withExtSchema(pRsp->tableType) && pRsp->numOfColumns > 0) {
684✔
6383
      pRsp->pSchemaExt = taosMemoryMalloc(sizeof(SSchemaExt) * pRsp->numOfColumns);
102!
6384
      if (pRsp->pSchemaExt == NULL) {
102!
6385
        TAOS_CHECK_RETURN(terrno);
×
6386
      }
6387

6388
      for (int32_t i = 0; i < pRsp->numOfColumns; ++i) {
409✔
6389
        SSchemaExt *pSchemaExt = &pRsp->pSchemaExt[i];
307✔
6390
        TAOS_CHECK_RETURN(tDecodeSSchemaExt(pDecoder, pSchemaExt));
307!
6391
      }
6392
    } else {
6393
      pRsp->pSchemaExt = NULL;
583✔
6394
    }
6395
  }
6396
  if (!tDecodeIsEnd(pDecoder)) {
686✔
6397
    TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pRsp->virtualStb));
1,370!
6398
    TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pRsp->numOfColRefs));
1,370!
6399
    if (hasRefCol(pRsp->tableType) && pRsp->numOfColRefs > 0) {
685!
6400
      pRsp->pColRefs = taosMemoryMalloc(sizeof(SColRef) * pRsp->numOfColRefs);
×
6401
      if (pRsp->pColRefs == NULL) {
×
6402
        TAOS_CHECK_RETURN(terrno);
×
6403
      }
6404

6405
      for (int32_t i = 0; i < pRsp->numOfColRefs; ++i) {
×
6406
        SColRef *pColRef = &pRsp->pColRefs[i];
×
6407
        TAOS_CHECK_RETURN(tDecodeSColRef(pDecoder, pColRef));
×
6408
      }
6409
    } else {
6410
      pRsp->pColRefs = NULL;
685✔
6411
    }
6412
  }
6413

6414
  return 0;
686✔
6415
}
6416

6417
int32_t tSerializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
96✔
6418
  SEncoder encoder = {0};
96✔
6419
  int32_t  code = 0;
96✔
6420
  int32_t  lino;
6421
  int32_t  tlen;
6422
  tEncoderInit(&encoder, buf, bufLen);
96✔
6423

6424
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
96!
6425
  TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pRsp));
96!
6426
  tEndEncode(&encoder);
96✔
6427

6428
_exit:
96✔
6429
  if (code) {
96!
6430
    tlen = code;
×
6431
  } else {
6432
    tlen = encoder.pos;
96✔
6433
  }
6434
  tEncoderClear(&encoder);
96✔
6435
  return tlen;
96✔
6436
}
6437

6438
int32_t tSerializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
×
6439
  SEncoder encoder = {0};
×
6440
  int32_t  code = 0;
×
6441
  int32_t  lino;
6442
  int32_t  tlen;
6443

6444
  tEncoderInit(&encoder, buf, bufLen);
×
6445

6446
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
6447

6448
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
×
6449
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
×
6450
  for (int32_t i = 0; i < numOfMeta; ++i) {
×
6451
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
×
6452
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(&encoder, pMetaRsp));
×
6453
  }
6454

6455
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
×
6456
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfIndex));
×
6457
  for (int32_t i = 0; i < numOfIndex; ++i) {
×
6458
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
6459
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->tbName));
×
6460
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pIndexRsp->dbFName));
×
6461
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, pIndexRsp->suid));
×
6462
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->version));
×
6463
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pIndexRsp->indexSize));
×
6464
    int32_t num = taosArrayGetSize(pIndexRsp->pIndex);
×
6465
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
6466
    for (int32_t j = 0; j < num; ++j) {
×
6467
      STableIndexInfo *pInfo = (STableIndexInfo *)taosArrayGet(pIndexRsp->pIndex, j);
×
6468
      TAOS_CHECK_EXIT(tSerializeSTableIndexInfo(&encoder, pInfo));
×
6469
    }
6470
  }
6471

6472
  tEndEncode(&encoder);
×
6473

6474
_exit:
×
6475
  if (code) {
×
6476
    tlen = code;
×
6477
  } else {
6478
    tlen = encoder.pos;
×
6479
  }
6480
  tEncoderClear(&encoder);
×
6481
  return tlen;
×
6482
}
6483

6484
int32_t tDeserializeSTableMetaRsp(void *buf, int32_t bufLen, STableMetaRsp *pRsp) {
55✔
6485
  SDecoder decoder = {0};
55✔
6486
  int32_t  code = 0;
55✔
6487
  int32_t  lino;
6488

6489
  tDecoderInit(&decoder, buf, bufLen);
55✔
6490

6491
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
55!
6492
  TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, pRsp));
55!
6493

6494
  tEndDecode(&decoder);
55✔
6495
_exit:
55✔
6496
  tDecoderClear(&decoder);
55✔
6497
  return code;
55✔
6498
}
6499

6500
int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) {
6✔
6501
  SDecoder decoder = {0};
6✔
6502
  int32_t  code = 0;
6✔
6503
  int32_t  lino;
6504

6505
  tDecoderInit(&decoder, buf, bufLen);
6✔
6506

6507
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
6!
6508

6509
  int32_t numOfMeta = 0;
6✔
6510
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
6!
6511
  pRsp->pMetaRsp = taosArrayInit(numOfMeta, sizeof(STableMetaRsp));
6✔
6512
  if (pRsp->pMetaRsp == NULL) {
6!
6513
    TAOS_CHECK_EXIT(terrno);
×
6514
  }
6515

6516
  for (int32_t i = 0; i < numOfMeta; ++i) {
12✔
6517
    STableMetaRsp tableMetaRsp = {0};
6✔
6518
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(&decoder, &tableMetaRsp));
6!
6519
    if (taosArrayPush(pRsp->pMetaRsp, &tableMetaRsp) == NULL) {
12!
6520
      taosMemoryFree(tableMetaRsp.pSchemas);
×
6521
      taosMemoryFree(tableMetaRsp.pSchemaExt);
×
6522
      taosMemoryFree(tableMetaRsp.pColRefs);
×
6523
      TAOS_CHECK_EXIT(terrno);
×
6524
    }
6525
  }
6526

6527
  int32_t numOfIndex = 0;
6✔
6528
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfIndex));
6!
6529

6530
  pRsp->pIndexRsp = taosArrayInit(numOfIndex, sizeof(STableIndexRsp));
6✔
6531
  if (pRsp->pIndexRsp == NULL) {
6!
6532
    TAOS_CHECK_EXIT(terrno);
×
6533
  }
6534

6535
  for (int32_t i = 0; i < numOfIndex; ++i) {
6!
6536
    STableIndexRsp tableIndexRsp = {0};
×
6537
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.tbName));
×
6538
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tableIndexRsp.dbFName));
×
6539
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &tableIndexRsp.suid));
×
6540
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.version));
×
6541
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tableIndexRsp.indexSize));
×
6542
    int32_t num = 0;
×
6543
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
6544
    if (num > 0) {
×
6545
      tableIndexRsp.pIndex = taosArrayInit(num, sizeof(STableIndexInfo));
×
6546
      if (NULL == tableIndexRsp.pIndex) {
×
6547
        TAOS_CHECK_EXIT(terrno);
×
6548
      }
6549
      STableIndexInfo info;
6550
      for (int32_t j = 0; j < num; ++j) {
×
6551
        TAOS_CHECK_EXIT(tDeserializeSTableIndexInfo(&decoder, &info));
×
6552
        if (NULL == taosArrayPush(tableIndexRsp.pIndex, &info)) {
×
6553
          taosMemoryFree(info.expr);
×
6554
          TAOS_CHECK_EXIT(terrno);
×
6555
        }
6556
      }
6557
    }
6558
    if (taosArrayPush(pRsp->pIndexRsp, &tableIndexRsp) == NULL) {
×
6559
      taosArrayDestroyEx(tableIndexRsp.pIndex, tFreeSTableIndexInfo);
×
6560
      TAOS_CHECK_EXIT(terrno);
×
6561
    }
6562
  }
6563

6564
  tEndDecode(&decoder);
6✔
6565

6566
_exit:
6✔
6567
  tDecoderClear(&decoder);
6✔
6568
  return code;
6✔
6569
}
6570

6571
void tFreeSTableMetaRsp(void *pRsp) {
703✔
6572
  if (NULL == pRsp) {
703!
6573
    return;
×
6574
  }
6575

6576
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemas);
703!
6577
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pSchemaExt);
703!
6578
  taosMemoryFreeClear(((STableMetaRsp *)pRsp)->pColRefs);
703!
6579
}
6580

6581
void tFreeSTableIndexRsp(void *info) {
1✔
6582
  if (NULL == info) {
1!
6583
    return;
×
6584
  }
6585

6586
  STableIndexRsp *pInfo = (STableIndexRsp *)info;
1✔
6587

6588
  taosArrayDestroyEx(pInfo->pIndex, tFreeSTableIndexInfo);
1✔
6589
}
6590

6591
void tFreeSSTbHbRsp(SSTbHbRsp *pRsp) {
6✔
6592
  int32_t numOfMeta = taosArrayGetSize(pRsp->pMetaRsp);
6✔
6593
  for (int32_t i = 0; i < numOfMeta; ++i) {
12✔
6594
    STableMetaRsp *pMetaRsp = taosArrayGet(pRsp->pMetaRsp, i);
6✔
6595
    tFreeSTableMetaRsp(pMetaRsp);
6✔
6596
  }
6597

6598
  taosArrayDestroy(pRsp->pMetaRsp);
6✔
6599

6600
  int32_t numOfIndex = taosArrayGetSize(pRsp->pIndexRsp);
6✔
6601
  for (int32_t i = 0; i < numOfIndex; ++i) {
6!
6602
    STableIndexRsp *pIndexRsp = taosArrayGet(pRsp->pIndexRsp, i);
×
6603
    tFreeSTableIndexRsp(pIndexRsp);
×
6604
  }
6605

6606
  taosArrayDestroy(pRsp->pIndexRsp);
6✔
6607
}
6✔
6608

6609
int32_t tSerializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
174✔
6610
  int32_t headLen = sizeof(SMsgHead);
174✔
6611
  int32_t code = 0;
174✔
6612
  int32_t lino;
6613
  if (buf != NULL) {
174✔
6614
    buf = (char *)buf + headLen;
87✔
6615
    bufLen -= headLen;
87✔
6616
  }
6617

6618
  SEncoder encoder = {0};
174✔
6619
  tEncoderInit(&encoder, buf, bufLen);
174✔
6620

6621
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
174!
6622
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
348!
6623
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->tbName));
348!
6624
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->option));
348!
6625
  TAOS_CHECK_EXIT(tEncodeU8(&encoder, pReq->autoCreateCtb));
348!
6626
  tEndEncode(&encoder);
174✔
6627

6628
_exit:
174✔
6629
  if (code) {
174!
6630
    tEncoderClear(&encoder);
×
6631
    return code;
×
6632
  } else {
6633
    int32_t tlen = encoder.pos;
174✔
6634
    tEncoderClear(&encoder);
174✔
6635

6636
    if (buf != NULL) {
174✔
6637
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
87✔
6638
      pHead->vgId = htonl(pReq->header.vgId);
87✔
6639
      pHead->contLen = htonl(tlen + headLen);
87✔
6640
    }
6641

6642
    return tlen + headLen;
174✔
6643
  }
6644
}
6645

6646
int32_t tDeserializeSTableInfoReq(void *buf, int32_t bufLen, STableInfoReq *pReq) {
1✔
6647
  int32_t   headLen = sizeof(SMsgHead);
1✔
6648
  int32_t   code = 0;
1✔
6649
  int32_t   lino;
6650
  SMsgHead *pHead = buf;
1✔
6651
  pHead->vgId = pReq->header.vgId;
1✔
6652
  pHead->contLen = pReq->header.contLen;
1✔
6653

6654
  SDecoder decoder = {0};
1✔
6655
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
1✔
6656

6657
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
6658
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
1!
6659
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->tbName));
1!
6660
  if (!tDecodeIsEnd(&decoder)) {
1!
6661
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->option));
2!
6662
  } else {
6663
    pReq->option = 0;
×
6664
  }
6665
  if (!tDecodeIsEnd(&decoder)) {
1!
6666
    TAOS_CHECK_EXIT(tDecodeU8(&decoder, &pReq->autoCreateCtb));
2!
6667
  } else {
6668
    pReq->autoCreateCtb = 0;
×
6669
  }
6670

6671
  tEndDecode(&decoder);
1✔
6672
_exit:
1✔
6673
  tDecoderClear(&decoder);
1✔
6674
  return code;
1✔
6675
}
6676

6677
int32_t tSerializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
16✔
6678
  SEncoder encoder = {0};
16✔
6679
  int32_t  code = 0;
16✔
6680
  int32_t  lino;
6681
  int32_t  tlen;
6682
  tEncoderInit(&encoder, buf, bufLen);
16✔
6683

6684
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
6685
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
32!
6686
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
32!
6687
  ENCODESQL();
48!
6688
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
32!
6689

6690
  tEndEncode(&encoder);
16✔
6691

6692
_exit:
16✔
6693
  if (code) {
16!
6694
    tlen = code;
×
6695
  } else {
6696
    tlen = encoder.pos;
16✔
6697
  }
6698
  tEncoderClear(&encoder);
16✔
6699
  return tlen;
16✔
6700
}
6701

6702
int32_t tDeserializeSMDropTopicReq(void *buf, int32_t bufLen, SMDropTopicReq *pReq) {
×
6703
  SDecoder decoder = {0};
×
6704
  int32_t  code = 0;
×
6705
  int32_t  lino;
6706

6707
  tDecoderInit(&decoder, buf, bufLen);
×
6708

6709
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
6710
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
6711
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
×
6712
  DECODESQL();
×
6713
  if (!tDecodeIsEnd(&decoder)) {
×
6714
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
×
6715
  }
6716
  tEndDecode(&decoder);
×
6717

6718
_exit:
×
6719
  tDecoderClear(&decoder);
×
6720
  return code;
×
6721
}
6722

6723
void tFreeSMDropTopicReq(SMDropTopicReq *pReq) { FREESQL(); }
8!
6724

6725
int32_t tSerializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
16✔
6726
  SEncoder encoder = {0};
16✔
6727
  int32_t  code = 0;
16✔
6728
  int32_t  lino;
6729
  int32_t  tlen;
6730
  tEncoderInit(&encoder, buf, bufLen);
16✔
6731

6732
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
6733
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->topic));
32!
6734
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
32!
6735
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
32!
6736
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
32!
6737
  tEndEncode(&encoder);
16✔
6738

6739
_exit:
16✔
6740
  if (code) {
16!
6741
    tlen = code;
×
6742
  } else {
6743
    tlen = encoder.pos;
16✔
6744
  }
6745
  tEncoderClear(&encoder);
16✔
6746
  return tlen;
16✔
6747
}
6748

6749
int32_t tDeserializeSMDropCgroupReq(void *buf, int32_t bufLen, SMDropCgroupReq *pReq) {
4✔
6750
  SDecoder decoder = {0};
4✔
6751
  int32_t  code = 0;
4✔
6752
  int32_t  lino;
6753
  tDecoderInit(&decoder, buf, bufLen);
4✔
6754

6755
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
6756
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->topic));
4!
6757
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
4!
6758
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
8!
6759
  if (!tDecodeIsEnd(&decoder)) {
4!
6760
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
8!
6761
  }
6762
  tEndDecode(&decoder);
4✔
6763

6764
_exit:
4✔
6765
  tDecoderClear(&decoder);
4✔
6766
  return code;
4✔
6767
}
6768

6769
int32_t tSerializeSCMCreateTopicReq(void *buf, int32_t bufLen, const SCMCreateTopicReq *pReq) {
66✔
6770
  SEncoder encoder = {0};
66✔
6771
  int32_t  code = 0;
66✔
6772
  int32_t  lino;
6773
  int32_t  tlen;
6774
  tEncoderInit(&encoder, buf, bufLen);
66✔
6775

6776
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
66!
6777
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
132!
6778
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
132!
6779
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->subType));
132!
6780
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withMeta));
132!
6781
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subDbName));
132!
6782
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
66✔
6783
  } else {
6784
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
50✔
6785
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subStbName));
64!
6786
    }
6787
    if (pReq->ast && strlen(pReq->ast) > 0) {
50!
6788
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->ast)));
68!
6789
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
68!
6790
    } else {
6791
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
16!
6792
    }
6793
  }
6794
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, strlen(pReq->sql)));
132!
6795
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
132!
6796

6797
  tEndEncode(&encoder);
66✔
6798

6799
_exit:
66✔
6800
  if (code) {
66!
6801
    tlen = code;
×
6802
  } else {
6803
    tlen = encoder.pos;
66✔
6804
  }
6805
  tEncoderClear(&encoder);
66✔
6806
  return tlen;
66✔
6807
}
6808

6809
int32_t tDeserializeSCMCreateTopicReq(void *buf, int32_t bufLen, SCMCreateTopicReq *pReq) {
16✔
6810
  int32_t  sqlLen = 0;
16✔
6811
  int32_t  astLen = 0;
16✔
6812
  int32_t  code = 0;
16✔
6813
  int32_t  lino;
6814
  SDecoder decoder = {0};
16✔
6815
  tDecoderInit(&decoder, buf, bufLen);
16✔
6816

6817
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16!
6818
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
16!
6819
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
32!
6820
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->subType));
32!
6821
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withMeta));
32!
6822
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subDbName));
16!
6823
  if (TOPIC_SUB_TYPE__DB == pReq->subType) {
16✔
6824
  } else {
6825
    if (TOPIC_SUB_TYPE__TABLE == pReq->subType) {
12✔
6826
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subStbName));
8!
6827
    }
6828
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
12!
6829
    if (astLen > 0) {
12✔
6830
      pReq->ast = taosMemoryCalloc(1, astLen + 1);
8!
6831
      if (pReq->ast == NULL) {
8!
6832
        TAOS_CHECK_EXIT(terrno);
×
6833
      }
6834
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
8!
6835
    }
6836
  }
6837
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
16!
6838
  if (sqlLen > 0) {
16!
6839
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
16!
6840
    if (pReq->sql == NULL) {
16!
6841
      TAOS_CHECK_EXIT(terrno);
×
6842
    }
6843
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
16!
6844
  }
6845

6846
  tEndDecode(&decoder);
16✔
6847

6848
_exit:
16✔
6849
  tDecoderClear(&decoder);
16✔
6850
  return code;
16✔
6851
}
6852

6853
void tFreeSCMCreateTopicReq(SCMCreateTopicReq *pReq) {
49✔
6854
  taosMemoryFreeClear(pReq->sql);
49!
6855
  if (TOPIC_SUB_TYPE__DB != pReq->subType) {
49✔
6856
    taosMemoryFreeClear(pReq->ast);
37!
6857
  }
6858
}
49✔
6859

6860
int32_t tSerializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
188✔
6861
  SEncoder encoder = {0};
188✔
6862
  int32_t  code = 0;
188✔
6863
  int32_t  lino;
6864
  int32_t  tlen;
6865
  tEncoderInit(&encoder, buf, bufLen);
188✔
6866

6867
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
188!
6868
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->connType));
376!
6869
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pid));
376!
6870
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->app));
376!
6871
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
376!
6872
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->user));
376!
6873
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->passwd, TSDB_PASSWORD_LEN));
376!
6874
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->startTime));
376!
6875
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sVer));
376!
6876
  tEndEncode(&encoder);
188✔
6877

6878
_exit:
188✔
6879
  if (code) {
188!
6880
    tlen = code;
×
6881
  } else {
6882
    tlen = encoder.pos;
188✔
6883
  }
6884
  tEncoderClear(&encoder);
188✔
6885
  return tlen;
188✔
6886
}
6887

6888
int32_t tDeserializeSConnectReq(void *buf, int32_t bufLen, SConnectReq *pReq) {
3✔
6889
  SDecoder decoder = {0};
3✔
6890
  int32_t  code = 0;
3✔
6891
  int32_t  lino;
6892
  tDecoderInit(&decoder, buf, bufLen);
3✔
6893

6894
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
3!
6895
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->connType));
6!
6896
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pid));
6!
6897
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->app));
3!
6898
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
3!
6899
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->user));
3!
6900
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->passwd));
3!
6901
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->startTime));
6!
6902
  // Check the client version from version 3.0.3.0
6903
  if (tDecodeIsEnd(&decoder)) {
3!
6904
    tDecoderClear(&decoder);
×
6905
    TAOS_CHECK_EXIT(TSDB_CODE_VERSION_NOT_COMPATIBLE);
×
6906
  }
6907
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sVer));
3!
6908
  tEndDecode(&decoder);
3✔
6909

6910
_exit:
3✔
6911
  tDecoderClear(&decoder);
3✔
6912
  return code;
3✔
6913
}
6914

6915
int32_t tSerializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
4✔
6916
  SEncoder encoder = {0};
4✔
6917
  int32_t  code = 0;
4✔
6918
  int32_t  lino;
6919
  int32_t  tlen;
6920
  tEncoderInit(&encoder, buf, bufLen);
4✔
6921

6922
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
4!
6923
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->acctId));
8!
6924
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->clusterId));
8!
6925
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pRsp->connId));
8!
6926
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeNum));
8!
6927
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->superUser));
8!
6928
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->sysInfo));
8!
6929
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->connType));
8!
6930
  TAOS_CHECK_EXIT(tEncodeSEpSet(&encoder, &pRsp->epSet));
4!
6931
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->svrTimestamp));
8!
6932
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sVer));
8!
6933
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->sDetailVer));
8!
6934
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->passVer));
8!
6935
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->authVer));
8!
6936
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->whiteListVer));
8!
6937
  TAOS_CHECK_EXIT(tSerializeSMonitorParas(&encoder, &pRsp->monitorParas));
4!
6938
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRsp->enableAuditDelete));
8!
6939
  tEndEncode(&encoder);
4✔
6940

6941
_exit:
4✔
6942
  if (code) {
4!
6943
    tlen = code;
×
6944
  } else {
6945
    tlen = encoder.pos;
4✔
6946
  }
6947
  tEncoderClear(&encoder);
4✔
6948
  return tlen;
4✔
6949
}
6950

6951
int32_t tDeserializeSConnectRsp(void *buf, int32_t bufLen, SConnectRsp *pRsp) {
91✔
6952
  SDecoder decoder = {0};
91✔
6953
  int32_t  code = 0;
91✔
6954
  int32_t  lino;
6955
  tDecoderInit(&decoder, buf, bufLen);
91✔
6956

6957
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
91!
6958
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->acctId));
182!
6959
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->clusterId));
182!
6960
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->connId));
182!
6961
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeNum));
182!
6962
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->superUser));
182!
6963
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->sysInfo));
182!
6964
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->connType));
182!
6965
  TAOS_CHECK_EXIT(tDecodeSEpSet(&decoder, &pRsp->epSet));
91!
6966
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->svrTimestamp));
182!
6967
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sVer));
91!
6968
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->sDetailVer));
91!
6969

6970
  if (!tDecodeIsEnd(&decoder)) {
91!
6971
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->passVer));
182!
6972
  } else {
6973
    pRsp->passVer = 0;
×
6974
  }
6975
  // since 3.0.7.0
6976
  if (!tDecodeIsEnd(&decoder)) {
91!
6977
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->authVer));
182!
6978
  } else {
6979
    pRsp->authVer = 0;
×
6980
  }
6981

6982
  if (!tDecodeIsEnd(&decoder)) {
91!
6983
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->whiteListVer));
182!
6984
  } else {
6985
    pRsp->whiteListVer = 0;
×
6986
  }
6987
  if (!tDecodeIsEnd(&decoder)) {
91!
6988
    TAOS_CHECK_EXIT(tDeserializeSMonitorParas(&decoder, &pRsp->monitorParas));
91!
6989
  }
6990
  if (!tDecodeIsEnd(&decoder)) {
91!
6991
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pRsp->enableAuditDelete));
182!
6992
  } else {
6993
    pRsp->enableAuditDelete = 0;
×
6994
  }
6995
  tEndDecode(&decoder);
91✔
6996

6997
_exit:
91✔
6998
  tDecoderClear(&decoder);
91✔
6999
  return code;
91✔
7000
}
7001

7002
int32_t tSerializeSMTimerMsg(void *buf, int32_t bufLen, SMTimerReq *pReq) {
70✔
7003
  SEncoder encoder = {0};
70✔
7004
  int32_t  code = 0;
70✔
7005
  int32_t  lino;
7006
  int32_t  tlen;
7007
  tEncoderInit(&encoder, buf, bufLen);
70✔
7008

7009
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
70!
7010
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
140!
7011
  tEndEncode(&encoder);
70✔
7012

7013
_exit:
70✔
7014
  if (code) {
70!
7015
    tlen = code;
×
7016
  } else {
7017
    tlen = encoder.pos;
70✔
7018
  }
7019
  tEncoderClear(&encoder);
70✔
7020
  return tlen;
70✔
7021
}
7022

7023
int32_t tSerializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
×
7024
  SEncoder encoder = {0};
×
7025
  int32_t  code = 0;
×
7026
  int32_t  lino;
7027
  int32_t  tlen;
7028
  tEncoderInit(&encoder, buf, bufLen);
×
7029

7030
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7031

7032
  int32_t size = taosArrayGetSize(pMsg->pList);
×
7033
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
×
7034

7035
  for (int32_t i = 0; i < size; i++) {
×
7036
    SOrphanTask *pTask = taosArrayGet(pMsg->pList, i);
×
7037
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pTask->streamId));
×
7038
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->taskId));
×
7039
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pTask->nodeId));
×
7040
  }
7041

7042
  tEndEncode(&encoder);
×
7043

7044
_exit:
×
7045
  if (code) {
×
7046
    tlen = code;
×
7047
  } else {
7048
    tlen = encoder.pos;
×
7049
  }
7050
  tEncoderClear(&encoder);
×
7051
  return tlen;
×
7052
}
7053

7054
int32_t tDeserializeDropOrphanTaskMsg(void *buf, int32_t bufLen, SMStreamDropOrphanMsg *pMsg) {
×
7055
  SDecoder decoder = {0};
×
7056
  int32_t  code = 0;
×
7057
  int32_t  lino;
7058
  tDecoderInit(&decoder, buf, bufLen);
×
7059

7060
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7061

7062
  int32_t num = 0;
×
7063
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
7064

7065
  if (num > 0) {
×
7066
    pMsg->pList = taosArrayInit(num, sizeof(SOrphanTask));
×
7067
    if (NULL == pMsg->pList) {
×
7068
      TAOS_CHECK_EXIT(terrno);
×
7069
    }
7070
    for (int32_t i = 0; i < num; ++i) {
×
7071
      SOrphanTask info = {0};
×
7072
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &info.streamId));
×
7073
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.taskId));
×
7074
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &info.nodeId));
×
7075

7076
      if (taosArrayPush(pMsg->pList, &info) == NULL) {
×
7077
        TAOS_CHECK_EXIT(terrno);
×
7078
      }
7079
    }
7080
  }
7081

7082
  tEndDecode(&decoder);
×
7083
_exit:
×
7084
  tDecoderClear(&decoder);
×
7085
  return code;
×
7086
}
7087

7088
void tDestroyDropOrphanTaskMsg(SMStreamDropOrphanMsg *pMsg) {
×
7089
  if (pMsg == NULL) {
×
7090
    return;
×
7091
  }
7092

7093
  taosArrayDestroy(pMsg->pList);
×
7094
}
7095

7096
int32_t tEncodeSReplica(SEncoder *pEncoder, SReplica *pReplica) {
600✔
7097
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReplica->id));
1,200!
7098
  TAOS_CHECK_RETURN(tEncodeU16(pEncoder, pReplica->port));
1,200!
7099
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReplica->fqdn));
1,200!
7100
  return 0;
600✔
7101
}
7102

7103
int32_t tDecodeSReplica(SDecoder *pDecoder, SReplica *pReplica) {
300✔
7104
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReplica->id));
600!
7105
  TAOS_CHECK_RETURN(tDecodeU16(pDecoder, &pReplica->port));
600!
7106
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReplica->fqdn));
300!
7107
  return 0;
300✔
7108
}
7109

7110
int32_t tSerializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
40✔
7111
  SEncoder encoder = {0};
40✔
7112
  int32_t  code = 0;
40✔
7113
  int32_t  lino;
7114
  int32_t  tlen;
7115
  tEncoderInit(&encoder, buf, bufLen);
40✔
7116

7117
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
40!
7118
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
80!
7119
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
80!
7120
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
80!
7121
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
80!
7122
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfStables));
80!
7123
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
80!
7124
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
80!
7125
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
80!
7126
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
80!
7127
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
80!
7128
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
80!
7129
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
80!
7130
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
80!
7131
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
80!
7132
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->maxRows));
80!
7133
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
80!
7134
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashBegin));
80!
7135
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->hashEnd));
80!
7136
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->hashMethod));
80!
7137
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
80!
7138
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
80!
7139
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compression));
80!
7140
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
80!
7141
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
80!
7142
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
80!
7143
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
80!
7144
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
240✔
7145
    SReplica *pReplica = &pReq->replicas[i];
200✔
7146
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
200!
7147
  }
7148
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfRetensions));
80!
7149
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
40!
7150
    SRetention *pRetension = taosArrayGet(pReq->pRetensions, i);
×
7151
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->freq));
×
7152
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRetension->keep));
×
7153
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->freqUnit));
×
7154
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pRetension->keepUnit));
×
7155
  }
7156

7157
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->isTsma));
80!
7158
  if (pReq->isTsma) {
40!
7159
    uint32_t tsmaLen = (uint32_t)(htonl(((SMsgHead *)pReq->pTsma)->contLen));
×
7160
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (const uint8_t *)pReq->pTsma, tsmaLen));
×
7161
  }
7162
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
80!
7163
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walRetentionSize));
80!
7164
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRollPeriod));
80!
7165
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->walSegmentSize));
80!
7166
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sstTrigger));
80!
7167
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashPrefix));
80!
7168
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->hashSuffix));
80!
7169
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->tsdbPageSize));
80!
7170
  for (int32_t i = 0; i < 6; ++i) {
280✔
7171
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
480!
7172
  }
7173
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
80!
7174
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
80!
7175
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
440✔
7176
    SReplica *pReplica = &pReq->learnerReplicas[i];
400✔
7177
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
400!
7178
  }
7179
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
80!
7180
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
80!
7181
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->encryptAlgorithm));
80!
7182
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3ChunkSize));
80!
7183
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
80!
7184
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
80!
7185

7186
  tEndEncode(&encoder);
40✔
7187

7188
_exit:
40✔
7189
  if (code) {
40!
7190
    tlen = code;
×
7191
  } else {
7192
    tlen = encoder.pos;
40✔
7193
  }
7194
  tEncoderClear(&encoder);
40✔
7195
  return tlen;
40✔
7196
}
7197

7198
int32_t tDeserializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq *pReq) {
20✔
7199
  SDecoder decoder = {0};
20✔
7200
  int32_t  code = 0;
20✔
7201
  int32_t  lino;
7202

7203
  tDecoderInit(&decoder, buf, bufLen);
20✔
7204

7205
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
20!
7206
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
40!
7207
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
20!
7208
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
40!
7209
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
40!
7210
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfStables));
40!
7211
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
40!
7212
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
40!
7213
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
40!
7214
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
40!
7215
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
40!
7216
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
40!
7217
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
40!
7218
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
40!
7219
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
40!
7220
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->maxRows));
40!
7221
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
40!
7222
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashBegin));
40!
7223
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->hashEnd));
40!
7224
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->hashMethod));
40!
7225
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
40!
7226
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
40!
7227
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compression));
40!
7228
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
40!
7229
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
40!
7230
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
40!
7231
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
40!
7232
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
120✔
7233
    SReplica *pReplica = &pReq->replicas[i];
100✔
7234
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
100!
7235
  }
7236
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfRetensions));
40!
7237
  pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention));
20✔
7238
  if (pReq->pRetensions == NULL) {
20!
7239
    TAOS_CHECK_EXIT(terrno);
×
7240
  }
7241

7242
  for (int32_t i = 0; i < pReq->numOfRetensions; ++i) {
20!
7243
    SRetention rentension = {0};
×
7244
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.freq));
×
7245
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &rentension.keep));
×
7246
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.freqUnit));
×
7247
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &rentension.keepUnit));
×
7248
    if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) {
×
7249
      TAOS_CHECK_EXIT(terrno);
×
7250
    }
7251
  }
7252

7253
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->isTsma));
40!
7254
  if (pReq->isTsma) {
20!
7255
    TAOS_CHECK_EXIT(tDecodeBinary(&decoder, (uint8_t **)&pReq->pTsma, NULL));
×
7256
  }
7257

7258
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
40!
7259
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walRetentionSize));
40!
7260
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRollPeriod));
40!
7261
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->walSegmentSize));
40!
7262
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sstTrigger));
40!
7263
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashPrefix));
40!
7264
  TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->hashSuffix));
40!
7265
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->tsdbPageSize));
40!
7266
  for (int32_t i = 0; i < 6; ++i) {
140✔
7267
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
240!
7268
  }
7269
  if (!tDecodeIsEnd(&decoder)) {
20!
7270
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
40!
7271
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
40!
7272
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
220✔
7273
      SReplica *pReplica = &pReq->learnerReplicas[i];
200✔
7274
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
200!
7275
    }
7276
  }
7277
  if (!tDecodeIsEnd(&decoder)) {
20!
7278
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
40!
7279
  }
7280
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
20✔
7281
  if (!tDecodeIsEnd(&decoder)) {
20!
7282
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
40!
7283
  }
7284
  pReq->encryptAlgorithm = TSDB_DEFAULT_ENCRYPT_ALGO;
20✔
7285
  pReq->s3ChunkSize = TSDB_DEFAULT_S3_CHUNK_SIZE;
20✔
7286
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
20✔
7287
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
20✔
7288
  if (!tDecodeIsEnd(&decoder)) {
20!
7289
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->encryptAlgorithm));
40!
7290
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3ChunkSize));
40!
7291
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal));
40!
7292
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact));
40!
7293
  }
7294

7295
  tEndDecode(&decoder);
20✔
7296

7297
_exit:
20✔
7298
  tDecoderClear(&decoder);
20✔
7299
  return code;
20✔
7300
}
7301

7302
int32_t tFreeSCreateVnodeReq(SCreateVnodeReq *pReq) {
20✔
7303
  taosArrayDestroy(pReq->pRetensions);
20✔
7304
  pReq->pRetensions = NULL;
20✔
7305
  return 0;
20✔
7306
}
7307

7308
int32_t tSerializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
×
7309
  SEncoder encoder = {0};
×
7310
  int32_t  code = 0;
×
7311
  int32_t  lino;
7312
  int32_t  tlen;
7313
  tEncoderInit(&encoder, buf, bufLen);
×
7314

7315
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7316

7317
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
7318
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
7319
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
7320

7321
  tEndEncode(&encoder);
×
7322

7323
_exit:
×
7324
  if (code) {
×
7325
    tlen = code;
×
7326
  } else {
7327
    tlen = encoder.pos;
×
7328
  }
7329
  tEncoderClear(&encoder);
×
7330
  return tlen;
×
7331
}
7332

7333
int32_t tDeserializeSQueryCompactProgressReq(void *buf, int32_t bufLen, SQueryCompactProgressReq *pReq) {
×
7334
  int32_t  headLen = sizeof(SMsgHead);
×
7335
  SDecoder decoder = {0};
×
7336
  int32_t  code = 0;
×
7337
  int32_t  lino;
7338
  tDecoderInit(&decoder, ((uint8_t *)buf) + headLen, bufLen - headLen);
×
7339

7340
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7341
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
7342
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
7343
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
7344

7345
  tEndDecode(&decoder);
×
7346
_exit:
×
7347
  tDecoderClear(&decoder);
×
7348
  return code;
×
7349
}
7350

7351
int32_t tSerializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
×
7352
  SEncoder encoder = {0};
×
7353
  int32_t  code = 0;
×
7354
  int32_t  lino;
7355
  int32_t  tlen;
7356
  tEncoderInit(&encoder, buf, bufLen);
×
7357

7358
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7359
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
7360
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
7361
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
7362
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numberFileset));
×
7363
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->finished));
×
7364
  // 1. add progress and remaining time
7365
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->progress));
×
7366
  TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->remainingTime));
×
7367

7368
  tEndEncode(&encoder);
×
7369

7370
_exit:
×
7371
  if (code) {
×
7372
    tlen = code;
×
7373
  } else {
7374
    tlen = encoder.pos;
×
7375
  }
7376
  tEncoderClear(&encoder);
×
7377
  return tlen;
×
7378
}
7379
int32_t tDeserializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCompactProgressRsp *pReq) {
×
7380
  SDecoder decoder = {0};
×
7381
  int32_t  code = 0;
×
7382
  int32_t  lino;
7383
  tDecoderInit(&decoder, buf, bufLen);
×
7384

7385
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7386
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
7387
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
7388
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
7389
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numberFileset));
×
7390
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->finished));
×
7391
  // 1. decode progress and remaining time
7392
  if (!tDecodeIsEnd(&decoder)) {
×
7393
    TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->progress));
×
7394
    TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->remainingTime));
×
7395
  } else {
7396
    pReq->progress = 0;
×
7397
    pReq->remainingTime = 0;
×
7398
  }
7399

7400
  tEndDecode(&decoder);
×
7401
_exit:
×
7402
  tDecoderClear(&decoder);
×
7403
  return code;
×
7404
}
7405

7406
int32_t tSerializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
72✔
7407
  SEncoder encoder = {0};
72✔
7408
  int32_t  code = 0;
72✔
7409
  int32_t  lino;
7410
  int32_t  tlen;
7411
  tEncoderInit(&encoder, buf, bufLen);
72✔
7412

7413
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
72!
7414
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
144!
7415
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
144!
7416
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
144!
7417
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
144!
7418
  for (int32_t i = 0; i < 8; ++i) {
648✔
7419
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
1,152!
7420
  }
7421
  tEndEncode(&encoder);
72✔
7422

7423
_exit:
72✔
7424
  if (code) {
72!
7425
    tlen = code;
×
7426
  } else {
7427
    tlen = encoder.pos;
72✔
7428
  }
7429
  tEncoderClear(&encoder);
72✔
7430
  return tlen;
72✔
7431
}
7432

7433
int32_t tDeserializeSDropVnodeReq(void *buf, int32_t bufLen, SDropVnodeReq *pReq) {
16✔
7434
  SDecoder decoder = {0};
16✔
7435
  int32_t  code = 0;
16✔
7436
  int32_t  lino;
7437
  tDecoderInit(&decoder, buf, bufLen);
16✔
7438

7439
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16!
7440
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
32!
7441
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
32!
7442
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
32!
7443
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
16!
7444
  for (int32_t i = 0; i < 8; ++i) {
144✔
7445
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
256!
7446
  }
7447
  tEndDecode(&decoder);
16✔
7448

7449
_exit:
16✔
7450
  tDecoderClear(&decoder);
16✔
7451
  return code;
16✔
7452
}
7453
int32_t tSerializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
×
7454
  SEncoder encoder = {0};
×
7455
  int32_t  code = 0;
×
7456
  int32_t  lino;
7457
  int32_t  tlen;
7458
  tEncoderInit(&encoder, buf, bufLen);
×
7459

7460
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7461
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->colName));
×
7462
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->stb));
×
7463
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->stbUid));
×
7464
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
×
7465
  for (int32_t i = 0; i < 8; ++i) {
×
7466
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
×
7467
  }
7468
  tEndEncode(&encoder);
×
7469

7470
_exit:
×
7471
  if (code) {
×
7472
    tlen = code;
×
7473
  } else {
7474
    tlen = encoder.pos;
×
7475
  }
7476
  tEncoderClear(&encoder);
×
7477
  return tlen;
×
7478
}
7479

7480
int32_t tDeserializeSDropIdxReq(void *buf, int32_t bufLen, SDropIndexReq *pReq) {
×
7481
  SDecoder decoder = {0};
×
7482
  int32_t  code = 0;
×
7483
  int32_t  lino;
7484
  tDecoderInit(&decoder, buf, bufLen);
×
7485

7486
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7487
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->colName));
×
7488
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->stb));
×
7489
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->stbUid));
×
7490
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
×
7491
  for (int32_t i = 0; i < 8; ++i) {
×
7492
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
×
7493
  }
7494
  tEndDecode(&decoder);
×
7495

7496
_exit:
×
7497
  tDecoderClear(&decoder);
×
7498
  return code;
×
7499
}
7500

7501
int32_t tSerializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
×
7502
  SEncoder encoder = {0};
×
7503
  int32_t  code = 0;
×
7504
  int32_t  lino;
7505
  int32_t  tlen;
7506
  tEncoderInit(&encoder, buf, bufLen);
×
7507

7508
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7509
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->dbUid));
×
7510
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
×
7511
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->compactStartTime));
×
7512

7513
  // 1.1 add tw.skey and tw.ekey
7514
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.skey));
×
7515
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->tw.ekey));
×
7516

7517
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
7518
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->metaOnly));
×
7519

7520
  tEndEncode(&encoder);
×
7521

7522
_exit:
×
7523
  if (code) {
×
7524
    tlen = code;
×
7525
  } else {
7526
    tlen = encoder.pos;
×
7527
  }
7528
  tEncoderClear(&encoder);
×
7529
  return tlen;
×
7530
}
7531

7532
int32_t tDeserializeSCompactVnodeReq(void *buf, int32_t bufLen, SCompactVnodeReq *pReq) {
×
7533
  SDecoder decoder = {0};
×
7534
  int32_t  code = 0;
×
7535
  int32_t  lino;
7536
  tDecoderInit(&decoder, buf, bufLen);
×
7537

7538
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7539
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->dbUid));
×
7540
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
×
7541
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->compactStartTime));
×
7542

7543
  // 1.1
7544
  if (tDecodeIsEnd(&decoder)) {
×
7545
    pReq->tw.skey = TSKEY_MIN;
×
7546
    pReq->tw.ekey = TSKEY_MAX;
×
7547
  } else {
7548
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.skey));
×
7549
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->tw.ekey));
×
7550
  }
7551

7552
  if (!tDecodeIsEnd(&decoder)) {
×
7553
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
7554
  }
7555

7556
  if (!tDecodeIsEnd(&decoder)) {
×
7557
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->metaOnly));
×
7558
  } else {
7559
    pReq->metaOnly = false;
×
7560
  }
7561

7562
  tEndDecode(&decoder);
×
7563
_exit:
×
7564
  tDecoderClear(&decoder);
×
7565
  return code;
×
7566
}
7567

7568
int32_t tSerializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
×
7569
  SEncoder encoder = {0};
×
7570
  int32_t  code = 0;
×
7571
  int32_t  lino;
7572
  int32_t  tlen;
7573
  tEncoderInit(&encoder, buf, bufLen);
×
7574

7575
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7576
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->compactId));
×
7577
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
7578
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
7579

7580
  tEndEncode(&encoder);
×
7581

7582
_exit:
×
7583
  if (code) {
×
7584
    tlen = code;
×
7585
  } else {
7586
    tlen = encoder.pos;
×
7587
  }
7588
  tEncoderClear(&encoder);
×
7589
  return tlen;
×
7590
}
7591

7592
int32_t tDeserializeSVKillCompactReq(void *buf, int32_t bufLen, SVKillCompactReq *pReq) {
×
7593
  int32_t  code = 0;
×
7594
  int32_t  lino;
7595
  SDecoder decoder = {0};
×
7596

7597
  tDecoderInit(&decoder, buf, bufLen);
×
7598

7599
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7600
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->compactId));
×
7601
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
7602
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
7603
  tEndDecode(&decoder);
×
7604

7605
_exit:
×
7606
  tDecoderClear(&decoder);
×
7607
  return code;
×
7608
}
7609

7610
int32_t tSerializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
×
7611
  int32_t  code = 0;
×
7612
  int32_t  lino;
7613
  int32_t  tlen;
7614
  SEncoder encoder = {0};
×
7615

7616
  tEncoderInit(&encoder, buf, bufLen);
×
7617

7618
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7619
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgVersion));
×
7620
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->buffer));
×
7621
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pageSize));
×
7622
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->pages));
×
7623
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->cacheLastSize));
×
7624
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysPerFile));
×
7625
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep0));
×
7626
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep1));
×
7627
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->daysToKeep2));
×
7628
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walFsyncPeriod));
×
7629
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->walLevel));
×
7630
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
×
7631
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->cacheLast));
×
7632
  for (int32_t i = 0; i < 7; ++i) {
×
7633
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
×
7634
  }
7635

7636
  // 1st modification
7637
  TAOS_CHECK_EXIT(tEncodeI16(&encoder, pReq->sttTrigger));
×
7638
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minRows));
×
7639
  // 2nd modification
7640
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionPeriod));
×
7641
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->walRetentionSize));
×
7642
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->keepTimeOffset));
×
7643

7644
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->s3KeepLocal));
×
7645
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->s3Compact));
×
7646

7647
  tEndEncode(&encoder);
×
7648

7649
_exit:
×
7650
  if (code) {
×
7651
    tlen = code;
×
7652
  } else {
7653
    tlen = encoder.pos;
×
7654
  }
7655
  tEncoderClear(&encoder);
×
7656
  return tlen;
×
7657
}
7658

7659
int32_t tDeserializeSAlterVnodeConfigReq(void *buf, int32_t bufLen, SAlterVnodeConfigReq *pReq) {
×
7660
  SDecoder decoder = {0};
×
7661
  int32_t  code = 0;
×
7662
  int32_t  lino;
7663
  tDecoderInit(&decoder, buf, bufLen);
×
7664

7665
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7666
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgVersion));
×
7667
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->buffer));
×
7668
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pageSize));
×
7669
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->pages));
×
7670
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cacheLastSize));
×
7671
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysPerFile));
×
7672
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep0));
×
7673
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep1));
×
7674
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->daysToKeep2));
×
7675
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walFsyncPeriod));
×
7676
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->walLevel));
×
7677
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
×
7678
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->cacheLast));
×
7679
  for (int32_t i = 0; i < 7; ++i) {
×
7680
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
×
7681
  }
7682

7683
  // 1st modification
7684
  if (tDecodeIsEnd(&decoder)) {
×
7685
    pReq->sttTrigger = -1;
×
7686
    pReq->minRows = -1;
×
7687
  } else {
7688
    TAOS_CHECK_EXIT(tDecodeI16(&decoder, &pReq->sttTrigger));
×
7689
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minRows));
×
7690
  }
7691

7692
  // 2n modification
7693
  if (tDecodeIsEnd(&decoder)) {
×
7694
    pReq->walRetentionPeriod = -1;
×
7695
    pReq->walRetentionSize = -1;
×
7696
  } else {
7697
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionPeriod));
×
7698
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->walRetentionSize));
×
7699
  }
7700
  pReq->keepTimeOffset = TSDB_DEFAULT_KEEP_TIME_OFFSET;
×
7701
  if (!tDecodeIsEnd(&decoder)) {
×
7702
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->keepTimeOffset));
×
7703
  }
7704

7705
  pReq->s3KeepLocal = TSDB_DEFAULT_S3_KEEP_LOCAL;
×
7706
  pReq->s3Compact = TSDB_DEFAULT_S3_COMPACT;
×
7707
  if (!tDecodeIsEnd(&decoder)) {
×
7708
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->s3KeepLocal) < 0);
×
7709
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->s3Compact) < 0);
×
7710
  }
7711

7712
  tEndDecode(&decoder);
×
7713

7714
_exit:
×
7715
  tDecoderClear(&decoder);
×
7716
  return code;
×
7717
}
7718

7719
int32_t tSerializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
×
7720
  SEncoder encoder = {0};
×
7721
  int32_t  code = 0;
×
7722
  int32_t  lino;
7723
  int32_t  tlen;
7724
  tEncoderInit(&encoder, buf, bufLen);
×
7725

7726
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7727
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
7728
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->strict));
×
7729
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->selfIndex));
×
7730
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
×
7731
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
×
7732
    SReplica *pReplica = &pReq->replicas[i];
×
7733
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
×
7734
  }
7735
  for (int32_t i = 0; i < 8; ++i) {
×
7736
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->reserved[i]));
×
7737
  }
7738
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerSelfIndex));
×
7739
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
×
7740
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
×
7741
    SReplica *pReplica = &pReq->learnerReplicas[i];
×
7742
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
×
7743
  }
7744
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
×
7745
  tEndEncode(&encoder);
×
7746

7747
_exit:
×
7748
  if (code) {
×
7749
    tlen = code;
×
7750
  } else {
7751
    tlen = encoder.pos;
×
7752
  }
7753
  tEncoderClear(&encoder);
×
7754
  return tlen;
×
7755
}
7756

7757
int32_t tDeserializeSAlterVnodeReplicaReq(void *buf, int32_t bufLen, SAlterVnodeReplicaReq *pReq) {
×
7758
  SDecoder decoder = {0};
×
7759
  int32_t  code = 0;
×
7760
  int32_t  lino;
7761
  tDecoderInit(&decoder, buf, bufLen);
×
7762

7763
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7764
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
7765
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->strict));
×
7766
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->selfIndex));
×
7767
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
×
7768
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
×
7769
    SReplica *pReplica = &pReq->replicas[i];
×
7770
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
×
7771
  }
7772
  for (int32_t i = 0; i < 8; ++i) {
×
7773
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->reserved[i]));
×
7774
  }
7775
  if (!tDecodeIsEnd(&decoder)) {
×
7776
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerSelfIndex));
×
7777
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
×
7778
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
×
7779
      SReplica *pReplica = &pReq->learnerReplicas[i];
×
7780
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
×
7781
    }
7782
  }
7783
  if (!tDecodeIsEnd(&decoder)) {
×
7784
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
×
7785
  }
7786

7787
  tEndDecode(&decoder);
×
7788
_exit:
×
7789
  tDecoderClear(&decoder);
×
7790
  return code;
×
7791
}
7792

7793
int32_t tSerializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
×
7794
  SEncoder encoder = {0};
×
7795
  int32_t  code = 0;
×
7796
  int32_t  lino;
7797
  int32_t  tlen;
7798
  tEncoderInit(&encoder, buf, bufLen);
×
7799

7800
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7801
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
7802
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->disable));
×
7803

7804
  tEndEncode(&encoder);
×
7805

7806
_exit:
×
7807
  if (code) {
×
7808
    tlen = code;
×
7809
  } else {
7810
    tlen = encoder.pos;
×
7811
  }
7812
  tEncoderClear(&encoder);
×
7813
  return tlen;
×
7814
}
7815

7816
int32_t tDeserializeSDisableVnodeWriteReq(void *buf, int32_t bufLen, SDisableVnodeWriteReq *pReq) {
×
7817
  SDecoder decoder = {0};
×
7818
  int32_t  code = 0;
×
7819
  int32_t  lino;
7820
  tDecoderInit(&decoder, buf, bufLen);
×
7821

7822
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7823
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
×
7824
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->disable));
×
7825

7826
  tEndDecode(&decoder);
×
7827
_exit:
×
7828
  tDecoderClear(&decoder);
×
7829
  return code;
×
7830
}
7831

7832
int32_t tSerializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
×
7833
  SEncoder encoder = {0};
×
7834
  int32_t  code = 0;
×
7835
  int32_t  lino;
7836
  int32_t  tlen;
7837
  tEncoderInit(&encoder, buf, bufLen);
×
7838

7839
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7840
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->srcVgId));
×
7841
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dstVgId));
×
7842
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashBegin));
×
7843
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->hashEnd));
×
7844
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->changeVersion));
×
7845
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
×
7846

7847
  tEndEncode(&encoder);
×
7848

7849
_exit:
×
7850
  if (code) {
×
7851
    tlen = code;
×
7852
  } else {
7853
    tlen = encoder.pos;
×
7854
  }
7855
  tEncoderClear(&encoder);
×
7856
  return tlen;
×
7857
}
7858

7859
int32_t tDeserializeSAlterVnodeHashRangeReq(void *buf, int32_t bufLen, SAlterVnodeHashRangeReq *pReq) {
×
7860
  SDecoder decoder = {0};
×
7861
  int32_t  code = 0;
×
7862
  int32_t  lino;
7863
  tDecoderInit(&decoder, buf, bufLen);
×
7864

7865
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7866
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->srcVgId));
×
7867
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dstVgId));
×
7868
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashBegin));
×
7869
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->hashEnd));
×
7870
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->changeVersion));
×
7871
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
×
7872

7873
  tEndDecode(&decoder);
×
7874
_exit:
×
7875
  tDecoderClear(&decoder);
×
7876
  return code;
×
7877
}
7878

7879
int32_t tSerializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
2✔
7880
  SEncoder encoder = {0};
2✔
7881
  int32_t  code = 0;
2✔
7882
  int32_t  lino;
7883
  int32_t  tlen;
7884
  tEncoderInit(&encoder, buf, bufLen);
2✔
7885

7886
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
7887
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->queryStrId));
4!
7888
  tEndEncode(&encoder);
2✔
7889

7890
_exit:
2✔
7891
  if (code) {
2!
7892
    tlen = code;
×
7893
  } else {
7894
    tlen = encoder.pos;
2✔
7895
  }
7896
  tEncoderClear(&encoder);
2✔
7897
  return tlen;
2✔
7898
}
7899

7900
int32_t tDeserializeSKillQueryReq(void *buf, int32_t bufLen, SKillQueryReq *pReq) {
1✔
7901
  SDecoder decoder = {0};
1✔
7902
  int32_t  code = 0;
1✔
7903
  int32_t  lino;
7904
  tDecoderInit(&decoder, buf, bufLen);
1✔
7905

7906
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
7907
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->queryStrId));
1!
7908
  tEndDecode(&decoder);
1✔
7909

7910
_exit:
1✔
7911
  tDecoderClear(&decoder);
1✔
7912
  return code;
1✔
7913
}
7914

7915
int32_t tSerializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
2✔
7916
  SEncoder encoder = {0};
2✔
7917
  int32_t  code = 0;
2✔
7918
  int32_t  lino;
7919
  int32_t  tlen;
7920
  tEncoderInit(&encoder, buf, bufLen);
2✔
7921

7922
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
2!
7923
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->connId));
4!
7924
  tEndEncode(&encoder);
2✔
7925

7926
_exit:
2✔
7927
  if (code) {
2!
7928
    tlen = code;
×
7929
  } else {
7930
    tlen = encoder.pos;
2✔
7931
  }
7932
  tEncoderClear(&encoder);
2✔
7933
  return tlen;
2✔
7934
}
7935

7936
int32_t tDeserializeSKillConnReq(void *buf, int32_t bufLen, SKillConnReq *pReq) {
1✔
7937
  SDecoder decoder = {0};
1✔
7938
  int32_t  code = 0;
1✔
7939
  int32_t  lino;
7940
  tDecoderInit(&decoder, buf, bufLen);
1✔
7941

7942
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
1!
7943
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->connId));
2!
7944
  tEndDecode(&decoder);
1✔
7945

7946
_exit:
1✔
7947
  tDecoderClear(&decoder);
1✔
7948
  return code;
1✔
7949
}
7950

7951
int32_t tSerializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
×
7952
  SEncoder encoder = {0};
×
7953
  int32_t  code = 0;
×
7954
  int32_t  lino;
7955
  int32_t  tlen;
7956
  tEncoderInit(&encoder, buf, bufLen);
×
7957

7958
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
7959
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->transId));
×
7960
  tEndEncode(&encoder);
×
7961

7962
_exit:
×
7963
  if (code) {
×
7964
    tlen = code;
×
7965
  } else {
7966
    tlen = encoder.pos;
×
7967
  }
7968
  tEncoderClear(&encoder);
×
7969
  return tlen;
×
7970
}
7971

7972
int32_t tDeserializeSKillTransReq(void *buf, int32_t bufLen, SKillTransReq *pReq) {
×
7973
  SDecoder decoder = {0};
×
7974
  int32_t  code = 0;
×
7975
  int32_t  lino;
7976
  tDecoderInit(&decoder, buf, bufLen);
×
7977

7978
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
7979
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->transId));
×
7980
  tEndDecode(&decoder);
×
7981

7982
_exit:
×
7983
  tDecoderClear(&decoder);
×
7984
  return code;
×
7985
}
7986

7987
int32_t tSerializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
8✔
7988
  SEncoder encoder = {0};
8✔
7989
  int32_t  code = 0;
8✔
7990
  int32_t  lino;
7991
  int32_t  tlen;
7992
  tEncoderInit(&encoder, buf, bufLen);
8✔
7993

7994
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
7995
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
16!
7996
  ENCODESQL();
24!
7997
  tEndEncode(&encoder);
8✔
7998

7999
_exit:
8✔
8000
  if (code) {
8!
8001
    tlen = code;
×
8002
  } else {
8003
    tlen = encoder.pos;
8✔
8004
  }
8005
  tEncoderClear(&encoder);
8✔
8006
  return tlen;
8✔
8007
}
8008

8009
int32_t tDeserializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupReq *pReq) {
2✔
8010
  SDecoder decoder = {0};
2✔
8011
  int32_t  code = 0;
2✔
8012
  int32_t  lino;
8013
  tDecoderInit(&decoder, buf, bufLen);
2✔
8014

8015
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8016
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
4!
8017
  DECODESQL();
6!
8018
  tEndDecode(&decoder);
2✔
8019

8020
_exit:
2✔
8021
  tDecoderClear(&decoder);
2✔
8022
  return code;
2✔
8023
}
8024

8025
void tFreeSBalanceVgroupReq(SBalanceVgroupReq *pReq) { FREESQL(); }
6!
8026

8027
int32_t tSerializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
×
8028
  SEncoder encoder = {0};
×
8029
  int32_t  code = 0;
×
8030
  int32_t  lino;
8031
  int32_t  tlen;
8032
  tEncoderInit(&encoder, buf, bufLen);
×
8033

8034
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8035
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->useless));
×
8036
  ENCODESQL();
×
8037
  tEndEncode(&encoder);
×
8038

8039
_exit:
×
8040
  if (code) {
×
8041
    tlen = code;
×
8042
  } else {
8043
    tlen = encoder.pos;
×
8044
  }
8045
  tEncoderClear(&encoder);
×
8046
  return tlen;
×
8047
}
8048

8049
int32_t tDeserializeSAssignLeaderReq(void *buf, int32_t bufLen, SAssignLeaderReq *pReq) {
×
8050
  SDecoder decoder = {0};
×
8051
  int32_t  code = 0;
×
8052
  int32_t  lino;
8053
  tDecoderInit(&decoder, buf, bufLen);
×
8054

8055
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8056
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->useless));
×
8057
  DECODESQL();
×
8058
  tEndDecode(&decoder);
×
8059

8060
_exit:
×
8061
  tDecoderClear(&decoder);
×
8062
  return code;
×
8063
}
8064

8065
void tFreeSAssignLeaderReq(SAssignLeaderReq *pReq) { FREESQL(); }
×
8066

8067
int32_t tSerializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
8✔
8068
  SEncoder encoder = {0};
8✔
8069
  int32_t  code = 0;
8✔
8070
  int32_t  lino;
8071
  int32_t  tlen;
8072
  tEncoderInit(&encoder, buf, bufLen);
8✔
8073

8074
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
8075
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->reserved));
16!
8076
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
16!
8077
  ENCODESQL();
24!
8078
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->db));
16!
8079

8080
  tEndEncode(&encoder);
8✔
8081

8082
_exit:
8✔
8083
  if (code) {
8!
8084
    tlen = code;
×
8085
  } else {
8086
    tlen = encoder.pos;
8✔
8087
  }
8088
  tEncoderClear(&encoder);
8✔
8089
  return tlen;
8✔
8090
}
8091

8092
int32_t tDeserializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) {
2✔
8093
  SDecoder decoder = {0};
2✔
8094
  int32_t  code = 0;
2✔
8095
  int32_t  lino;
8096
  tDecoderInit(&decoder, buf, bufLen);
2✔
8097

8098
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8099
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->reserved));
4!
8100
  if (!tDecodeIsEnd(&decoder)) {
2!
8101
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
4!
8102
  }
8103
  DECODESQL();
6!
8104
  if (!tDecodeIsEnd(&decoder)) {
2!
8105
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->db));
2!
8106
  }
8107

8108
  tEndDecode(&decoder);
2✔
8109

8110
_exit:
2✔
8111
  tDecoderClear(&decoder);
2✔
8112
  return code;
2✔
8113
}
8114

8115
void tFreeSBalanceVgroupLeaderReq(SBalanceVgroupLeaderReq *pReq) { FREESQL(); }
6!
8116

8117
int32_t tSerializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
8✔
8118
  SEncoder encoder = {0};
8✔
8119
  int32_t  code = 0;
8✔
8120
  int32_t  lino;
8121
  int32_t  tlen;
8122
  tEncoderInit(&encoder, buf, bufLen);
8✔
8123

8124
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
8125
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId1));
16!
8126
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId2));
16!
8127
  tEndEncode(&encoder);
8✔
8128

8129
_exit:
8✔
8130
  if (code) {
8!
8131
    tlen = code;
×
8132
  } else {
8133
    tlen = encoder.pos;
8✔
8134
  }
8135
  tEncoderClear(&encoder);
8✔
8136
  return tlen;
8✔
8137
}
8138

8139
int32_t tDeserializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) {
2✔
8140
  SDecoder decoder = {0};
2✔
8141
  int32_t  code = 0;
2✔
8142
  int32_t  lino;
8143
  tDecoderInit(&decoder, buf, bufLen);
2✔
8144

8145
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8146
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId1));
4!
8147
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId2));
4!
8148
  tEndDecode(&decoder);
2✔
8149

8150
_exit:
2✔
8151
  tDecoderClear(&decoder);
2✔
8152
  return code;
2✔
8153
}
8154

8155
int32_t tSerializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
16✔
8156
  SEncoder encoder = {0};
16✔
8157
  int32_t  code = 0;
16✔
8158
  int32_t  lino;
8159
  int32_t  tlen;
8160
  tEncoderInit(&encoder, buf, bufLen);
16✔
8161

8162
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
8163
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
32!
8164
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId1));
32!
8165
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId2));
32!
8166
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId3));
32!
8167
  ENCODESQL();
48!
8168
  tEndEncode(&encoder);
16✔
8169

8170
_exit:
16✔
8171
  if (code) {
16!
8172
    tlen = code;
×
8173
  } else {
8174
    tlen = encoder.pos;
16✔
8175
  }
8176
  tEncoderClear(&encoder);
16✔
8177
  return tlen;
16✔
8178
}
8179

8180
int32_t tDeserializeSRedistributeVgroupReq(void *buf, int32_t bufLen, SRedistributeVgroupReq *pReq) {
4✔
8181
  SDecoder decoder = {0};
4✔
8182
  int32_t  code = 0;
4✔
8183
  int32_t  lino;
8184
  tDecoderInit(&decoder, buf, bufLen);
4✔
8185

8186
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
8187
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
8!
8188
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId1));
8!
8189
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId2));
8!
8190
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId3));
8!
8191
  DECODESQL();
12!
8192
  tEndDecode(&decoder);
4✔
8193

8194
_exit:
4✔
8195
  tDecoderClear(&decoder);
4✔
8196
  return code;
4✔
8197
}
8198

8199
void tFreeSRedistributeVgroupReq(SRedistributeVgroupReq *pReq) { FREESQL(); }
12!
8200

8201
int32_t tSerializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
8✔
8202
  SEncoder encoder = {0};
8✔
8203
  int32_t  code = 0;
8✔
8204
  int32_t  lino;
8205
  int32_t  tlen;
8206
  tEncoderInit(&encoder, buf, bufLen);
8✔
8207

8208
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
8!
8209
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
16!
8210
  tEndEncode(&encoder);
8✔
8211

8212
_exit:
8✔
8213
  if (code) {
8!
8214
    tlen = code;
×
8215
  } else {
8216
    tlen = encoder.pos;
8✔
8217
  }
8218
  tEncoderClear(&encoder);
8✔
8219
  return tlen;
8✔
8220
}
8221

8222
int32_t tDeserializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq *pReq) {
2✔
8223
  SDecoder decoder = {0};
2✔
8224
  int32_t  code = 0;
2✔
8225
  int32_t  lino;
8226
  tDecoderInit(&decoder, buf, bufLen);
2✔
8227

8228
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
2!
8229
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->vgId));
4!
8230
  tEndDecode(&decoder);
2✔
8231

8232
_exit:
2✔
8233
  tDecoderClear(&decoder);
2✔
8234
  return code;
2✔
8235
}
8236

8237
int32_t tSerializeSForceBecomeFollowerReq(void *buf, int32_t bufLen, SForceBecomeFollowerReq *pReq) {
×
8238
  SEncoder encoder = {0};
×
8239
  int32_t  code = 0;
×
8240
  int32_t  lino;
8241
  int32_t  tlen;
8242
  tEncoderInit(&encoder, buf, bufLen);
×
8243

8244
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8245
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->vgId));
×
8246
  tEndEncode(&encoder);
×
8247

8248
_exit:
×
8249
  if (code) {
×
8250
    tlen = code;
×
8251
  } else {
8252
    tlen = encoder.pos;
×
8253
  }
8254
  tEncoderClear(&encoder);
×
8255
  return tlen;
×
8256
}
8257

8258
int32_t tSerializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
×
8259
  SEncoder encoder = {0};
×
8260
  int32_t  code = 0;
×
8261
  int32_t  lino;
8262
  int32_t  tlen;
8263
  tEncoderInit(&encoder, buf, bufLen);
×
8264

8265
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8266
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->replica));
×
8267
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
×
8268
    SReplica *pReplica = &pReq->replicas[i];
×
8269
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
×
8270
  }
8271
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->learnerReplica));
×
8272
  for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
×
8273
    SReplica *pReplica = &pReq->learnerReplicas[i];
×
8274
    TAOS_CHECK_EXIT(tEncodeSReplica(&encoder, pReplica));
×
8275
  }
8276
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastIndex));
×
8277
  tEndEncode(&encoder);
×
8278

8279
_exit:
×
8280
  if (code) {
×
8281
    tlen = code;
×
8282
  } else {
8283
    tlen = encoder.pos;
×
8284
  }
8285
  tEncoderClear(&encoder);
×
8286
  return tlen;
×
8287
}
8288

8289
int32_t tDeserializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) {
×
8290
  SDecoder decoder = {0};
×
8291
  int32_t  code = 0;
×
8292
  int32_t  lino;
8293
  tDecoderInit(&decoder, buf, bufLen);
×
8294

8295
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8296
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->replica));
×
8297
  for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) {
×
8298
    SReplica *pReplica = &pReq->replicas[i];
×
8299
    TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
×
8300
  }
8301
  if (!tDecodeIsEnd(&decoder)) {
×
8302
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->learnerReplica));
×
8303
    for (int32_t i = 0; i < TSDB_MAX_LEARNER_REPLICA; ++i) {
×
8304
      SReplica *pReplica = &pReq->learnerReplicas[i];
×
8305
      TAOS_CHECK_EXIT(tDecodeSReplica(&decoder, pReplica));
×
8306
    }
8307
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastIndex));
×
8308
  }
8309
  tEndDecode(&decoder);
×
8310

8311
_exit:
×
8312
  tDecoderClear(&decoder);
×
8313
  return code;
×
8314
}
8315

8316
int32_t tSerializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
×
8317
  SEncoder encoder = {0};
×
8318
  int32_t  code = 0;
×
8319
  int32_t  lino;
8320
  int32_t  tlen;
8321
  tEncoderInit(&encoder, buf, bufLen);
×
8322

8323
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8324
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId));
×
8325
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
×
8326
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
×
8327

8328
  int32_t size = taosArrayGetSize(pReq->hbMembers);
×
8329
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
×
8330
  for (int32_t i = 0; i < size; i++) {
×
8331
    SVArbHbReqMember *pMember = taosArrayGet(pReq->hbMembers, i);
×
8332
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
×
8333
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
×
8334
  }
8335

8336
  tEndEncode(&encoder);
×
8337

8338
_exit:
×
8339
  if (code) {
×
8340
    tlen = code;
×
8341
  } else {
8342
    tlen = encoder.pos;
×
8343
  }
8344
  tEncoderClear(&encoder);
×
8345
  return tlen;
×
8346
}
8347

8348
int32_t tDeserializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatReq *pReq) {
×
8349
  SDecoder decoder = {0};
×
8350
  int32_t  code = 0;
×
8351
  int32_t  lino;
8352
  tDecoderInit(&decoder, buf, bufLen);
×
8353

8354
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8355
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId));
×
8356
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8357
    TAOS_CHECK_EXIT(terrno);
×
8358
  }
8359
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
×
8360
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
×
8361

8362
  if ((pReq->hbMembers = taosArrayInit(16, sizeof(SVArbHbReqMember))) == NULL) {
×
8363
    TAOS_CHECK_EXIT(terrno);
×
8364
  }
8365
  int32_t size = 0;
×
8366
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
×
8367
  for (int32_t i = 0; i < size; i++) {
×
8368
    SVArbHbReqMember member = {0};
×
8369
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.vgId));
×
8370
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &member.hbSeq));
×
8371
    if (taosArrayPush(pReq->hbMembers, &member) == NULL) {
×
8372
      TAOS_CHECK_EXIT(terrno);
×
8373
    }
8374
  }
8375

8376
  tEndDecode(&decoder);
×
8377

8378
_exit:
×
8379
  tDecoderClear(&decoder);
×
8380
  return code;
×
8381
}
8382

8383
void tFreeSVArbHeartBeatReq(SVArbHeartBeatReq *pReq) {
×
8384
  if (!pReq) return;
×
8385
  taosMemoryFree(pReq->arbToken);
×
8386
  taosArrayDestroy(pReq->hbMembers);
×
8387
}
8388

8389
int32_t tSerializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
×
8390
  SEncoder encoder = {0};
×
8391
  int32_t  code = 0;
×
8392
  int32_t  lino;
8393
  int32_t  tlen;
8394
  tEncoderInit(&encoder, buf, bufLen);
×
8395

8396
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8397
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
×
8398
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->dnodeId));
×
8399
  int32_t sz = taosArrayGetSize(pRsp->hbMembers);
×
8400
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
×
8401
  for (int32_t i = 0; i < sz; i++) {
×
8402
    SVArbHbRspMember *pMember = taosArrayGet(pRsp->hbMembers, i);
×
8403
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->vgId));
×
8404
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMember->hbSeq));
×
8405
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pMember->memberToken));
×
8406
  }
8407
  tEndEncode(&encoder);
×
8408

8409
_exit:
×
8410
  if (code) {
×
8411
    tlen = code;
×
8412
  } else {
8413
    tlen = encoder.pos;
×
8414
  }
8415
  tEncoderClear(&encoder);
×
8416
  return tlen;
×
8417
}
8418

8419
int32_t tDeserializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatRsp *pRsp) {
×
8420
  SDecoder decoder = {0};
×
8421
  int32_t  code = 0;
×
8422
  int32_t  lino;
8423
  tDecoderInit(&decoder, buf, bufLen);
×
8424

8425
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8426
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
×
8427
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->dnodeId));
×
8428
  int32_t sz = 0;
×
8429
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
×
8430
  if ((pRsp->hbMembers = taosArrayInit(sz, sizeof(SVArbHbRspMember))) == NULL) {
×
8431
    TAOS_CHECK_EXIT(terrno);
×
8432
  }
8433
  for (int32_t i = 0; i < sz; i++) {
×
8434
    SVArbHbRspMember hbMember = {0};
×
8435
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.vgId));
×
8436
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &hbMember.hbSeq));
×
8437
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, hbMember.memberToken));
×
8438
    if (taosArrayPush(pRsp->hbMembers, &hbMember) == NULL) {
×
8439
      TAOS_CHECK_EXIT(terrno);
×
8440
    }
8441
  }
8442
  tEndDecode(&decoder);
×
8443

8444
_exit:
×
8445
  tDecoderClear(&decoder);
×
8446
  return code;
×
8447
}
8448

8449
void tFreeSVArbHeartBeatRsp(SVArbHeartBeatRsp *pRsp) {
×
8450
  if (NULL == pRsp) {
×
8451
    return;
×
8452
  }
8453
  taosArrayDestroy(pRsp->hbMembers);
×
8454
}
8455

8456
int32_t tSerializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
×
8457
  SEncoder encoder = {0};
×
8458
  int32_t  code = 0;
×
8459
  int32_t  lino;
8460
  int32_t  tlen;
8461
  tEncoderInit(&encoder, buf, bufLen);
×
8462

8463
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8464
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
×
8465
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
×
8466
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member0Token));
×
8467
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->member1Token));
×
8468

8469
  tEndEncode(&encoder);
×
8470

8471
_exit:
×
8472
  if (code) {
×
8473
    tlen = code;
×
8474
  } else {
8475
    tlen = encoder.pos;
×
8476
  }
8477
  tEncoderClear(&encoder);
×
8478
  return tlen;
×
8479
}
8480

8481
int32_t tDeserializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncReq *pReq) {
×
8482
  SDecoder decoder = {0};
×
8483
  int32_t  code = 0;
×
8484
  int32_t  lino;
8485
  tDecoderInit(&decoder, buf, bufLen);
×
8486

8487
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8488
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8489
    TAOS_CHECK_EXIT(terrno);
×
8490
  }
8491
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
×
8492
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
×
8493
  if ((pReq->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8494
    TAOS_CHECK_EXIT(terrno);
×
8495
  }
8496
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member0Token));
×
8497
  if ((pReq->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8498
    TAOS_CHECK_EXIT(terrno);
×
8499
  }
8500
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->member1Token));
×
8501

8502
  tEndDecode(&decoder);
×
8503

8504
_exit:
×
8505
  tDecoderClear(&decoder);
×
8506
  return code;
×
8507
}
8508

8509
void tFreeSVArbCheckSyncReq(SVArbCheckSyncReq *pRsp) {
×
8510
  if (NULL == pRsp) {
×
8511
    return;
×
8512
  }
8513
  taosMemoryFreeClear(pRsp->arbToken);
×
8514
  taosMemoryFreeClear(pRsp->member0Token);
×
8515
  taosMemoryFreeClear(pRsp->member1Token);
×
8516
}
8517

8518
int32_t tSerializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
×
8519
  SEncoder encoder = {0};
×
8520
  int32_t  code = 0;
×
8521
  int32_t  lino;
8522
  int32_t  tlen;
8523
  tEncoderInit(&encoder, buf, bufLen);
×
8524

8525
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8526
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
×
8527
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member0Token));
×
8528
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->member1Token));
×
8529
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
×
8530
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->errCode));
×
8531

8532
  tEndEncode(&encoder);
×
8533

8534
_exit:
×
8535
  if (code) {
×
8536
    tlen = code;
×
8537
  } else {
8538
    tlen = encoder.pos;
×
8539
  }
8540
  tEncoderClear(&encoder);
×
8541
  return tlen;
×
8542
}
8543

8544
int32_t tDeserializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncRsp *pRsp) {
×
8545
  SDecoder decoder = {0};
×
8546
  int32_t  code = 0;
×
8547
  int32_t  lino;
8548
  tDecoderInit(&decoder, buf, bufLen);
×
8549

8550
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8551
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8552
    TAOS_CHECK_EXIT(terrno);
×
8553
  }
8554
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
×
8555
  if ((pRsp->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8556
    TAOS_CHECK_EXIT(terrno);
×
8557
  }
8558
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member0Token));
×
8559
  if ((pRsp->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8560
    TAOS_CHECK_EXIT(terrno);
×
8561
  }
8562
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->member1Token));
×
8563
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
×
8564
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->errCode));
×
8565

8566
  tEndDecode(&decoder);
×
8567

8568
_exit:
×
8569
  tDecoderClear(&decoder);
×
8570
  return code;
×
8571
}
8572

8573
void tFreeSVArbCheckSyncRsp(SVArbCheckSyncRsp *pRsp) {
×
8574
  if (NULL == pRsp) {
×
8575
    return;
×
8576
  }
8577
  taosMemoryFreeClear(pRsp->arbToken);
×
8578
  taosMemoryFreeClear(pRsp->member0Token);
×
8579
  taosMemoryFreeClear(pRsp->member1Token);
×
8580
}
8581

8582
int32_t tSerializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
8583
  SEncoder encoder = {0};
×
8584
  int32_t  code = 0;
×
8585
  int32_t  lino;
8586
  int32_t  tlen;
8587
  tEncoderInit(&encoder, buf, bufLen);
×
8588

8589
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8590
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->arbToken));
×
8591
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->arbTerm));
×
8592
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->memberToken));
×
8593
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->force));
×
8594

8595
  tEndEncode(&encoder);
×
8596

8597
_exit:
×
8598
  if (code) {
×
8599
    tlen = code;
×
8600
  } else {
8601
    tlen = encoder.pos;
×
8602
  }
8603
  tEncoderClear(&encoder);
×
8604
  return tlen;
×
8605
}
8606

8607
int32_t tDeserializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSetAssignedLeaderReq *pReq) {
×
8608
  SDecoder decoder = {0};
×
8609
  int32_t  code = 0;
×
8610
  int32_t  lino;
8611
  tDecoderInit(&decoder, buf, bufLen);
×
8612

8613
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8614
  if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8615
    TAOS_CHECK_EXIT(terrno);
×
8616
  }
8617
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->arbToken));
×
8618
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->arbTerm));
×
8619
  if ((pReq->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8620
    TAOS_CHECK_EXIT(terrno);
×
8621
  }
8622
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->memberToken));
×
8623
  if (!tDecodeIsEnd(&decoder)) {
×
8624
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->force));
×
8625
  }
8626

8627
  tEndDecode(&decoder);
×
8628

8629
_exit:
×
8630
  tDecoderClear(&decoder);
×
8631
  return code;
×
8632
}
8633

8634
void tFreeSVArbSetAssignedLeaderReq(SVArbSetAssignedLeaderReq *pReq) {
×
8635
  if (NULL == pReq) {
×
8636
    return;
×
8637
  }
8638
  taosMemoryFreeClear(pReq->arbToken);
×
8639
  taosMemoryFreeClear(pReq->memberToken);
×
8640
}
8641

8642
int32_t tSerializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
8643
  SEncoder encoder = {0};
×
8644
  int32_t  code = 0;
×
8645
  int32_t  lino;
8646
  int32_t  tlen;
8647
  tEncoderInit(&encoder, buf, bufLen);
×
8648

8649
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8650
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->arbToken));
×
8651
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->memberToken));
×
8652
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->vgId));
×
8653

8654
  tEndEncode(&encoder);
×
8655

8656
_exit:
×
8657
  if (code) {
×
8658
    tlen = code;
×
8659
  } else {
8660
    tlen = encoder.pos;
×
8661
  }
8662
  tEncoderClear(&encoder);
×
8663
  return tlen;
×
8664
}
8665

8666
int32_t tDeserializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSetAssignedLeaderRsp *pRsp) {
×
8667
  SDecoder decoder = {0};
×
8668
  int32_t  code = 0;
×
8669
  int32_t  lino;
8670
  tDecoderInit(&decoder, buf, bufLen);
×
8671

8672
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8673
  if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8674
    TAOS_CHECK_EXIT(terrno);
×
8675
  }
8676
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->arbToken));
×
8677
  if ((pRsp->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8678
    TAOS_CHECK_EXIT(terrno);
×
8679
  }
8680
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->memberToken));
×
8681
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->vgId));
×
8682

8683
  tEndDecode(&decoder);
×
8684

8685
_exit:
×
8686
  tDecoderClear(&decoder);
×
8687
  return code;
×
8688
}
8689

8690
void tFreeSVArbSetAssignedLeaderRsp(SVArbSetAssignedLeaderRsp *pRsp) {
×
8691
  if (NULL == pRsp) {
×
8692
    return;
×
8693
  }
8694
  taosMemoryFreeClear(pRsp->arbToken);
×
8695
  taosMemoryFreeClear(pRsp->memberToken);
×
8696
}
8697

8698
int32_t tSerializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
×
8699
  SEncoder encoder = {0};
×
8700
  int32_t  code = 0;
×
8701
  int32_t  lino;
8702
  int32_t  tlen;
8703
  tEncoderInit(&encoder, buf, bufLen);
×
8704

8705
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8706

8707
  int32_t sz = taosArrayGetSize(pReq->updateArray);
×
8708
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
×
8709

8710
  for (int32_t i = 0; i < sz; i++) {
×
8711
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
×
8712
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->vgId));
×
8713
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->dbUid));
×
8714
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
×
8715
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->members[j].dnodeId));
×
8716
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->members[j].token));
×
8717
    }
8718
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->isSync));
×
8719
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->assignedLeader.dnodeId));
×
8720
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pGroup->assignedLeader.token));
×
8721
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->version));
×
8722
  }
8723

8724
  for (int32_t i = 0; i < sz; i++) {
×
8725
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
×
8726
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pGroup->assignedLeader.acked));
×
8727
  }
8728

8729
  for (int32_t i = 0; i < sz; i++) {
×
8730
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
×
8731
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pGroup->code));
×
8732
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, pGroup->updateTimeMs));
×
8733
  }
8734

8735
  tEndEncode(&encoder);
×
8736

8737
_exit:
×
8738
  if (code) {
×
8739
    tlen = code;
×
8740
  } else {
8741
    tlen = encoder.pos;
×
8742
  }
8743
  tEncoderClear(&encoder);
×
8744
  return tlen;
×
8745
}
8746

8747
int32_t tDeserializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpdateGroupBatchReq *pReq) {
×
8748
  SDecoder decoder = {0};
×
8749
  int32_t  code = 0;
×
8750
  int32_t  lino;
8751
  tDecoderInit(&decoder, buf, bufLen);
×
8752

8753
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8754
  int32_t sz = 0;
×
8755
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
×
8756

8757
  SArray *updateArray = taosArrayInit(sz, sizeof(SMArbUpdateGroup));
×
8758
  if (!updateArray) {
×
8759
    TAOS_CHECK_EXIT(terrno);
×
8760
  }
8761

8762
  for (int32_t i = 0; i < sz; i++) {
×
8763
    SMArbUpdateGroup group = {0};
×
8764
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.vgId));
×
8765
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.dbUid));
×
8766
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
×
8767
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.members[j].dnodeId));
×
8768
      if ((group.members[j].token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8769
        TAOS_CHECK_EXIT(terrno);
×
8770
      }
8771
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.members[j].token));
×
8772
    }
8773
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &group.isSync));
×
8774
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &group.assignedLeader.dnodeId));
×
8775
    if ((group.assignedLeader.token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) {
×
8776
      TAOS_CHECK_EXIT(terrno);
×
8777
    }
8778
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, group.assignedLeader.token));
×
8779
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &group.version));
×
8780
    group.assignedLeader.acked = false;
×
8781

8782
    if (taosArrayPush(updateArray, &group) == NULL) {
×
8783
      TAOS_CHECK_EXIT(terrno);
×
8784
    }
8785
  }
8786

8787
  if (!tDecodeIsEnd(&decoder)) {
×
8788
    for (int32_t i = 0; i < sz; i++) {
×
8789
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
×
8790
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pGroup->assignedLeader.acked));
×
8791
    }
8792
  }
8793

8794
  if (!tDecodeIsEnd(&decoder)) {
×
8795
    for (int32_t i = 0; i < sz; i++) {
×
8796
      SMArbUpdateGroup *pGroup = taosArrayGet(updateArray, i);
×
8797
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pGroup->code));
×
8798
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pGroup->updateTimeMs));
×
8799
    }
8800
  }
8801

8802
  pReq->updateArray = updateArray;
×
8803

8804
  tEndDecode(&decoder);
×
8805

8806
_exit:
×
8807
  tDecoderClear(&decoder);
×
8808
  return code;
×
8809
}
8810

8811
void tFreeSMArbUpdateGroupBatchReq(SMArbUpdateGroupBatchReq *pReq) {
×
8812
  if (NULL == pReq || NULL == pReq->updateArray) {
×
8813
    return;
×
8814
  }
8815

8816
  int32_t sz = taosArrayGetSize(pReq->updateArray);
×
8817
  for (int32_t i = 0; i < sz; i++) {
×
8818
    SMArbUpdateGroup *pGroup = taosArrayGet(pReq->updateArray, i);
×
8819
    for (int j = 0; j < TSDB_ARB_GROUP_MEMBER_NUM; j++) {
×
8820
      taosMemoryFreeClear(pGroup->members[j].token);
×
8821
    }
8822
    taosMemoryFreeClear(pGroup->assignedLeader.token);
×
8823
  }
8824
  taosArrayDestroy(pReq->updateArray);
×
8825
}
8826

8827
int32_t tSerializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
×
8828
  SEncoder encoder = {0};
×
8829
  int32_t  code = 0;
×
8830
  int32_t  lino;
8831
  int32_t  tlen;
8832
  tEncoderInit(&encoder, buf, bufLen);
×
8833

8834
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8835
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->statusCode));
×
8836
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->details));
×
8837

8838
  tEndEncode(&encoder);
×
8839

8840
_exit:
×
8841
  if (code) {
×
8842
    tlen = code;
×
8843
  } else {
8844
    tlen = encoder.pos;
×
8845
  }
8846
  tEncoderClear(&encoder);
×
8847
  return tlen;
×
8848
}
8849

8850
int32_t tDeserializeSServerStatusRsp(void *buf, int32_t bufLen, SServerStatusRsp *pRsp) {
×
8851
  SDecoder decoder = {0};
×
8852
  int32_t  code = 0;
×
8853
  int32_t  lino;
8854
  tDecoderInit(&decoder, buf, bufLen);
×
8855

8856
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8857
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->statusCode));
×
8858
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->details));
×
8859

8860
  tEndDecode(&decoder);
×
8861
_exit:
×
8862
  tDecoderClear(&decoder);
×
8863
  return code;
×
8864
}
8865

8866
int32_t tSerializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
×
8867
  SEncoder encoder = {0};
×
8868
  int32_t  code = 0;
×
8869
  int32_t  lino;
8870
  int32_t  tlen;
8871
  tEncoderInit(&encoder, buf, bufLen);
×
8872

8873
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
8874
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->numOfPlans));
×
8875
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
×
8876
    SExplainExecInfo *info = &pRsp->subplanInfo[i];
×
8877
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->startupCost));
×
8878
    TAOS_CHECK_EXIT(tEncodeDouble(&encoder, info->totalCost));
×
8879
    TAOS_CHECK_EXIT(tEncodeU64(&encoder, info->numOfRows));
×
8880
    TAOS_CHECK_EXIT(tEncodeU32(&encoder, info->verboseLen));
×
8881
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, info->verboseInfo, info->verboseLen));
×
8882
  }
8883

8884
  tEndEncode(&encoder);
×
8885

8886
_exit:
×
8887
  if (code) {
×
8888
    tlen = code;
×
8889
  } else {
8890
    tlen = encoder.pos;
×
8891
  }
8892
  tEncoderClear(&encoder);
×
8893
  return tlen;
×
8894
}
8895

8896
int32_t tDeserializeSExplainRsp(void *buf, int32_t bufLen, SExplainRsp *pRsp) {
10✔
8897
  SDecoder decoder = {0};
10✔
8898
  int32_t  code = 0;
10✔
8899
  int32_t  lino;
8900
  tDecoderInit(&decoder, buf, bufLen);
10✔
8901

8902
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
10!
8903
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->numOfPlans));
×
8904
  if (pRsp->numOfPlans > 0) {
×
8905
    pRsp->subplanInfo = taosMemoryCalloc(pRsp->numOfPlans, sizeof(SExplainExecInfo));
×
8906
    if (pRsp->subplanInfo == NULL) {
×
8907
      TAOS_CHECK_EXIT(terrno);
×
8908
    }
8909
  }
8910
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
×
8911
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].startupCost));
×
8912
    TAOS_CHECK_EXIT(tDecodeDouble(&decoder, &pRsp->subplanInfo[i].totalCost));
×
8913
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pRsp->subplanInfo[i].numOfRows));
×
8914
    TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pRsp->subplanInfo[i].verboseLen));
×
8915
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &pRsp->subplanInfo[i].verboseInfo, NULL));
×
8916
  }
8917

8918
  tEndDecode(&decoder);
×
8919

8920
_exit:
10✔
8921
  tDecoderClear(&decoder);
10✔
8922
  return code;
10✔
8923
}
8924

8925
void tFreeSExplainRsp(SExplainRsp *pRsp) {
10✔
8926
  if (NULL == pRsp) {
10!
8927
    return;
×
8928
  }
8929

8930
  for (int32_t i = 0; i < pRsp->numOfPlans; ++i) {
10!
8931
    SExplainExecInfo *pExec = pRsp->subplanInfo + i;
×
8932
    taosMemoryFree(pExec->verboseInfo);
×
8933
  }
8934

8935
  taosMemoryFreeClear(pRsp->subplanInfo);
10!
8936
}
8937

8938
int32_t tSerializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
186✔
8939
  int32_t code = 0;
186✔
8940
  int32_t lino;
8941
  int32_t headLen = sizeof(SMsgHead);
186✔
8942
  if (buf != NULL) {
186✔
8943
    buf = (char *)buf + headLen;
93✔
8944
    bufLen -= headLen;
93✔
8945
  }
8946

8947
  SEncoder encoder = {0};
186✔
8948
  tEncoderInit(&encoder, buf, bufLen);
186✔
8949
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
186!
8950

8951
  int32_t num = taosArrayGetSize(pReq->pMsgs);
186✔
8952
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
186!
8953
  for (int32_t i = 0; i < num; ++i) {
462✔
8954
    SBatchMsg *pMsg = taosArrayGet(pReq->pMsgs, i);
276✔
8955
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
552!
8956
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgType));
552!
8957
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
552!
8958
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
552!
8959
  }
8960

8961
  tEndEncode(&encoder);
186✔
8962

8963
_exit:
186✔
8964
  if (code) {
186!
8965
    tEncoderClear(&encoder);
×
8966
    return code;
×
8967
  } else {
8968
    int32_t tlen = encoder.pos;
186✔
8969
    tEncoderClear(&encoder);
186✔
8970

8971
    if (buf != NULL) {
186✔
8972
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
93✔
8973
      pHead->vgId = htonl(pReq->header.vgId);
93✔
8974
      pHead->contLen = htonl(tlen + headLen);
93✔
8975
    }
8976

8977
    return tlen + headLen;
186✔
8978
  }
8979
}
8980

8981
int32_t tDeserializeSBatchReq(void *buf, int32_t bufLen, SBatchReq *pReq) {
×
8982
  int32_t   headLen = sizeof(SMsgHead);
×
8983
  int32_t   code = 0;
×
8984
  int32_t   lino;
8985
  SMsgHead *pHead = buf;
×
8986
  pHead->vgId = pReq->header.vgId;
×
8987
  pHead->contLen = pReq->header.contLen;
×
8988

8989
  SDecoder decoder = {0};
×
8990
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
8991

8992
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
8993

8994
  int32_t num = 0;
×
8995
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
8996
  if (num <= 0) {
×
8997
    pReq->pMsgs = NULL;
×
8998
    tEndDecode(&decoder);
×
8999
    tDecoderClear(&decoder);
×
9000
    return 0;
×
9001
  }
9002

9003
  pReq->pMsgs = taosArrayInit(num, sizeof(SBatchMsg));
×
9004
  if (NULL == pReq->pMsgs) {
×
9005
    TAOS_CHECK_EXIT(terrno);
×
9006
  }
9007
  for (int32_t i = 0; i < num; ++i) {
×
9008
    SBatchMsg msg = {0};
×
9009
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
×
9010
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgType));
×
9011
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
×
9012
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
×
9013
    if (NULL == taosArrayPush(pReq->pMsgs, &msg)) {
×
9014
      TAOS_CHECK_EXIT(terrno);
×
9015
    }
9016
  }
9017

9018
  tEndDecode(&decoder);
×
9019

9020
_exit:
×
9021
  tDecoderClear(&decoder);
×
9022
  return code;
×
9023
}
9024

9025
int32_t tSerializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
×
9026
  SEncoder encoder = {0};
×
9027
  int32_t  code = 0;
×
9028
  int32_t  lino;
9029
  int32_t  tlen;
9030
  tEncoderInit(&encoder, buf, bufLen);
×
9031
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9032

9033
  int32_t num = taosArrayGetSize(pRsp->pRsps);
×
9034
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
9035
  for (int32_t i = 0; i < num; ++i) {
×
9036
    SBatchRspMsg *pMsg = taosArrayGet(pRsp->pRsps, i);
×
9037
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->reqType));
×
9038
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgIdx));
×
9039
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->msgLen));
×
9040
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pMsg->rspCode));
×
9041
    TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pMsg->msg, pMsg->msgLen));
×
9042
  }
9043

9044
  tEndEncode(&encoder);
×
9045

9046
_exit:
×
9047
  if (code) {
×
9048
    tlen = code;
×
9049
  } else {
9050
    tlen = encoder.pos;
×
9051
  }
9052
  tEncoderClear(&encoder);
×
9053
  return tlen;
×
9054
}
9055

9056
int32_t tDeserializeSBatchRsp(void *buf, int32_t bufLen, SBatchRsp *pRsp) {
93✔
9057
  SDecoder decoder = {0};
93✔
9058
  int32_t  code = 0;
93✔
9059
  int32_t  lino;
9060
  tDecoderInit(&decoder, (char *)buf, bufLen);
93✔
9061

9062
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
93!
9063

9064
  int32_t num = 0;
93✔
9065
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
93!
9066
  if (num <= 0) {
93!
9067
    pRsp->pRsps = NULL;
×
9068
    tEndDecode(&decoder);
×
9069

9070
    tDecoderClear(&decoder);
×
9071
    return 0;
×
9072
  }
9073

9074
  pRsp->pRsps = taosArrayInit(num, sizeof(SBatchRspMsg));
93✔
9075
  if (NULL == pRsp->pRsps) {
93!
9076
    TAOS_CHECK_EXIT(terrno);
×
9077
  }
9078
  for (int32_t i = 0; i < num; ++i) {
231✔
9079
    SBatchRspMsg msg = {0};
138✔
9080
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.reqType));
138!
9081
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgIdx));
138!
9082
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.msgLen));
138!
9083
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &msg.rspCode));
138!
9084
    TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, &msg.msg, NULL));
138!
9085
    if (NULL == taosArrayPush(pRsp->pRsps, &msg)) {
276!
9086
      TAOS_CHECK_EXIT(terrno);
×
9087
    }
9088
  }
9089

9090
  tEndDecode(&decoder);
93✔
9091

9092
_exit:
93✔
9093
  tDecoderClear(&decoder);
93✔
9094
  return code;
93✔
9095
}
9096

9097
int32_t tSerializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
×
9098
  SEncoder encoder = {0};
×
9099
  int32_t  code = 0;
×
9100
  int32_t  lino;
9101
  int32_t  tlen;
9102
  tEncoderInit(&encoder, buf, bufLen);
×
9103

9104
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9105
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
×
9106
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
×
9107
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->cgroup));
×
9108

9109
  tEndEncode(&encoder);
×
9110

9111
_exit:
×
9112
  if (code) {
×
9113
    tlen = code;
×
9114
  } else {
9115
    tlen = encoder.pos;
×
9116
  }
9117
  tEncoderClear(&encoder);
×
9118
  return tlen;
×
9119
}
9120

9121
int32_t tDeserializeSMqAskEpReq(void *buf, int32_t bufLen, SMqAskEpReq *pReq) {
×
9122
  SDecoder decoder = {0};
×
9123
  int32_t  code = 0;
×
9124
  int32_t  lino;
9125
  tDecoderInit(&decoder, (char *)buf, bufLen);
×
9126

9127
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9128

9129
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
×
9130
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
×
9131
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->cgroup));
×
9132

9133
  tEndDecode(&decoder);
×
9134

9135
_exit:
×
9136
  tDecoderClear(&decoder);
×
9137
  return code;
×
9138
}
9139

9140
void tDestroySMqHbRsp(SMqHbRsp *pRsp) { taosArrayDestroy(pRsp->topicPrivileges); }
×
9141

9142
int32_t tSerializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
×
9143
  SEncoder encoder = {0};
×
9144
  int32_t  code = 0;
×
9145
  int32_t  lino;
9146
  int32_t  tlen;
9147
  tEncoderInit(&encoder, buf, bufLen);
×
9148
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9149

9150
  int32_t sz = taosArrayGetSize(pRsp->topicPrivileges);
×
9151
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
×
9152
  for (int32_t i = 0; i < sz; ++i) {
×
9153
    STopicPrivilege *privilege = (STopicPrivilege *)taosArrayGet(pRsp->topicPrivileges, i);
×
9154
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, privilege->topic));
×
9155
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, privilege->noPrivilege));
×
9156
  }
9157

9158
  if (tEncodeI32(&encoder, pRsp->debugFlag) < 0) return -1;
×
9159
  tEndEncode(&encoder);
×
9160

9161
_exit:
×
9162
  if (code) {
×
9163
    tlen = code;
×
9164
  } else {
9165
    tlen = encoder.pos;
×
9166
  }
9167
  tEncoderClear(&encoder);
×
9168
  return tlen;
×
9169
}
9170

9171
int32_t tDeserializeSMqHbRsp(void *buf, int32_t bufLen, SMqHbRsp *pRsp) {
×
9172
  SDecoder decoder = {0};
×
9173
  int32_t  code = 0;
×
9174
  int32_t  lino;
9175
  tDecoderInit(&decoder, (char *)buf, bufLen);
×
9176

9177
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9178

9179
  int32_t sz = 0;
×
9180
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
×
9181
  if (sz > 0) {
×
9182
    pRsp->topicPrivileges = taosArrayInit(sz, sizeof(STopicPrivilege));
×
9183
    if (NULL == pRsp->topicPrivileges) {
×
9184
      TAOS_CHECK_EXIT(terrno);
×
9185
    }
9186
    for (int32_t i = 0; i < sz; ++i) {
×
9187
      STopicPrivilege *data = taosArrayReserve(pRsp->topicPrivileges, 1);
×
9188
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topic));
×
9189
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &data->noPrivilege));
×
9190
    }
9191
  }
9192

9193
  if (!tDecodeIsEnd(&decoder)) {
×
9194
    if (tDecodeI32(&decoder, &pRsp->debugFlag) < 0) return -1;
×
9195
  }
9196
  tEndDecode(&decoder);
×
9197

9198
_exit:
×
9199
  tDecoderClear(&decoder);
×
9200
  return code;
×
9201
}
9202

9203
void tDestroySMqHbReq(SMqHbReq *pReq) {
×
9204
  for (int i = 0; i < taosArrayGetSize(pReq->topics); i++) {
×
9205
    TopicOffsetRows *vgs = taosArrayGet(pReq->topics, i);
×
9206
    if (vgs) taosArrayDestroy(vgs->offsetRows);
×
9207
  }
9208
  taosArrayDestroy(pReq->topics);
×
9209
}
×
9210

9211
int32_t tSerializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
×
9212
  SEncoder encoder = {0};
×
9213
  int32_t  code = 0;
×
9214
  int32_t  lino;
9215
  int32_t  tlen;
9216
  tEncoderInit(&encoder, buf, bufLen);
×
9217
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9218

9219
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
×
9220
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
×
9221

9222
  int32_t sz = taosArrayGetSize(pReq->topics);
×
9223
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sz));
×
9224
  for (int32_t i = 0; i < sz; ++i) {
×
9225
    TopicOffsetRows *vgs = (TopicOffsetRows *)taosArrayGet(pReq->topics, i);
×
9226
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, vgs->topicName));
×
9227
    int32_t szVgs = taosArrayGetSize(vgs->offsetRows);
×
9228
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, szVgs));
×
9229
    for (int32_t j = 0; j < szVgs; ++j) {
×
9230
      OffsetRows *offRows = taosArrayGet(vgs->offsetRows, j);
×
9231
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, offRows->vgId));
×
9232
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->rows));
×
9233
      TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &offRows->offset));
×
9234
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, offRows->ever));
×
9235
    }
9236
  }
9237

9238
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->pollFlag));
×
9239
  tEndEncode(&encoder);
×
9240

9241
_exit:
×
9242
  if (code) {
×
9243
    tlen = code;
×
9244
  } else {
9245
    tlen = encoder.pos;
×
9246
  }
9247
  tEncoderClear(&encoder);
×
9248
  return tlen;
×
9249
}
9250

9251
int32_t tDeserializeSMqHbReq(void *buf, int32_t bufLen, SMqHbReq *pReq) {
×
9252
  int32_t  code = 0;
×
9253
  int32_t  lino;
9254
  SDecoder decoder = {0};
×
9255
  tDecoderInit(&decoder, (char *)buf, bufLen);
×
9256

9257
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9258

9259
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
×
9260
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
×
9261
  int32_t sz = 0;
×
9262
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sz));
×
9263
  if (sz > 0) {
×
9264
    pReq->topics = taosArrayInit(sz, sizeof(TopicOffsetRows));
×
9265
    if (NULL == pReq->topics) {
×
9266
      TAOS_CHECK_EXIT(terrno);
×
9267
    }
9268
    for (int32_t i = 0; i < sz; ++i) {
×
9269
      TopicOffsetRows *data = taosArrayReserve(pReq->topics, 1);
×
9270
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, data->topicName));
×
9271
      int32_t szVgs = 0;
×
9272
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &szVgs));
×
9273
      if (szVgs > 0) {
×
9274
        data->offsetRows = taosArrayInit(szVgs, sizeof(OffsetRows));
×
9275
        if (NULL == data->offsetRows) {
×
9276
          TAOS_CHECK_EXIT(terrno);
×
9277
        }
9278
        for (int32_t j = 0; j < szVgs; ++j) {
×
9279
          OffsetRows *offRows = taosArrayReserve(data->offsetRows, 1);
×
9280
          TAOS_CHECK_EXIT(tDecodeI32(&decoder, &offRows->vgId));
×
9281
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->rows));
×
9282
          TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &offRows->offset));
×
9283
          TAOS_CHECK_EXIT(tDecodeI64(&decoder, &offRows->ever));
×
9284
        }
9285
      }
9286
    }
9287
  }
9288
  if (!tDecodeIsEnd(&decoder)) {
×
9289
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->pollFlag));
×
9290
  }
9291
  tEndDecode(&decoder);
×
9292

9293
_exit:
×
9294
  tDecoderClear(&decoder);
×
9295
  return code;
×
9296
}
9297

9298
int32_t tSerializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
×
9299
  int32_t code = 0;
×
9300
  int32_t lino;
9301
  int32_t headLen = sizeof(SMsgHead);
×
9302
  if (buf != NULL) {
×
9303
    buf = (char *)buf + headLen;
×
9304
    bufLen -= headLen;
×
9305
  }
9306
  SEncoder encoder = {0};
×
9307
  tEncoderInit(&encoder, buf, bufLen);
×
9308
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9309
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
×
9310
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
×
9311
  tEndEncode(&encoder);
×
9312

9313
_exit:
×
9314
  if (code) {
×
9315
    tEncoderClear(&encoder);
×
9316
    return code;
×
9317
  } else {
9318
    int32_t tlen = encoder.pos;
×
9319
    tEncoderClear(&encoder);
×
9320

9321
    if (buf != NULL) {
×
9322
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
×
9323
      pHead->vgId = htonl(pReq->head.vgId);
×
9324
      pHead->contLen = htonl(tlen + headLen);
×
9325
    }
9326

9327
    return tlen + headLen;
×
9328
  }
9329
}
9330

9331
int32_t tDeserializeSMqSeekReq(void *buf, int32_t bufLen, SMqSeekReq *pReq) {
×
9332
  int32_t  code = 0;
×
9333
  int32_t  lino;
9334
  int32_t  headLen = sizeof(SMsgHead);
×
9335
  SDecoder decoder = {0};
×
9336
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
9337

9338
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9339
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
×
9340
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
×
9341

9342
  tEndDecode(&decoder);
×
9343

9344
_exit:
×
9345
  tDecoderClear(&decoder);
×
9346
  return code;
×
9347
}
9348

9349
int32_t tSerializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
772✔
9350
  int32_t code = 0;
772✔
9351
  int32_t lino;
9352
  int32_t headLen = sizeof(SMsgHead);
772✔
9353
  if (buf != NULL) {
772✔
9354
    buf = (char *)buf + headLen;
386✔
9355
    bufLen -= headLen;
386✔
9356
  }
9357

9358
  SEncoder encoder = {0};
772✔
9359
  tEncoderInit(&encoder, buf, bufLen);
772✔
9360
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
772!
9361

9362
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
1,544!
9363
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
1,544!
9364
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
1,544!
9365
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
1,544!
9366
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
1,544!
9367
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->msgMask));
1,544!
9368
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->taskType));
1,544!
9369
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->explain));
1,544!
9370
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->needFetch));
1,544!
9371
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->compress));
1,544!
9372
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
1,544!
9373
  TAOS_CHECK_EXIT(tEncodeCStrWithLen(&encoder, pReq->sql, pReq->sqlLen));
1,544!
9374
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->msgLen));
1,544!
9375
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, (uint8_t *)pReq->msg, pReq->msgLen));
1,544!
9376
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
1,544!
9377

9378
  tEndEncode(&encoder);
772✔
9379

9380
_exit:
772✔
9381
  if (code) {
772!
9382
    tEncoderClear(&encoder);
×
9383
    return code;
×
9384
  } else {
9385
    int32_t tlen = encoder.pos;
772✔
9386
    tEncoderClear(&encoder);
772✔
9387

9388
    if (buf != NULL) {
772✔
9389
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
386✔
9390
      pHead->vgId = htonl(pReq->header.vgId);
386✔
9391
      pHead->contLen = htonl(tlen + headLen);
386✔
9392
    }
9393

9394
    return tlen + headLen;
772✔
9395
  }
9396
}
9397

9398
int32_t tDeserializeSSubQueryMsg(void *buf, int32_t bufLen, SSubQueryMsg *pReq) {
×
9399
  int32_t   code = 0;
×
9400
  int32_t   lino;
9401
  int32_t   headLen = sizeof(SMsgHead);
×
9402
  SMsgHead *pHead = buf;
×
9403
  pHead->vgId = pReq->header.vgId;
×
9404
  pHead->contLen = pReq->header.contLen;
×
9405

9406
  SDecoder decoder = {0};
×
9407
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
9408

9409
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9410

9411
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
×
9412
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
×
9413
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
×
9414
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
×
9415
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
×
9416
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->msgMask));
×
9417
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->taskType));
×
9418
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->explain));
×
9419
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->needFetch));
×
9420
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->compress));
×
9421
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
×
9422
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
×
9423
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->msgLen));
×
9424
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, NULL));
×
9425
  if (!tDecodeIsEnd(&decoder)) {
×
9426
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
×
9427
  } else {
9428
    pReq->clientId = 0;
×
9429
  }
9430

9431
  tEndDecode(&decoder);
×
9432

9433
_exit:
×
9434
  tDecoderClear(&decoder);
×
9435
  return code;
×
9436
}
9437

9438
void tFreeSSubQueryMsg(SSubQueryMsg *pReq) {
×
9439
  if (NULL == pReq) {
×
9440
    return;
×
9441
  }
9442

9443
  taosMemoryFreeClear(pReq->sql);
×
9444
  taosMemoryFreeClear(pReq->msg);
×
9445
}
9446

9447
int32_t tSerializeSOperatorParam(SEncoder *pEncoder, SOperatorParam *pOpParam) {
×
9448
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->opType));
×
9449
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pOpParam->downstreamIdx));
×
9450
  switch (pOpParam->opType) {
×
9451
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
×
9452
      STableScanOperatorParam *pScan = (STableScanOperatorParam *)pOpParam->value;
×
9453
      TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pScan->tableSeq));
×
9454
      int32_t uidNum = taosArrayGetSize(pScan->pUidList);
×
9455
      TAOS_CHECK_RETURN(tEncodeI32(pEncoder, uidNum));
×
9456
      for (int32_t m = 0; m < uidNum; ++m) {
×
9457
        int64_t *pUid = taosArrayGet(pScan->pUidList, m);
×
9458
        TAOS_CHECK_RETURN(tEncodeI64(pEncoder, *pUid));
×
9459
      }
9460
      if (pScan->pOrgTbInfo) {
×
9461
        TAOS_CHECK_RETURN(tEncodeBool(pEncoder, true));
×
9462
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pScan->pOrgTbInfo->vgId));
×
9463
        TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pScan->pOrgTbInfo->tbName));
×
9464
        int32_t num = taosArrayGetSize(pScan->pOrgTbInfo->colMap);
×
9465
        TAOS_CHECK_RETURN(tEncodeI32(pEncoder, num));
×
9466
        for (int32_t i = 0; i < num; ++i) {
×
9467
          SColIdNameKV *pColKV = taosArrayGet(pScan->pOrgTbInfo->colMap, i);
×
9468
          TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pColKV->colId));
×
9469
          TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pColKV->colName));
×
9470
        }
9471
      } else {
9472
        TAOS_CHECK_RETURN(tEncodeBool(pEncoder, false));
×
9473
      }
9474
      TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pScan->window.skey));
×
9475
      TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pScan->window.ekey));
×
9476
      break;
×
9477
    }
9478
    default:
×
9479
      return TSDB_CODE_INVALID_PARA;
×
9480
  }
9481

9482
  int32_t n = taosArrayGetSize(pOpParam->pChildren);
×
9483
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, n));
×
9484
  for (int32_t i = 0; i < n; ++i) {
×
9485
    SOperatorParam *pChild = *(SOperatorParam **)taosArrayGet(pOpParam->pChildren, i);
×
9486
    TAOS_CHECK_RETURN(tSerializeSOperatorParam(pEncoder, pChild));
×
9487
  }
9488

9489
  TAOS_CHECK_RETURN(tEncodeBool(pEncoder, pOpParam->reUse));
×
9490
  return 0;
×
9491
}
9492

9493
int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam *pOpParam) {
×
9494
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->opType));
×
9495
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pOpParam->downstreamIdx));
×
9496
  switch (pOpParam->opType) {
×
9497
    case QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN: {
×
9498
      pOpParam->value = taosMemoryMalloc(sizeof(STableScanOperatorParam));
×
9499
      if (NULL == pOpParam->value) {
×
9500
        TAOS_CHECK_RETURN(terrno);
×
9501
      }
9502
      STableScanOperatorParam *pScan = pOpParam->value;
×
9503
      TAOS_CHECK_RETURN(tDecodeI8(pDecoder, (int8_t *)&pScan->tableSeq));
×
9504
      int32_t uidNum = 0;
×
9505
      int64_t uid = 0;
×
9506
      TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &uidNum));
×
9507
      if (uidNum > 0) {
×
9508
        pScan->pUidList = taosArrayInit(uidNum, sizeof(int64_t));
×
9509
        if (NULL == pScan->pUidList) {
×
9510
          TAOS_CHECK_RETURN(terrno);
×
9511
        }
9512

9513
        for (int32_t m = 0; m < uidNum; ++m) {
×
9514
          TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &uid));
×
9515
          if (taosArrayPush(pScan->pUidList, &uid) == NULL) {
×
9516
            TAOS_CHECK_RETURN(terrno);
×
9517
          }
9518
        }
9519
      } else {
9520
        pScan->pUidList = NULL;
×
9521
      }
9522

9523
      bool hasTbInfo = false;
×
9524
      TAOS_CHECK_RETURN(tDecodeBool(pDecoder, &hasTbInfo));
×
9525
      if (hasTbInfo) {
×
9526
        pScan->pOrgTbInfo = taosMemoryMalloc(sizeof(SOrgTbInfo));
×
9527
        if (NULL == pScan->pOrgTbInfo) {
×
9528
          TAOS_CHECK_RETURN(terrno);
×
9529
        }
9530
        TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pScan->pOrgTbInfo->vgId));
×
9531
        TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pScan->pOrgTbInfo->tbName));
×
9532
        int32_t num = 0;
×
9533
        TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &num));
×
9534
        pScan->pOrgTbInfo->colMap = taosArrayInit(num, sizeof(SColIdNameKV));
×
9535
        for (int32_t i = 0; i < num; ++i) {
×
9536
          SColIdNameKV pColKV;
9537
          TAOS_CHECK_RETURN(tDecodeI16(pDecoder, (int16_t *)&(pColKV.colId)));
×
9538
          TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pColKV.colName));
×
9539
          if (taosArrayPush(pScan->pOrgTbInfo->colMap, &pColKV) == NULL) {
×
9540
            TAOS_CHECK_RETURN(terrno);
×
9541
          }
9542
        }
9543
      } else {
9544
        pScan->pOrgTbInfo = NULL;
×
9545
      }
9546
      TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pScan->window.skey));
×
9547
      TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pScan->window.ekey));
×
9548
      break;
×
9549
    }
9550
    default:
×
9551
      return TSDB_CODE_INVALID_PARA;
×
9552
  }
9553

9554
  int32_t childrenNum = 0;
×
9555
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &childrenNum));
×
9556

9557
  if (childrenNum > 0) {
×
9558
    pOpParam->pChildren = taosArrayInit(childrenNum, POINTER_BYTES);
×
9559
    if (NULL == pOpParam->pChildren) {
×
9560
      TAOS_CHECK_RETURN(terrno);
×
9561
    }
9562
    for (int32_t i = 0; i < childrenNum; ++i) {
×
9563
      SOperatorParam *pChild = taosMemoryCalloc(1, sizeof(SOperatorParam));
×
9564
      if (NULL == pChild) {
×
9565
        TAOS_CHECK_RETURN(terrno);
×
9566
      }
9567
      TAOS_CHECK_RETURN(tDeserializeSOperatorParam(pDecoder, pChild));
×
9568
      if (taosArrayPush(pOpParam->pChildren, &pChild) == NULL) {
×
9569
        TAOS_CHECK_RETURN(terrno);
×
9570
      }
9571
    }
9572
  } else {
9573
    pOpParam->pChildren = NULL;
×
9574
  }
9575

9576
  if (!tDecodeIsEnd(pDecoder)) {
×
9577
    TAOS_CHECK_RETURN(tDecodeBool(pDecoder, &pOpParam->reUse));
×
9578
  } else {
9579
    pOpParam->reUse = false;
×
9580
  }
9581

9582
  return 0;
×
9583
}
9584

9585
int32_t tSerializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
254✔
9586
  int32_t code = 0;
254✔
9587
  int32_t lino;
9588
  int32_t headLen = sizeof(SMsgHead);
254✔
9589
  if (buf != NULL) {
254✔
9590
    buf = (char *)buf + headLen;
127✔
9591
    bufLen -= headLen;
127✔
9592
  }
9593

9594
  SEncoder encoder = {0};
254✔
9595
  tEncoderInit(&encoder, buf, bufLen);
254✔
9596
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
254!
9597

9598
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
508!
9599
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
508!
9600
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
508!
9601
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
508!
9602
  if (pReq->pOpParam) {
254!
9603
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 1));
×
9604
    TAOS_CHECK_EXIT(tSerializeSOperatorParam(&encoder, pReq->pOpParam));
×
9605
  } else {
9606
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
254!
9607
  }
9608
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
508!
9609

9610
  tEndEncode(&encoder);
254✔
9611

9612
_exit:
254✔
9613
  if (code) {
254!
9614
    tEncoderClear(&encoder);
×
9615
    return code;
×
9616
  } else {
9617
    int32_t tlen = encoder.pos;
254✔
9618
    tEncoderClear(&encoder);
254✔
9619

9620
    if (buf != NULL) {
254✔
9621
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
127✔
9622
      pHead->vgId = htonl(pReq->header.vgId);
127✔
9623
      pHead->contLen = htonl(tlen + headLen);
127✔
9624
    }
9625

9626
    return tlen + headLen;
254✔
9627
  }
9628
}
9629

9630
int32_t tDeserializeSResFetchReq(void *buf, int32_t bufLen, SResFetchReq *pReq) {
×
9631
  int32_t code = 0;
×
9632
  int32_t lino;
9633
  int32_t headLen = sizeof(SMsgHead);
×
9634

9635
  SMsgHead *pHead = buf;
×
9636
  pHead->vgId = pReq->header.vgId;
×
9637
  pHead->contLen = pReq->header.contLen;
×
9638

9639
  SDecoder decoder = {0};
×
9640
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
9641

9642
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9643

9644
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
×
9645
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
×
9646
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
×
9647
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
×
9648

9649
  int32_t paramNum = 0;
×
9650
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &paramNum));
×
9651
  if (paramNum > 0) {
×
9652
    pReq->pOpParam = taosMemoryMalloc(sizeof(*pReq->pOpParam));
×
9653
    if (NULL == pReq->pOpParam) {
×
9654
      TAOS_CHECK_EXIT(terrno);
×
9655
    }
9656
    TAOS_CHECK_EXIT(tDeserializeSOperatorParam(&decoder, pReq->pOpParam));
×
9657
  }
9658
  if (!tDecodeIsEnd(&decoder)) {
×
9659
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
×
9660
  } else {
9661
    pReq->clientId = 0;
×
9662
  }
9663

9664
  tEndDecode(&decoder);
×
9665

9666
_exit:
×
9667
  tDecoderClear(&decoder);
×
9668
  return code;
×
9669
}
9670

9671
int32_t tSerializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
×
9672
  int32_t headLen = sizeof(SMsgHead);
×
9673
  int32_t code = 0;
×
9674
  int32_t lino;
9675
  if (buf != NULL) {
×
9676
    buf = (char *)buf + headLen;
×
9677
    bufLen -= headLen;
×
9678
  }
9679

9680
  SEncoder encoder = {0};
×
9681
  tEncoderInit(&encoder, buf, bufLen);
×
9682
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9683

9684
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->subKey));
×
9685
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->withTbName));
×
9686
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->useSnapshot));
×
9687
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epoch));
×
9688
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->reqId));
×
9689
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->consumerId));
×
9690
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->timeout));
×
9691
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(&encoder, &pReq->reqOffset));
×
9692
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableReplay));
×
9693
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->sourceExcluded));
×
9694
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->enableBatchMeta));
×
9695
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->rawData));
×
9696
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->minPollRows));
×
9697

9698
  tEndEncode(&encoder);
×
9699

9700
_exit:
×
9701
  if (code) {
×
9702
    tEncoderClear(&encoder);
×
9703
    return code;
×
9704
  } else {
9705
    int32_t tlen = encoder.pos;
×
9706
    tEncoderClear(&encoder);
×
9707

9708
    if (buf != NULL) {
×
9709
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
×
9710
      pHead->vgId = htonl(pReq->head.vgId);
×
9711
      pHead->contLen = htonl(tlen + headLen);
×
9712
    }
9713

9714
    return tlen + headLen;
×
9715
  }
9716
}
9717

9718
int32_t tDeserializeSMqPollReq(void *buf, int32_t bufLen, SMqPollReq *pReq) {
×
9719
  int32_t  code = 0;
×
9720
  int32_t  lino;
9721
  int32_t  headLen = sizeof(SMsgHead);
×
9722
  SDecoder decoder = {0};
×
9723
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
9724

9725
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9726

9727
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->subKey));
×
9728
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->withTbName));
×
9729
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->useSnapshot));
×
9730
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epoch));
×
9731
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->reqId));
×
9732
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->consumerId));
×
9733
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->timeout));
×
9734
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(&decoder, &pReq->reqOffset));
×
9735

9736
  if (!tDecodeIsEnd(&decoder)) {
×
9737
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableReplay));
×
9738
  }
9739

9740
  if (!tDecodeIsEnd(&decoder)) {
×
9741
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->sourceExcluded));
×
9742
  }
9743

9744
  if (!tDecodeIsEnd(&decoder)) {
×
9745
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->enableBatchMeta));
×
9746
  } else {
9747
    pReq->enableBatchMeta = false;
×
9748
  }
9749

9750
  if (!tDecodeIsEnd(&decoder)) {
×
9751
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->rawData));
×
9752
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->minPollRows));
×
9753
  }
9754

9755
  tEndDecode(&decoder);
×
9756

9757
_exit:
×
9758
  tDecoderClear(&decoder);
×
9759
  return code;
×
9760
}
9761

9762
void    tDestroySMqPollReq(SMqPollReq *pReq) {
×
9763
  tOffsetDestroy(&pReq->reqOffset);
×
9764
  if (pReq->uidHash != NULL) {
×
9765
    taosHashCleanup(pReq->uidHash);
×
9766
    pReq->uidHash = NULL;
×
9767
  }
9768
}
×
9769
int32_t tSerializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
212✔
9770
  int32_t code = 0;
212✔
9771
  int32_t lino;
9772
  int32_t tlen;
9773
  int32_t headLen = sizeof(SMsgHead);
212✔
9774
  if (buf != NULL) {
212✔
9775
    buf = (char *)buf + headLen;
106✔
9776
    bufLen -= headLen;
106✔
9777
  }
9778

9779
  SEncoder encoder = {0};
212✔
9780
  tEncoderInit(&encoder, buf, bufLen);
212✔
9781
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
212!
9782

9783
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
424!
9784
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
424!
9785
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
424!
9786
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
424!
9787
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
424!
9788
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
424!
9789

9790
  tEndEncode(&encoder);
212✔
9791

9792
_exit:
212✔
9793
  if (code) {
212!
9794
    tEncoderClear(&encoder);
×
9795
    return code;
×
9796
  } else {
9797
    tlen = encoder.pos;
212✔
9798
    tEncoderClear(&encoder);
212✔
9799

9800
    if (buf != NULL) {
212✔
9801
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
106✔
9802
      pHead->vgId = htonl(pReq->header.vgId);
106✔
9803
      pHead->contLen = htonl(tlen + headLen);
106✔
9804
    }
9805

9806
    return tlen + headLen;
212✔
9807
  }
9808
}
9809

9810
int32_t tDeserializeSTaskDropReq(void *buf, int32_t bufLen, STaskDropReq *pReq) {
×
9811
  int32_t headLen = sizeof(SMsgHead);
×
9812
  int32_t code = 0;
×
9813
  int32_t lino;
9814

9815
  SMsgHead *pHead = buf;
×
9816
  pHead->vgId = pReq->header.vgId;
×
9817
  pHead->contLen = pReq->header.contLen;
×
9818

9819
  SDecoder decoder = {0};
×
9820
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
9821

9822
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9823

9824
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
×
9825
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
×
9826
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
×
9827
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
×
9828
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
×
9829
  if (!tDecodeIsEnd(&decoder)) {
×
9830
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
×
9831
  } else {
9832
    pReq->clientId = 0;
×
9833
  }
9834

9835
  tEndDecode(&decoder);
×
9836

9837
_exit:
×
9838
  tDecoderClear(&decoder);
×
9839
  return code;
×
9840
}
9841

9842
int32_t tSerializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
×
9843
  int32_t code = 0;
×
9844
  int32_t lino;
9845
  int32_t tlen;
9846
  int32_t headLen = sizeof(SMsgHead);
×
9847
  if (buf != NULL) {
×
9848
    buf = (char *)buf + headLen;
×
9849
    bufLen -= headLen;
×
9850
  }
9851

9852
  SEncoder encoder = {0};
×
9853
  tEncoderInit(&encoder, buf, bufLen);
×
9854
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
9855

9856
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
×
9857
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
×
9858
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
×
9859
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->refId));
×
9860
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->execId));
×
9861
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->type));
×
9862
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
×
9863

9864
  tEndEncode(&encoder);
×
9865

9866
_exit:
×
9867
  if (code) {
×
9868
    tEncoderClear(&encoder);
×
9869
    return code;
×
9870
  } else {
9871
    tlen = encoder.pos;
×
9872
    tEncoderClear(&encoder);
×
9873

9874
    if (buf != NULL) {
×
9875
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
×
9876
      pHead->vgId = htonl(pReq->header.vgId);
×
9877
      pHead->contLen = htonl(tlen + headLen);
×
9878
    }
9879

9880
    return tlen + headLen;
×
9881
  }
9882
}
9883

9884
int32_t tDeserializeSTaskNotifyReq(void *buf, int32_t bufLen, STaskNotifyReq *pReq) {
×
9885
  int32_t headLen = sizeof(SMsgHead);
×
9886
  int32_t code = 0;
×
9887
  int32_t lino;
9888

9889
  SMsgHead *pHead = buf;
×
9890
  pHead->vgId = pReq->header.vgId;
×
9891
  pHead->contLen = pReq->header.contLen;
×
9892

9893
  SDecoder decoder = {0};
×
9894
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
9895

9896
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
9897

9898
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
×
9899
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
×
9900
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
×
9901
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->refId));
×
9902
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->execId));
×
9903
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, (int32_t *)&pReq->type));
×
9904
  if (!tDecodeIsEnd(&decoder)) {
×
9905
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
×
9906
  } else {
9907
    pReq->clientId = 0;
×
9908
  }
9909

9910
  tEndDecode(&decoder);
×
9911

9912
_exit:
×
9913
  tDecoderClear(&decoder);
×
9914
  return code;
×
9915
}
9916

9917
int32_t tSerializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
580✔
9918
  SEncoder encoder = {0};
580✔
9919
  int32_t  code = 0;
580✔
9920
  int32_t  lino;
9921
  int32_t  tlen;
9922
  tEncoderInit(&encoder, buf, bufLen);
580✔
9923
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
580!
9924

9925
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->code));
1,160!
9926
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pRsp->affectedRows));
1,160!
9927
  int32_t tbNum = taosArrayGetSize(pRsp->tbVerInfo);
580✔
9928
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, tbNum));
580!
9929
  if (tbNum > 0) {
580!
9930
    for (int32_t i = 0; i < tbNum; ++i) {
×
9931
      STbVerInfo *pVer = taosArrayGet(pRsp->tbVerInfo, i);
×
9932
      TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pVer->tbFName));
×
9933
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->sversion));
×
9934
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, pVer->tversion));
×
9935
    }
9936
  }
9937

9938
  tEndEncode(&encoder);
580✔
9939

9940
_exit:
580✔
9941
  if (code) {
580!
9942
    tlen = code;
×
9943
  } else {
9944
    tlen = encoder.pos;
580✔
9945
  }
9946
  tEncoderClear(&encoder);
580✔
9947
  return tlen;
580✔
9948
}
9949

9950
int32_t tDeserializeSQueryTableRsp(void *buf, int32_t bufLen, SQueryTableRsp *pRsp) {
384✔
9951
  SDecoder decoder = {0};
384✔
9952
  int32_t  code = 0;
384✔
9953
  int32_t  lino;
9954
  tDecoderInit(&decoder, (char *)buf, bufLen);
384✔
9955

9956
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
384✔
9957

9958
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->code));
748!
9959
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pRsp->affectedRows));
748!
9960
  int32_t tbNum = 0;
374✔
9961
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbNum));
374!
9962
  if (tbNum > 0) {
374✔
9963
    pRsp->tbVerInfo = taosArrayInit(tbNum, sizeof(STbVerInfo));
86✔
9964
    if (NULL == pRsp->tbVerInfo) {
86!
9965
      TAOS_CHECK_EXIT(terrno);
×
9966
    }
9967
    STbVerInfo tbVer;
9968
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, tbVer.tbFName));
86!
9969
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.sversion));
86!
9970
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &tbVer.tversion));
86!
9971
    if (NULL == taosArrayPush(pRsp->tbVerInfo, &tbVer)) {
172!
9972
      TAOS_CHECK_EXIT(terrno);
×
9973
    }
9974
  }
9975

9976
  tEndDecode(&decoder);
374✔
9977

9978
_exit:
384✔
9979
  tDecoderClear(&decoder);
384✔
9980
  return code;
384✔
9981
}
9982

9983
int32_t tSerializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
753✔
9984
  int32_t code = 0;
753✔
9985
  int32_t lino;
9986
  int32_t tlen;
9987
  int32_t headLen = sizeof(SMsgHead);
753✔
9988
  if (buf != NULL) {
753✔
9989
    buf = (char *)buf + headLen;
376✔
9990
    bufLen -= headLen;
376✔
9991
  }
9992

9993
  SEncoder encoder = {0};
753✔
9994
  tEncoderInit(&encoder, buf, bufLen);
753✔
9995

9996
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
753!
9997
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
1,508!
9998
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->epId.nodeId));
1,508!
9999
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pReq->epId.ep.port));
1,508!
10000
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->epId.ep.fqdn));
1,508!
10001
  if (pReq->taskAction) {
754!
10002
    int32_t num = taosArrayGetSize(pReq->taskAction);
×
10003
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
10004
    for (int32_t i = 0; i < num; ++i) {
×
10005
      STaskAction *action = taosArrayGet(pReq->taskAction, i);
×
10006
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->queryId));
×
10007
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, action->taskId));
×
10008
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, action->action));
×
10009
    }
10010
  } else {
10011
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
754!
10012
  }
10013
  tEndEncode(&encoder);
754✔
10014

10015
_exit:
754✔
10016
  if (code) {
754!
10017
    tEncoderClear(&encoder);
×
10018
    return code;
×
10019
  } else {
10020
    tlen = encoder.pos;
754✔
10021
    tEncoderClear(&encoder);
754✔
10022

10023
    if (buf != NULL) {
753✔
10024
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
377✔
10025
      pHead->vgId = htonl(pReq->header.vgId);
377✔
10026
      pHead->contLen = htonl(tlen + headLen);
377✔
10027
    }
10028
    return tlen + headLen;
753✔
10029
  }
10030
}
10031

10032
int32_t tDeserializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq *pReq) {
×
10033
  int32_t   headLen = sizeof(SMsgHead);
×
10034
  SMsgHead *pHead = buf;
×
10035
  pHead->vgId = pReq->header.vgId;
×
10036
  pHead->contLen = pReq->header.contLen;
×
10037
  int32_t code = 0;
×
10038
  int32_t lino;
10039

10040
  SDecoder decoder = {0};
×
10041
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
10042

10043
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
10044
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
×
10045
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->epId.nodeId));
×
10046
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pReq->epId.ep.port));
×
10047
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->epId.ep.fqdn));
×
10048
  int32_t num = 0;
×
10049
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
×
10050
  if (num > 0) {
×
10051
    pReq->taskAction = taosArrayInit(num, sizeof(STaskStatus));
×
10052
    if (NULL == pReq->taskAction) {
×
10053
      TAOS_CHECK_EXIT(terrno);
×
10054
    }
10055
    for (int32_t i = 0; i < num; ++i) {
×
10056
      STaskAction action = {0};
×
10057
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.queryId));
×
10058
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &action.taskId));
×
10059
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &action.action));
×
10060
      if (taosArrayPush(pReq->taskAction, &action) == NULL) {
×
10061
        TAOS_CHECK_EXIT(terrno);
×
10062
      }
10063
    }
10064
  } else {
10065
    pReq->taskAction = NULL;
×
10066
  }
10067
  tEndDecode(&decoder);
×
10068

10069
_exit:
×
10070
  tDecoderClear(&decoder);
×
10071
  return code;
×
10072
}
10073

10074
void tFreeSSchedulerHbReq(SSchedulerHbReq *pReq) { taosArrayDestroy(pReq->taskAction); }
×
10075

10076
int32_t tSerializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
×
10077
  SEncoder encoder = {0};
×
10078
  int32_t  code = 0;
×
10079
  int32_t  lino;
10080
  int32_t  tlen;
10081
  tEncoderInit(&encoder, buf, bufLen);
×
10082

10083
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
10084
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pRsp->epId.nodeId));
×
10085
  TAOS_CHECK_EXIT(tEncodeU16(&encoder, pRsp->epId.ep.port));
×
10086
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pRsp->epId.ep.fqdn));
×
10087
  if (pRsp->taskStatus) {
×
10088
    int32_t num = taosArrayGetSize(pRsp->taskStatus);
×
10089
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, num));
×
10090
    for (int32_t i = 0; i < num; ++i) {
×
10091
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
×
10092
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->queryId));
×
10093
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->taskId));
×
10094
      TAOS_CHECK_EXIT(tEncodeI64(&encoder, status->refId));
×
10095
      TAOS_CHECK_EXIT(tEncodeI32(&encoder, status->execId));
×
10096
      TAOS_CHECK_EXIT(tEncodeI8(&encoder, status->status));
×
10097
    }
10098
    for (int32_t i = 0; i < num; ++i) {
×
10099
      STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
×
10100
      TAOS_CHECK_EXIT(tEncodeU64(&encoder, status->clientId));
×
10101
    }
10102
  } else {
10103
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, 0));
×
10104
  }
10105
  tEndEncode(&encoder);
×
10106

10107
_exit:
×
10108
  if (code) {
×
10109
    tlen = code;
×
10110
  } else {
10111
    tlen = encoder.pos;
×
10112
  }
10113
  tEncoderClear(&encoder);
×
10114
  return tlen;
×
10115
}
10116

10117
int32_t tDeserializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp *pRsp) {
122✔
10118
  SDecoder decoder = {0};
122✔
10119
  int32_t  code = 0;
122✔
10120
  int32_t  lino;
10121
  tDecoderInit(&decoder, buf, bufLen);
122✔
10122

10123
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
122✔
10124
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->epId.nodeId));
226!
10125
  TAOS_CHECK_EXIT(tDecodeU16(&decoder, &pRsp->epId.ep.port));
226!
10126
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pRsp->epId.ep.fqdn));
113!
10127
  int32_t num = 0;
113✔
10128
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &num));
113!
10129
  if (num > 0) {
113!
10130
    pRsp->taskStatus = taosArrayInit(num, sizeof(STaskStatus));
×
10131
    if (NULL == pRsp->taskStatus) {
×
10132
      TAOS_CHECK_EXIT(terrno);
×
10133
    }
10134
    for (int32_t i = 0; i < num; ++i) {
×
10135
      STaskStatus status = {0};
×
10136
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.queryId));
×
10137
      TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status.taskId));
×
10138
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &status.refId));
×
10139
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &status.execId));
×
10140
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &status.status));
×
10141
      if (taosArrayPush(pRsp->taskStatus, &status) == NULL) {
×
10142
        TAOS_CHECK_EXIT(terrno);
×
10143
      }
10144
    }
10145
    if (!tDecodeIsEnd(&decoder)) {
×
10146
      for (int32_t i = 0; i < num; ++i) {
×
10147
        STaskStatus *status = taosArrayGet(pRsp->taskStatus, i);
×
10148
        TAOS_CHECK_EXIT(tDecodeU64(&decoder, &status->clientId));
×
10149
      }
10150
    }
10151
  } else {
10152
    pRsp->taskStatus = NULL;
113✔
10153
  }
10154
  tEndDecode(&decoder);
113✔
10155

10156
_exit:
123✔
10157
  tDecoderClear(&decoder);
123✔
10158
  return code;
123✔
10159
}
10160

10161
void tFreeSSchedulerHbRsp(SSchedulerHbRsp *pRsp) { taosArrayDestroy(pRsp->taskStatus); }
123✔
10162

10163
int tEncodeSVCreateTbBatchRsp(SEncoder *pCoder, const SVCreateTbBatchRsp *pRsp) {
×
10164
  int32_t        nRsps = taosArrayGetSize(pRsp->pArray);
×
10165
  SVCreateTbRsp *pCreateRsp;
10166

10167
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
10168
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
×
10169
  for (int32_t i = 0; i < nRsps; i++) {
×
10170
    pCreateRsp = taosArrayGet(pRsp->pArray, i);
×
10171
    TAOS_CHECK_RETURN(tEncodeSVCreateTbRsp(pCoder, pCreateRsp));
×
10172
  }
10173

10174
  tEndEncode(pCoder);
×
10175
  return 0;
×
10176
}
10177

10178
int tDecodeSVCreateTbBatchRsp(SDecoder *pCoder, SVCreateTbBatchRsp *pRsp) {
423✔
10179
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
423!
10180
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
848!
10181
  pRsp->pRsps = (SVCreateTbRsp *)tDecoderMalloc(pCoder, sizeof(*pRsp->pRsps) * pRsp->nRsps);
424!
10182
  if (pRsp->pRsps == NULL) {
424!
10183
    TAOS_CHECK_RETURN(terrno);
×
10184
  }
10185
  for (int32_t i = 0; i < pRsp->nRsps; i++) {
983✔
10186
    TAOS_CHECK_RETURN(tDecodeSVCreateTbRsp(pCoder, pRsp->pRsps + i));
558!
10187
  }
10188

10189
  tEndDecode(pCoder);
425✔
10190
  return 0;
424✔
10191
}
10192

10193
int32_t tEncodeTSma(SEncoder *pCoder, const STSma *pSma) {
×
10194
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->version));
×
10195
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->intervalUnit));
×
10196
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->slidingUnit));
×
10197
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pSma->timezoneInt));
×
10198
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->dstVgId));
×
10199
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->indexName));
×
10200
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->exprLen));
×
10201
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pSma->tagsFilterLen));
×
10202
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->indexUid));
×
10203
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->tableUid));
×
10204
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->dstTbUid));
×
10205
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->dstTbName));
×
10206
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->interval));
×
10207
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->offset));
×
10208
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pSma->sliding));
×
10209
  if (pSma->exprLen > 0) {
×
10210
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->expr));
×
10211
  }
10212
  if (pSma->tagsFilterLen > 0) {
×
10213
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pSma->tagsFilter));
×
10214
  }
10215

10216
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaRow));
×
10217
  TAOS_CHECK_RETURN(tEncodeSSchemaWrapper(pCoder, &pSma->schemaTag));
×
10218

10219
  return 0;
×
10220
}
10221

10222
int32_t tDecodeTSma(SDecoder *pCoder, STSma *pSma, bool deepCopy) {
×
10223
  int32_t code = 0;
×
10224
  int32_t lino;
10225

10226
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->version));
×
10227
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->intervalUnit));
×
10228
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->slidingUnit));
×
10229
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pSma->timezoneInt));
×
10230
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->dstVgId));
×
10231
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pSma->indexName));
×
10232
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->exprLen));
×
10233
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pSma->tagsFilterLen));
×
10234
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->indexUid));
×
10235
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->tableUid));
×
10236
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->dstTbUid));
×
10237
  if (deepCopy) {
×
10238
    TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->dstTbName));
×
10239
  } else {
10240
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->dstTbName));
×
10241
  }
10242

10243
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->interval));
×
10244
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->offset));
×
10245
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSma->sliding));
×
10246
  if (pSma->exprLen > 0) {
×
10247
    if (deepCopy) {
×
10248
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->expr));
×
10249
    } else {
10250
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->expr));
×
10251
    }
10252
  } else {
10253
    pSma->expr = NULL;
×
10254
  }
10255
  if (pSma->tagsFilterLen > 0) {
×
10256
    if (deepCopy) {
×
10257
      TAOS_CHECK_EXIT(tDecodeCStrAlloc(pCoder, &pSma->tagsFilter));
×
10258
    } else {
10259
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pSma->tagsFilter));
×
10260
    }
10261
  } else {
10262
    pSma->tagsFilter = NULL;
×
10263
  }
10264
  // only needed in dstVgroup
10265
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaRow));
×
10266
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pSma->schemaTag));
×
10267

10268
_exit:
×
10269
  return code;
×
10270
}
10271

10272
int32_t tEncodeSVCreateTSmaReq(SEncoder *pCoder, const SVCreateTSmaReq *pReq) {
×
10273
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
10274
  TAOS_CHECK_RETURN(tEncodeTSma(pCoder, pReq));
×
10275
  tEndEncode(pCoder);
×
10276
  return 0;
×
10277
}
10278

10279
int32_t tDecodeSVCreateTSmaReq(SDecoder *pCoder, SVCreateTSmaReq *pReq) {
×
10280
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
10281
  TAOS_CHECK_RETURN(tDecodeTSma(pCoder, pReq, false));
×
10282
  tEndDecode(pCoder);
×
10283
  return 0;
×
10284
}
10285

10286
int32_t tEncodeSVDropTSmaReq(SEncoder *pCoder, const SVDropTSmaReq *pReq) {
×
10287
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
10288
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->indexUid));
×
10289
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->indexName));
×
10290

10291
  tEndEncode(pCoder);
×
10292
  return 0;
×
10293
}
10294

10295
int32_t tSerializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
×
10296
  int32_t code = 0;
×
10297
  int32_t lino;
10298
  int32_t headLen = sizeof(SMsgHead);
×
10299
  if (buf != NULL) {
×
10300
    buf = (char *)buf + headLen;
×
10301
    bufLen -= headLen;
×
10302
  }
10303

10304
  SEncoder encoder = {0};
×
10305
  tEncoderInit(&encoder, buf, bufLen);
×
10306

10307
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
10308
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->sId));
×
10309
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->queryId));
×
10310
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->taskId));
×
10311
  TAOS_CHECK_EXIT(tEncodeU32(&encoder, pReq->sqlLen));
×
10312
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
×
10313
  TAOS_CHECK_EXIT(tEncodeBinary(&encoder, pReq->msg, pReq->phyLen));
×
10314
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->source));
×
10315
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->clientId));
×
10316
  tEndEncode(&encoder);
×
10317

10318
_exit:
×
10319
  if (code) {
×
10320
    tEncoderClear(&encoder);
×
10321
    return code;
×
10322
  } else {
10323
    int32_t tlen = encoder.pos;
×
10324
    tEncoderClear(&encoder);
×
10325

10326
    if (buf != NULL) {
×
10327
      SMsgHead *pHead = (SMsgHead *)((char *)buf - headLen);
×
10328
      pHead->vgId = htonl(pReq->header.vgId);
×
10329
      pHead->contLen = htonl(tlen + headLen);
×
10330
    }
10331

10332
    return tlen + headLen;
×
10333
  }
10334
}
10335

10336
int32_t tDeserializeSVDeleteReq(void *buf, int32_t bufLen, SVDeleteReq *pReq) {
×
10337
  int32_t   code = 0;
×
10338
  int32_t   lino;
10339
  int32_t   headLen = sizeof(SMsgHead);
×
10340
  SMsgHead *pHead = buf;
×
10341
  pHead->vgId = pReq->header.vgId;
×
10342
  pHead->contLen = pReq->header.contLen;
×
10343

10344
  SDecoder decoder = {0};
×
10345
  tDecoderInit(&decoder, (char *)buf + headLen, bufLen - headLen);
×
10346

10347
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
10348
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->sId));
×
10349
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->queryId));
×
10350
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->taskId));
×
10351
  TAOS_CHECK_EXIT(tDecodeU32(&decoder, &pReq->sqlLen));
×
10352
  pReq->sql = taosMemoryCalloc(1, pReq->sqlLen + 1);
×
10353
  if (NULL == pReq->sql) {
×
10354
    TAOS_CHECK_EXIT(terrno);
×
10355
  }
10356
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
×
10357
  uint64_t msgLen = 0;
×
10358
  TAOS_CHECK_EXIT(tDecodeBinaryAlloc(&decoder, (void **)&pReq->msg, &msgLen));
×
10359
  pReq->phyLen = msgLen;
×
10360

10361
  if (!tDecodeIsEnd(&decoder)) {
×
10362
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->source));
×
10363
  }
10364
  if (!tDecodeIsEnd(&decoder)) {
×
10365
    TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->clientId));
×
10366
  } else {
10367
    pReq->clientId = 0;
×
10368
  }
10369
  tEndDecode(&decoder);
×
10370

10371
_exit:
×
10372
  tDecoderClear(&decoder);
×
10373
  return 0;
×
10374
}
10375

10376
int32_t tEncodeSVDeleteRsp(SEncoder *pCoder, const SVDeleteRsp *pReq) {
×
10377
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
10378
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->affectedRows));
×
10379
  tEndEncode(pCoder);
×
10380
  return 0;
×
10381
}
10382

10383
int32_t tDecodeSVDeleteRsp(SDecoder *pCoder, SVDeleteRsp *pReq) {
10✔
10384
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
10!
10385
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->affectedRows));
×
10386
  tEndDecode(pCoder);
×
10387
  return 0;
×
10388
}
10389

10390
int32_t tSerializeSCMCreateStreamReq(void *buf, int32_t bufLen, const SCMCreateStreamReq *pReq) {
74✔
10391
  int32_t sqlLen = 0;
74✔
10392
  int32_t astLen = 0;
74✔
10393
  if (pReq->sql != NULL) sqlLen = (int32_t)strlen(pReq->sql);
74!
10394
  if (pReq->ast != NULL) astLen = (int32_t)strlen(pReq->ast);
74!
10395

10396
  SEncoder encoder = {0};
74✔
10397
  tEncoderInit(&encoder, buf, bufLen);
74✔
10398
  int32_t code = 0;
74✔
10399
  int32_t lino;
10400

10401
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
74!
10402
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
148!
10403
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sourceDB));
148!
10404
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->targetStbFullName));
148!
10405
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExists));
148!
10406
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fillHistory));
148!
10407
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, sqlLen));
74!
10408
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, astLen));
74!
10409
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->triggerType));
148!
10410
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->maxDelay));
148!
10411
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->watermark));
148!
10412
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igExpired));
148!
10413
  if (sqlLen > 0) {
74!
10414
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
148!
10415
  }
10416
  if (astLen > 0) {
74!
10417
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->ast));
148!
10418
  }
10419
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfTags));
148!
10420
  for (int32_t i = 0; i < pReq->numOfTags; ++i) {
114✔
10421
    SField *pField = taosArrayGet(pReq->pTags, i);
40✔
10422
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
80!
10423
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
80!
10424
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, pField->bytes));
80!
10425
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
80!
10426
  }
10427

10428
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->createStb));
148!
10429
  TAOS_CHECK_EXIT(tEncodeU64(&encoder, pReq->targetStbUid));
148!
10430

10431
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->fillNullCols)));
148!
10432
  for (int32_t i = 0; i < taosArrayGetSize(pReq->fillNullCols); ++i) {
74!
10433
    SColLocation *pCol = taosArrayGet(pReq->fillNullCols, i);
×
10434
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->slotId));
×
10435
    TAOS_CHECK_EXIT(tEncodeI16(&encoder, pCol->colId));
×
10436
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pCol->type));
×
10437
  }
10438

10439
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->deleteMark));
148!
10440
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUpdate));
148!
10441
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->lastTs));
148!
10442

10443
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, taosArrayGetSize(pReq->pVgroupVerList)));
148!
10444

10445
  for (int32_t i = 0; i < taosArrayGetSize(pReq->pVgroupVerList); ++i) {
74!
10446
    SVgroupVer *p = taosArrayGet(pReq->pVgroupVerList, i);
×
10447
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, p->vgId));
×
10448
    TAOS_CHECK_EXIT(tEncodeI64(&encoder, p->ver));
×
10449
  }
10450

10451
  int32_t colSize = taosArrayGetSize(pReq->pCols);
74✔
10452
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, colSize));
74!
10453
  for (int32_t i = 0; i < colSize; ++i) {
238✔
10454
    SFieldWithOptions *pField = taosArrayGet(pReq->pCols, i);
164✔
10455
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->type));
328!
10456
    TAOS_CHECK_EXIT(tEncodeI8(&encoder, pField->flags));
328!
10457
    int32_t bytes = pField->bytes;
164✔
10458
    if (IS_DECIMAL_TYPE(pField->type)) {
164!
10459
      uint8_t prec = 0, scale = 0;
×
10460
      extractTypeFromTypeMod(pField->type, pField->typeMod, &prec, &scale, NULL);
×
10461
      fillBytesForDecimalType(&bytes, pField->type, prec, scale);
×
10462
    }
10463
    TAOS_CHECK_EXIT(tEncodeI32(&encoder, bytes));
328!
10464
    TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pField->name));
328!
10465
  }
10466

10467
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->smaId));
148!
10468

10469
  int32_t addrSize = taosArrayGetSize(pReq->pNotifyAddrUrls);
74✔
10470
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, addrSize));
74!
10471
  for (int32_t i = 0; i < addrSize; ++i) {
74!
10472
    const char *url = taosArrayGetP(pReq->pNotifyAddrUrls, i);
×
10473
    TAOS_CHECK_EXIT((tEncodeCStr(&encoder, url)));
×
10474
  }
10475
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->notifyEventTypes));
148!
10476
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->notifyErrorHandle));
148!
10477
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->notifyHistory));
148!
10478

10479
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, pReq->recalculateInterval));
148!
10480
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pWstartName));
148!
10481
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pWendName));
148!
10482
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pGroupIdName));
148!
10483
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->pIsWindowFilledName));
148!
10484
  int32_t vgNum = taosArrayGetSize(pReq->pVSubTables);
74✔
10485
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, vgNum));
74!
10486
  for (int32_t i = 0; i < vgNum; ++i) {
74!
10487
    SVSubTablesRsp* pVgTables = taosArrayGet(pReq->pVSubTables, i);
×
10488
    TAOS_CHECK_EXIT(tSerializeSVSubTablesRspImpl(&encoder, pVgTables));
×
10489
  }
10490
  
10491
  tEndEncode(&encoder);
74✔
10492

10493
_exit:
74✔
10494
  if (code) {
74!
10495
    tEncoderClear(&encoder);
×
10496
    return code;
×
10497
  } else {
10498
    int32_t tlen = encoder.pos;
74✔
10499
    tEncoderClear(&encoder);
74✔
10500
    return tlen;
74✔
10501
  }
10502
}
10503

10504
int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStreamReq *pReq) {
16✔
10505
  int32_t sqlLen = 0;
16✔
10506
  int32_t astLen = 0;
16✔
10507
  int32_t numOfFillNullCols = 0;
16✔
10508
  int32_t numOfVgVer = 0;
16✔
10509

10510
  SDecoder decoder = {0};
16✔
10511
  tDecoderInit(&decoder, buf, bufLen);
16✔
10512
  int32_t code = 0;
16✔
10513
  int32_t lino;
10514

10515
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
16!
10516
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
16!
10517
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sourceDB));
16!
10518
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->targetStbFullName));
16!
10519
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExists));
32!
10520
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->fillHistory));
32!
10521
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &sqlLen));
16!
10522
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &astLen));
16!
10523
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->triggerType));
32!
10524
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->maxDelay));
32!
10525
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->watermark));
32!
10526
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igExpired));
32!
10527

10528
  if (sqlLen > 0) {
16!
10529
    pReq->sql = taosMemoryCalloc(1, sqlLen + 1);
16!
10530
    if (pReq->sql == NULL) {
16!
10531
      TAOS_CHECK_EXIT(terrno);
×
10532
    }
10533
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->sql));
16!
10534
  }
10535

10536
  if (astLen > 0) {
16!
10537
    pReq->ast = taosMemoryCalloc(1, astLen + 1);
16!
10538
    if (pReq->ast == NULL) {
16!
10539
      TAOS_CHECK_EXIT(terrno);
×
10540
    }
10541
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->ast));
16!
10542
  }
10543

10544
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfTags));
32!
10545
  if (pReq->numOfTags > 0) {
16✔
10546
    pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField));
4✔
10547
    if (pReq->pTags == NULL) {
4!
10548
      TAOS_CHECK_EXIT(terrno);
×
10549
    }
10550

10551
    for (int32_t i = 0; i < pReq->numOfTags; ++i) {
12✔
10552
      SField field = {0};
8✔
10553
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
8!
10554
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
8!
10555
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
8!
10556
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
8!
10557
      if (taosArrayPush(pReq->pTags, &field) == NULL) {
16!
10558
        TAOS_CHECK_EXIT(terrno);
×
10559
      }
10560
    }
10561
  }
10562
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->createStb));
32!
10563
  TAOS_CHECK_EXIT(tDecodeU64(&decoder, &pReq->targetStbUid));
32!
10564
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfFillNullCols));
16!
10565
  if (numOfFillNullCols > 0) {
16!
10566
    pReq->fillNullCols = taosArrayInit(numOfFillNullCols, sizeof(SColLocation));
×
10567
    if (pReq->fillNullCols == NULL) {
×
10568
      TAOS_CHECK_EXIT(terrno);
×
10569
    }
10570

10571
    for (int32_t i = 0; i < numOfFillNullCols; ++i) {
×
10572
      SColLocation col = {0};
×
10573
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.slotId));
×
10574
      TAOS_CHECK_EXIT(tDecodeI16(&decoder, &col.colId));
×
10575
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &col.type));
×
10576
      if (taosArrayPush(pReq->fillNullCols, &col) == NULL) {
×
10577
        TAOS_CHECK_EXIT(terrno);
×
10578
      }
10579
    }
10580
  }
10581

10582
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->deleteMark));
32!
10583
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUpdate));
32!
10584
  TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->lastTs));
32!
10585

10586
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfVgVer));
16!
10587
  if (numOfVgVer > 0) {
16!
10588
    pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer));
×
10589
    if (pReq->pVgroupVerList == NULL) {
×
10590
      TAOS_CHECK_EXIT(terrno);
×
10591
    }
10592

10593
    for (int32_t i = 0; i < numOfVgVer; ++i) {
×
10594
      SVgroupVer v = {0};
×
10595
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &v.vgId));
×
10596
      TAOS_CHECK_EXIT(tDecodeI64(&decoder, &v.ver));
×
10597
      if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) {
×
10598
        TAOS_CHECK_EXIT(terrno);
×
10599
      }
10600
    }
10601
  }
10602
  int32_t colSize = 0;
16✔
10603
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &colSize));
16!
10604
  if (colSize > 0) {
16!
10605
    pReq->pCols = taosArrayInit(colSize, sizeof(SField));
16✔
10606
    if (pReq->pCols == NULL) {
16!
10607
      TAOS_CHECK_EXIT(terrno);
×
10608
    }
10609

10610
    for (int32_t i = 0; i < colSize; ++i) {
52✔
10611
      SField field = {0};
36✔
10612
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.type));
36!
10613
      TAOS_CHECK_EXIT(tDecodeI8(&decoder, &field.flags));
36!
10614
      TAOS_CHECK_EXIT(tDecodeI32(&decoder, &field.bytes));
36!
10615
      TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, field.name));
36!
10616
      if (taosArrayPush(pReq->pCols, &field) == NULL) {
72!
10617
        TAOS_CHECK_EXIT(terrno);
×
10618
      }
10619
    }
10620
  }
10621
  if (!tDecodeIsEnd(&decoder)) {
16!
10622
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->smaId));
32!
10623
  }
10624

10625
  if (!tDecodeIsEnd(&decoder)) {
16!
10626
    int32_t addrSize = 0;
16✔
10627
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &addrSize));
16!
10628
    pReq->pNotifyAddrUrls = taosArrayInit(addrSize, POINTER_BYTES);
16✔
10629
    if (pReq->pNotifyAddrUrls == NULL) {
16!
10630
      TAOS_CHECK_EXIT(terrno);
×
10631
    }
10632
    for (int32_t i = 0; i < addrSize; ++i) {
16!
10633
      char *url = NULL;
×
10634
      TAOS_CHECK_EXIT(tDecodeCStr(&decoder, &url));
×
10635
      url = taosStrndup(url, TSDB_STREAM_NOTIFY_URL_LEN);
×
10636
      if (url == NULL) {
×
10637
        TAOS_CHECK_EXIT(terrno);
×
10638
      }
10639
      if (taosArrayPush(pReq->pNotifyAddrUrls, &url) == NULL) {
×
10640
        taosMemoryFree(url);
×
10641
        TAOS_CHECK_EXIT(terrno);
×
10642
      }
10643
    }
10644
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->notifyEventTypes));
32!
10645
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->notifyErrorHandle));
32!
10646
    TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->notifyHistory));
32!
10647
  }
10648

10649
  if (!tDecodeIsEnd(&decoder)) {
16!
10650
    TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pReq->recalculateInterval));
32!
10651
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pWstartName));
16!
10652
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pWendName));
16!
10653
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pGroupIdName));
16!
10654
    TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->pIsWindowFilledName));
16!
10655
    int32_t vgNum = 0;
16✔
10656
    TAOS_CHECK_EXIT(tDecodeI32(&decoder, &vgNum));
16!
10657
    if (vgNum > 0) {
16!
10658
      pReq->pVSubTables = taosArrayInit(vgNum, sizeof(SVSubTablesRsp));
×
10659
      if (pReq->pVSubTables == NULL) {
×
10660
        TAOS_CHECK_EXIT(terrno);
×
10661
      }
10662
      SVSubTablesRsp vgTables = {0};
×
10663
      for (int32_t i = 0; i < vgNum; ++i) {
×
10664
        vgTables.pTables = NULL;
×
10665
        TAOS_CHECK_EXIT(tDeserializeSVSubTablesRspImpl(&decoder, &vgTables));
×
10666
        if (taosArrayPush(pReq->pVSubTables, &vgTables) == NULL) {
×
10667
          tDestroySVSubTablesRsp(&vgTables);
×
10668
          TAOS_CHECK_EXIT(terrno);
×
10669
        }
10670
      }
10671
    }
10672
  }
10673

10674
  tEndDecode(&decoder);
16✔
10675
  
10676
_exit:
16✔
10677
  tDecoderClear(&decoder);
16✔
10678
  return code;
16✔
10679
}
10680

10681
int32_t tSerializeSMDropStreamReq(void *buf, int32_t bufLen, const SMDropStreamReq *pReq) {
16✔
10682
  int32_t  code = 0;
16✔
10683
  int32_t  lino;
10684
  int32_t  tlen;
10685
  SEncoder encoder = {0};
16✔
10686
  tEncoderInit(&encoder, buf, bufLen);
16✔
10687

10688
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
10689
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
32!
10690
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
32!
10691

10692
  ENCODESQL();
48!
10693

10694
  tEndEncode(&encoder);
16✔
10695

10696
_exit:
16✔
10697
  if (code) {
16!
10698
    tlen = code;
×
10699
  } else {
10700
    tlen = encoder.pos;
16✔
10701
  }
10702
  tEncoderClear(&encoder);
16✔
10703
  return tlen;
16✔
10704
}
10705

10706
int32_t tDeserializeSMDropStreamReq(void *buf, int32_t bufLen, SMDropStreamReq *pReq) {
4✔
10707
  SDecoder decoder = {0};
4✔
10708
  int32_t  code = 0;
4✔
10709
  int32_t  lino;
10710
  tDecoderInit(&decoder, buf, bufLen);
4✔
10711

10712
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
10713
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
4!
10714
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
8!
10715

10716
  DECODESQL();
12!
10717

10718
  tEndDecode(&decoder);
4✔
10719

10720
_exit:
4✔
10721
  tDecoderClear(&decoder);
4✔
10722
  return code;
4✔
10723
}
10724

10725
void tFreeMDropStreamReq(SMDropStreamReq *pReq) { FREESQL(); }
12!
10726

10727
void tFreeSCMCreateStreamReq(SCMCreateStreamReq *pReq) {
208✔
10728
  if (NULL == pReq) {
208✔
10729
    return;
135✔
10730
  }
10731
  taosMemoryFreeClear(pReq->sql);
73!
10732
  taosMemoryFreeClear(pReq->ast);
73!
10733
  taosArrayDestroy(pReq->pTags);
73✔
10734
  taosArrayDestroy(pReq->fillNullCols);
73✔
10735
  taosArrayDestroy(pReq->pVgroupVerList);
73✔
10736
  taosArrayDestroy(pReq->pCols);
73✔
10737
  taosArrayDestroyP(pReq->pNotifyAddrUrls, NULL);
73✔
10738
  taosArrayDestroyEx(pReq->pVSubTables, tDestroySVSubTablesRsp);
73✔
10739
}
10740

10741
int32_t tEncodeSRSmaParam(SEncoder *pCoder, const SRSmaParam *pRSmaParam) {
×
10742
  int32_t code = 0;
×
10743
  int32_t lino;
10744
  for (int32_t i = 0; i < 2; ++i) {
×
10745
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->maxdelay[i]));
×
10746
    TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRSmaParam->watermark[i]));
×
10747
    TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRSmaParam->qmsgLen[i]));
×
10748
    if (pRSmaParam->qmsgLen[i] > 0) {
×
10749
      TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pRSmaParam->qmsg[i], (uint64_t)pRSmaParam->qmsgLen[i]));
×
10750
    }
10751
  }
10752

10753
_exit:
×
10754
  return code;
×
10755
}
10756

10757
int32_t tDecodeSRSmaParam(SDecoder *pCoder, SRSmaParam *pRSmaParam) {
×
10758
  int32_t code = 0;
×
10759
  int32_t lino;
10760
  for (int32_t i = 0; i < 2; ++i) {
×
10761
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->maxdelay[i]));
×
10762
    TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRSmaParam->watermark[i]));
×
10763
    TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pRSmaParam->qmsgLen[i]));
×
10764
    if (pRSmaParam->qmsgLen[i] > 0) {
×
10765
      TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pRSmaParam->qmsg[i], NULL));  // qmsgLen contains len of '\0'
×
10766
    } else {
10767
      pRSmaParam->qmsg[i] = NULL;
×
10768
    }
10769
  }
10770

10771
_exit:
×
10772
  return code;
×
10773
}
10774

10775
int32_t tEncodeSColRefWrapper(SEncoder *pCoder, const SColRefWrapper *pWrapper) {
×
10776
  int32_t code = 0;
×
10777
  int32_t lino;
10778

10779
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
×
10780
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
×
10781
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
×
10782
    SColRef *p = &pWrapper->pColRef[i];
×
10783
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, p->hasRef));
×
10784
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
×
10785
    if (p->hasRef) {
×
10786
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refDbName));
×
10787
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refTableName));
×
10788
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, p->refColName));
×
10789
    }
10790
  }
10791

10792
_exit:
×
10793
  return code;
×
10794
}
10795

10796
int32_t tDecodeSColRefWrapperEx(SDecoder *pDecoder, SColRefWrapper *pWrapper) {
×
10797
  int32_t code = 0;
×
10798
  int32_t lino;
10799

10800
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
×
10801
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
×
10802

10803
  pWrapper->pColRef = (SColRef *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColRef));
×
10804
  if (pWrapper->pColRef == NULL) {
×
10805
    TAOS_CHECK_EXIT(terrno);
×
10806
  }
10807

10808
  for (int i = 0; i < pWrapper->nCols; i++) {
×
10809
    SColRef *p = &pWrapper->pColRef[i];
×
10810
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&p->hasRef));
×
10811
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
×
10812
    if (p->hasRef) {
×
10813
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refDbName));
×
10814
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refTableName));
×
10815
      TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, p->refColName));
×
10816
    }
10817
  }
10818

10819
_exit:
×
10820
  if (code) {
×
10821
    taosMemoryFree(pWrapper->pColRef);
×
10822
  }
10823
  return code;
×
10824
}
10825

10826
int32_t tEncodeSColCmprWrapper(SEncoder *pCoder, const SColCmprWrapper *pWrapper) {
118✔
10827
  int32_t code = 0;
118✔
10828
  int32_t lino;
10829

10830
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->nCols));
236!
10831
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pWrapper->version));
236!
10832
  for (int32_t i = 0; i < pWrapper->nCols; i++) {
522✔
10833
    SColCmpr *p = &pWrapper->pColCmpr[i];
404✔
10834
    TAOS_CHECK_EXIT(tEncodeI16v(pCoder, p->id));
808!
10835
    TAOS_CHECK_EXIT(tEncodeU32(pCoder, p->alg));
808!
10836
  }
10837

10838
_exit:
118✔
10839
  return code;
118✔
10840
}
10841

10842
int32_t tDecodeSColCmprWrapperEx(SDecoder *pDecoder, SColCmprWrapper *pWrapper) {
34✔
10843
  int32_t code = 0;
34✔
10844
  int32_t lino;
10845

10846
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->nCols));
68!
10847
  TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pWrapper->version));
68!
10848

10849
  pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr));
34!
10850
  if (pWrapper->pColCmpr == NULL) {
34!
10851
    TAOS_CHECK_EXIT(terrno);
×
10852
  }
10853

10854
  for (int i = 0; i < pWrapper->nCols; i++) {
108✔
10855
    SColCmpr *p = &pWrapper->pColCmpr[i];
74✔
10856
    TAOS_CHECK_EXIT(tDecodeI16v(pDecoder, &p->id));
148!
10857
    TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &p->alg));
148!
10858
  }
10859

10860
_exit:
34✔
10861
  if (code) {
34!
10862
    taosMemoryFree(pWrapper->pColCmpr);
×
10863
  }
10864
  return code;
34✔
10865
}
10866

10867
static int32_t tEncodeSExtSchema(SEncoder* pCoder, const SExtSchema* pExtSchema) {
×
10868
  int32_t code = 0, lino;
×
10869
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pExtSchema->typeMod));
×
10870

10871
_exit:
×
10872
  return code;
×
10873
}
10874

10875
int32_t tDecodeSExtSchema(SDecoder* pCoder, SExtSchema* pExtSchema) {
×
10876
  int32_t code = 0, lino;
×
10877
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pExtSchema->typeMod));
×
10878

10879
_exit:
×
10880
  return code;
×
10881
}
10882

10883
static int32_t tEncodeSExtSchemas(SEncoder* pCoder, const SExtSchema* pExtSchemas, int32_t nCol) {
×
10884
  int32_t code = 0, lino;
×
10885
  for (int32_t i = 0; i < nCol; ++i) {
×
10886
    TAOS_CHECK_EXIT(tEncodeSExtSchema(pCoder, pExtSchemas + i));
×
10887
  }
10888

10889
_exit:
×
10890
  return code;
×
10891
}
10892

10893
static int32_t tDecodeSExtSchemas(SDecoder* pCoder, SExtSchema** ppExtSchema, int32_t nCol) {
×
10894
  int32_t code = 0, lino;
×
10895
  *ppExtSchema = tDecoderMalloc(pCoder, sizeof(SExtSchema) * nCol);
×
10896
  if (!*ppExtSchema) TAOS_CHECK_EXIT(terrno);
×
10897
  for (int32_t i = 0; i < nCol; ++i) {
×
10898
    TAOS_CHECK_EXIT(tDecodeSExtSchema(pCoder, (*ppExtSchema) + i));
×
10899
  }
10900

10901
_exit:
×
10902
  return code;
×
10903
}
10904

10905
int tEncodeSVCreateStbReq(SEncoder *pCoder, const SVCreateStbReq *pReq) {
68✔
10906
  int32_t code = 0;
68✔
10907
  int32_t lino;
10908

10909
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
68!
10910

10911
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
136!
10912
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->suid));
136!
10913
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->rollup));
136!
10914
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaRow));
136!
10915
  TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->schemaTag));
136!
10916
  if (pReq->rollup) {
68!
10917
    TAOS_CHECK_EXIT(tEncodeSRSmaParam(pCoder, &pReq->rsmaParam));
×
10918
  }
10919

10920
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->alterOriDataLen));
136!
10921
  if (pReq->alterOriDataLen > 0) {
68✔
10922
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->alterOriData, pReq->alterOriDataLen));
64!
10923
  }
10924
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->source));
136!
10925

10926
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->colCmpred));
136!
10927
  TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
68!
10928
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->keep));
136!
10929
  if (pReq->pExtSchemas) {
68!
10930
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 1));
×
10931
    TAOS_CHECK_EXIT(tEncodeSExtSchemas(pCoder, pReq->pExtSchemas, pReq->schemaRow.nCols));
×
10932
  } else {
10933
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 0));
68!
10934
  }
10935
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->virtualStb));
136!
10936
  tEndEncode(pCoder);
68✔
10937

10938
_exit:
68✔
10939
  return code;
68✔
10940
}
10941

10942
int tDecodeSVCreateStbReq(SDecoder *pCoder, SVCreateStbReq *pReq) {
34✔
10943
  int32_t code = 0;
34✔
10944
  int32_t lino;
10945

10946
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
34!
10947

10948
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
68!
10949
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
68!
10950
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->rollup));
68!
10951
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaRow));
68!
10952
  TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->schemaTag));
68!
10953
  if (pReq->rollup) {
34!
10954
    TAOS_CHECK_EXIT(tDecodeSRSmaParam(pCoder, &pReq->rsmaParam));
×
10955
  }
10956

10957
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->alterOriDataLen));
68!
10958
  if (pReq->alterOriDataLen > 0) {
34✔
10959
    TAOS_CHECK_EXIT(tDecodeBinary(pCoder, (uint8_t **)&pReq->alterOriData, NULL));
32!
10960
  }
10961
  if (!tDecodeIsEnd(pCoder)) {
34!
10962
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->source));
68!
10963

10964
    if (!tDecodeIsEnd(pCoder)) {
34!
10965
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->colCmpred));
68!
10966
    }
10967
    if (!tDecodeIsEnd(pCoder)) {
34!
10968
      TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
34!
10969
    }
10970
    if (!tDecodeIsEnd(pCoder)) {
34!
10971
      TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->keep));
68!
10972
    }
10973
    if (!tDecodeIsEnd(pCoder)) {
34!
10974
      int8_t hasExtSchema = 0;
34✔
10975
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &hasExtSchema));
34!
10976
      if (hasExtSchema) {
34!
10977
        TAOS_CHECK_EXIT(tDecodeSExtSchemas(pCoder, &pReq->pExtSchemas, pReq->schemaRow.nCols));
×
10978
      }
10979
    }
10980
  }
10981
  if (!tDecodeIsEnd(pCoder)) {
34!
10982
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->virtualStb));
68!
10983
  }
10984
  tEndDecode(pCoder);
34✔
10985

10986
_exit:
34✔
10987
  return code;
34✔
10988
}
10989

10990
int tEncodeSVCreateTbReq(SEncoder *pCoder, const SVCreateTbReq *pReq) {
1,378✔
10991
  int32_t code = 0;
1,378✔
10992
  int32_t lino;
10993

10994
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
1,378!
10995

10996
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pReq->flags));
2,756!
10997
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->name));
2,756!
10998
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->uid));
2,756!
10999
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->btime));
2,756!
11000
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->ttl));
2,756!
11001
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pReq->type));
2,756!
11002
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->commentLen));
2,756!
11003
  if (pReq->commentLen > 0) {
1,378✔
11004
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->comment));
16!
11005
  }
11006

11007
  if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
2,706!
11008
    TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pReq->ctb.stbName));
2,656!
11009
    TAOS_CHECK_EXIT(tEncodeU8(pCoder, pReq->ctb.tagNum));
2,656!
11010
    TAOS_CHECK_EXIT(tEncodeI64(pCoder, pReq->ctb.suid));
2,656!
11011
    TAOS_CHECK_EXIT(tEncodeTag(pCoder, (const STag *)pReq->ctb.pTag));
1,328!
11012
    int32_t len = taosArrayGetSize(pReq->ctb.tagName);
1,328✔
11013
    TAOS_CHECK_EXIT(tEncodeI32(pCoder, len));
1,328!
11014
    for (int32_t i = 0; i < len; i++) {
3,052✔
11015
      char *name = taosArrayGet(pReq->ctb.tagName, i);
1,724✔
11016
      TAOS_CHECK_EXIT(tEncodeCStr(pCoder, name));
1,724!
11017
    }
11018
  } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
50!
11019
    TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pCoder, &pReq->ntb.schemaRow));
100!
11020
  } else {
11021
    return TSDB_CODE_INVALID_MSG;
×
11022
  }
11023
  // ENCODESQL
11024

11025
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pReq->sqlLen));
2,756!
11026
  if (pReq->sqlLen > 0) {
1,378!
11027
    TAOS_CHECK_EXIT(tEncodeBinary(pCoder, pReq->sql, pReq->sqlLen));
×
11028
  }
11029
  // Encode Column Options: encode compress level
11030
  if (pReq->type == TSDB_SUPER_TABLE || pReq->type == TSDB_NORMAL_TABLE) {
1,378!
11031
    TAOS_CHECK_EXIT(tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr));
50!
11032
  }
11033
  if (pReq->type == TSDB_VIRTUAL_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
1,378!
11034
    TAOS_CHECK_EXIT(tEncodeSColRefWrapper(pCoder, &pReq->colRef));
×
11035
  }
11036
  if (pReq->pExtSchemas) {
1,378!
11037
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 1));
×
11038
    TAOS_CHECK_EXIT(tEncodeSExtSchemas(pCoder, pReq->pExtSchemas, pReq->ntb.schemaRow.nCols));
×
11039
  } else {
11040
    TAOS_CHECK_EXIT(tEncodeI8(pCoder, 0));
1,378!
11041
  }
11042

11043
  tEndEncode(pCoder);
1,378✔
11044
_exit:
1,378✔
11045
  return code;
1,378✔
11046
}
11047

11048
int tDecodeSVCreateTbReq(SDecoder *pCoder, SVCreateTbReq *pReq) {
×
11049
  int32_t code = 0;
×
11050
  int32_t lino;
11051

11052
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
×
11053

11054
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pReq->flags));
×
11055
  TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->name));
×
11056
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->uid));
×
11057
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->btime));
×
11058
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->ttl));
×
11059
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->type));
×
11060
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->commentLen));
×
11061
  if (pReq->commentLen > 0) {
×
11062
    pReq->comment = taosMemoryMalloc(pReq->commentLen + 1);
×
11063
    if (pReq->comment == NULL) {
×
11064
      TAOS_CHECK_EXIT(terrno);
×
11065
    }
11066
    TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->comment));
×
11067
  }
11068

11069
  if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
×
11070
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->ctb.stbName));
×
11071
    TAOS_CHECK_EXIT(tDecodeU8(pCoder, &pReq->ctb.tagNum));
×
11072
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->ctb.suid));
×
11073
    TAOS_CHECK_EXIT(tDecodeTag(pCoder, (STag **)&pReq->ctb.pTag));
×
11074
    int32_t len = 0;
×
11075
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &len));
×
11076
    pReq->ctb.tagName = taosArrayInit(len, TSDB_COL_NAME_LEN);
×
11077
    if (pReq->ctb.tagName == NULL) {
×
11078
      TAOS_CHECK_EXIT(terrno);
×
11079
    }
11080
    for (int32_t i = 0; i < len; i++) {
×
11081
      char  name[TSDB_COL_NAME_LEN] = {0};
×
11082
      char *tmp = NULL;
×
11083
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &tmp));
×
11084
      tstrncpy(name, tmp, TSDB_COL_NAME_LEN);
×
11085
      if (taosArrayPush(pReq->ctb.tagName, name) == NULL) {
×
11086
        TAOS_CHECK_EXIT(terrno);
×
11087
      }
11088
    }
11089
  } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
×
11090
    TAOS_CHECK_EXIT(tDecodeSSchemaWrapperEx(pCoder, &pReq->ntb.schemaRow));
×
11091
  } else {
11092
    return TSDB_CODE_INVALID_MSG;
×
11093
  }
11094

11095
  // DECODESQL
11096
  if (!tDecodeIsEnd(pCoder)) {
×
11097
    TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->sqlLen));
×
11098
    if (pReq->sqlLen > 0) {
×
11099
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pCoder, (void **)&pReq->sql, NULL));
×
11100
    }
11101
    if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_SUPER_TABLE) {
×
11102
      if (!tDecodeIsEnd(pCoder)) {
×
11103
        TAOS_CHECK_EXIT(tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr));
×
11104
      }
11105
    } else if (pReq->type == TSDB_VIRTUAL_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
×
11106
      if (!tDecodeIsEnd(pCoder)) {
×
11107
        TAOS_CHECK_EXIT(tDecodeSColRefWrapperEx(pCoder, &pReq->colRef));
×
11108
      }
11109
    }
11110

11111
    if (!tDecodeIsEnd(pCoder)) {
×
11112
      int8_t hasExtSchema = 0;
×
11113
      TAOS_CHECK_EXIT(tDecodeI8(pCoder, &hasExtSchema));
×
11114
      if (hasExtSchema) {
×
11115
        TAOS_CHECK_EXIT(tDecodeSExtSchemas(pCoder, &pReq->pExtSchemas, pReq->ntb.schemaRow.nCols));
×
11116
      }
11117
    }
11118
  }
11119

11120
  tEndDecode(pCoder);
×
11121
_exit:
×
11122
  return code;
×
11123
}
11124

11125
void tDestroySVCreateTbReq(SVCreateTbReq *pReq, int32_t flags) {
×
11126
  if (pReq == NULL) return;
×
11127

11128
  if (flags & TSDB_MSG_FLG_ENCODE) {
×
11129
    // TODO
11130
  } else if (flags & TSDB_MSG_FLG_DECODE) {
×
11131
    taosMemoryFreeClear(pReq->comment);
×
11132

11133
    if (pReq->type == TSDB_CHILD_TABLE || pReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
×
11134
      taosArrayDestroy(pReq->ctb.tagName);
×
11135
    } else if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_VIRTUAL_NORMAL_TABLE) {
×
11136
      taosMemoryFreeClear(pReq->ntb.schemaRow.pSchema);
×
11137
    }
11138
  }
11139

11140
  taosMemoryFreeClear(pReq->colCmpr.pColCmpr);
×
11141
  taosMemoryFreeClear(pReq->colRef.pColRef);
×
11142
  taosMemoryFreeClear(pReq->sql);
×
11143
}
11144

11145
int tEncodeSVCreateTbBatchReq(SEncoder *pCoder, const SVCreateTbBatchReq *pReq) {
888✔
11146
  int32_t nReq = taosArrayGetSize(pReq->pArray);
888✔
11147

11148
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
888!
11149
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReq));
888!
11150
  for (int iReq = 0; iReq < nReq; iReq++) {
2,062✔
11151
    TAOS_CHECK_RETURN(tEncodeSVCreateTbReq(pCoder, (SVCreateTbReq *)taosArrayGet(pReq->pArray, iReq)));
1,174!
11152
  }
11153

11154
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->source));
1,776!
11155

11156
  tEndEncode(pCoder);
888✔
11157
  return 0;
888✔
11158
}
11159

11160
int tDecodeSVCreateTbBatchReq(SDecoder *pCoder, SVCreateTbBatchReq *pReq) {
×
11161
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
11162

11163
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
×
11164
  pReq->pReqs = (SVCreateTbReq *)tDecoderMalloc(pCoder, sizeof(SVCreateTbReq) * pReq->nReqs);
×
11165
  if (pReq->pReqs == NULL) {
×
11166
    TAOS_CHECK_RETURN(terrno);
×
11167
  }
11168
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
×
11169
    TAOS_CHECK_RETURN(tDecodeSVCreateTbReq(pCoder, pReq->pReqs + iReq));
×
11170
  }
11171

11172
  if (!tDecodeIsEnd(pCoder)) {
×
11173
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->source));
×
11174
  }
11175

11176
  tEndDecode(pCoder);
×
11177
  return 0;
×
11178
}
11179

11180
void tDeleteSVCreateTbBatchReq(SVCreateTbBatchReq *pReq) {
×
11181
  for (int32_t iReq = 0; iReq < pReq->nReqs; iReq++) {
×
11182
    SVCreateTbReq *pCreateReq = pReq->pReqs + iReq;
×
11183
    taosMemoryFreeClear(pCreateReq->sql);
×
11184
    taosMemoryFreeClear(pCreateReq->comment);
×
11185
    if (pCreateReq->type == TSDB_CHILD_TABLE || pCreateReq->type == TSDB_VIRTUAL_CHILD_TABLE) {
×
11186
      taosArrayDestroy(pCreateReq->ctb.tagName);
×
11187
      pCreateReq->ctb.tagName = NULL;
×
11188
    }
11189
  }
11190
}
×
11191

11192
int tEncodeSVCreateTbRsp(SEncoder *pCoder, const SVCreateTbRsp *pRsp) {
×
11193
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
11194

11195
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->code));
×
11196
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pRsp->pMeta ? 1 : 0));
×
11197
  if (pRsp->pMeta) {
×
11198
    TAOS_CHECK_RETURN(tEncodeSTableMetaRsp(pCoder, pRsp->pMeta));
×
11199
  }
11200

11201
  tEndEncode(pCoder);
×
11202
  return 0;
×
11203
}
11204

11205
int tDecodeSVCreateTbRsp(SDecoder *pCoder, SVCreateTbRsp *pRsp) {
660✔
11206
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
660!
11207

11208
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pRsp->code));
1,322!
11209

11210
  int32_t meta = 0;
661✔
11211
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &meta));
661!
11212
  if (meta) {
661✔
11213
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
589!
11214
    if (NULL == pRsp->pMeta) {
589!
11215
      TAOS_CHECK_RETURN(terrno);
×
11216
    }
11217
    TAOS_CHECK_RETURN(tDecodeSTableMetaRsp(pCoder, pRsp->pMeta));
589!
11218
  } else {
11219
    pRsp->pMeta = NULL;
72✔
11220
  }
11221

11222
  tEndDecode(pCoder);
660✔
11223
  return 0;
660✔
11224
}
11225

11226
void tFreeSVCreateTbRsp(void *param) {
×
11227
  if (NULL == param) {
×
11228
    return;
×
11229
  }
11230

11231
  SVCreateTbRsp *pRsp = (SVCreateTbRsp *)param;
×
11232
  if (pRsp->pMeta) {
×
11233
    taosMemoryFree(pRsp->pMeta->pSchemas);
×
11234
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
×
11235
    taosMemoryFree(pRsp->pMeta->pColRefs);
×
11236
    taosMemoryFree(pRsp->pMeta);
×
11237
  }
11238
}
11239

11240
// TDMT_VND_DROP_TABLE =================
11241
static int32_t tEncodeSVDropTbReq(SEncoder *pCoder, const SVDropTbReq *pReq) {
32✔
11242
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
32!
11243
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
64!
11244
  TAOS_CHECK_RETURN(tEncodeU64(pCoder, pReq->suid));
64!
11245
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->uid));
64!
11246
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->igNotExists));
64!
11247
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->isVirtual));
64!
11248

11249
  tEndEncode(pCoder);
32✔
11250
  return 0;
32✔
11251
}
11252

11253
static int32_t tDecodeSVDropTbReq(SDecoder *pCoder, SVDropTbReq *pReq) {
×
11254
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
11255
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
×
11256
  TAOS_CHECK_RETURN(tDecodeU64(pCoder, &pReq->suid));
×
11257
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->uid));
×
11258
  TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->igNotExists));
×
11259
  if (!tDecodeIsEnd(pCoder)) {
×
11260
    TAOS_CHECK_RETURN(tDecodeI8(pCoder, &pReq->isVirtual));
×
11261
  }
11262

11263
  tEndDecode(pCoder);
×
11264
  return 0;
×
11265
}
11266

11267
static int32_t tEncodeSVDropTbRsp(SEncoder *pCoder, const SVDropTbRsp *pReq) {
×
11268
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
11269
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->code));
×
11270
  tEndEncode(pCoder);
×
11271
  return 0;
×
11272
}
11273

11274
static int32_t tDecodeSVDropTbRsp(SDecoder *pCoder, SVDropTbRsp *pReq) {
×
11275
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
11276
  TAOS_CHECK_RETURN(tDecodeI32(pCoder, &pReq->code));
×
11277
  tEndDecode(pCoder);
×
11278
  return 0;
×
11279
}
11280

11281
int32_t tEncodeSVDropTbBatchReq(SEncoder *pCoder, const SVDropTbBatchReq *pReq) {
16✔
11282
  int32_t      nReqs = taosArrayGetSize(pReq->pArray);
16✔
11283
  SVDropTbReq *pDropTbReq;
11284

11285
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
16!
11286
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nReqs));
16!
11287
  for (int iReq = 0; iReq < nReqs; iReq++) {
48✔
11288
    pDropTbReq = (SVDropTbReq *)taosArrayGet(pReq->pArray, iReq);
32✔
11289
    TAOS_CHECK_RETURN(tEncodeSVDropTbReq(pCoder, pDropTbReq));
32!
11290
  }
11291

11292
  tEndEncode(pCoder);
16✔
11293
  return 0;
16✔
11294
}
11295

11296
int32_t tDecodeSVDropTbBatchReq(SDecoder *pCoder, SVDropTbBatchReq *pReq) {
×
11297
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
11298
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pReq->nReqs));
×
11299
  pReq->pReqs = (SVDropTbReq *)tDecoderMalloc(pCoder, sizeof(SVDropTbReq) * pReq->nReqs);
×
11300
  if (pReq->pReqs == NULL) {
×
11301
    TAOS_CHECK_RETURN(terrno);
×
11302
  }
11303
  for (int iReq = 0; iReq < pReq->nReqs; iReq++) {
×
11304
    TAOS_CHECK_RETURN(tDecodeSVDropTbReq(pCoder, pReq->pReqs + iReq));
×
11305
  }
11306

11307
  tEndDecode(pCoder);
×
11308
  return 0;
×
11309
}
11310

11311
int32_t tEncodeSVDropTbBatchRsp(SEncoder *pCoder, const SVDropTbBatchRsp *pRsp) {
×
11312
  int32_t nRsps = taosArrayGetSize(pRsp->pArray);
×
11313
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
11314
  TAOS_CHECK_RETURN(tEncodeI32v(pCoder, nRsps));
×
11315
  for (int iRsp = 0; iRsp < nRsps; iRsp++) {
×
11316
    TAOS_CHECK_RETURN(tEncodeSVDropTbRsp(pCoder, (SVDropTbRsp *)taosArrayGet(pRsp->pArray, iRsp)));
×
11317
  }
11318

11319
  tEndEncode(pCoder);
×
11320
  return 0;
×
11321
}
11322

11323
int32_t tDecodeSVDropTbBatchRsp(SDecoder *pCoder, SVDropTbBatchRsp *pRsp) {
×
11324
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
×
11325
  TAOS_CHECK_RETURN(tDecodeI32v(pCoder, &pRsp->nRsps));
×
11326
  pRsp->pRsps = (SVDropTbRsp *)tDecoderMalloc(pCoder, sizeof(SVDropTbRsp) * pRsp->nRsps);
×
11327
  if (pRsp->pRsps == NULL) {
×
11328
    TAOS_CHECK_RETURN(terrno);
×
11329
  }
11330
  for (int iRsp = 0; iRsp < pRsp->nRsps; iRsp++) {
×
11331
    TAOS_CHECK_RETURN(tDecodeSVDropTbRsp(pCoder, pRsp->pRsps + iRsp));
×
11332
  }
11333

11334
  tEndDecode(pCoder);
×
11335
  return 0;
×
11336
}
11337

11338
int32_t tEncodeSVDropStbReq(SEncoder *pCoder, const SVDropStbReq *pReq) {
44✔
11339
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
44!
11340
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->name));
88!
11341
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
88!
11342
  tEndEncode(pCoder);
44✔
11343
  return 0;
44✔
11344
}
11345

11346
int32_t tDecodeSVDropStbReq(SDecoder *pCoder, SVDropStbReq *pReq) {
4✔
11347
  TAOS_CHECK_RETURN(tStartDecode(pCoder));
4!
11348
  TAOS_CHECK_RETURN(tDecodeCStr(pCoder, &pReq->name));
8!
11349
  TAOS_CHECK_RETURN(tDecodeI64(pCoder, &pReq->suid));
8!
11350
  tEndDecode(pCoder);
4✔
11351
  return 0;
4✔
11352
}
11353

11354
static int32_t tEncodeSSubmitBlkRsp(SEncoder *pEncoder, const SSubmitBlkRsp *pBlock) {
×
11355
  int32_t code = 0;
×
11356
  int32_t lino;
11357
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
×
11358

11359
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->code));
×
11360
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pBlock->uid));
×
11361
  if (pBlock->tblFName) {
×
11362
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pBlock->tblFName));
×
11363
  } else {
11364
    TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, ""));
×
11365
  }
11366
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->numOfRows));
×
11367
  TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pBlock->affectedRows));
×
11368
  TAOS_CHECK_EXIT(tEncodeI64v(pEncoder, pBlock->sver));
×
11369
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pBlock->pMeta ? 1 : 0));
×
11370
  if (pBlock->pMeta) {
×
11371
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pBlock->pMeta));
×
11372
  }
11373

11374
  tEndEncode(pEncoder);
×
11375
_exit:
×
11376
  return code;
×
11377
}
11378

11379
void tFreeSSubmitRsp(SSubmitRsp *pRsp) {
30✔
11380
  if (NULL == pRsp) return;
30!
11381

11382
  if (pRsp->pBlocks) {
×
11383
    for (int32_t i = 0; i < pRsp->nBlocks; ++i) {
×
11384
      SSubmitBlkRsp *sRsp = pRsp->pBlocks + i;
×
11385
      taosMemoryFree(sRsp->tblFName);
×
11386
      tFreeSTableMetaRsp(sRsp->pMeta);
×
11387
      taosMemoryFree(sRsp->pMeta);
×
11388
    }
11389

11390
    taosMemoryFree(pRsp->pBlocks);
×
11391
  }
11392

11393
  taosMemoryFree(pRsp);
×
11394
}
11395

11396
int32_t tEncodeSVAlterTbReq(SEncoder *pEncoder, const SVAlterTbReq *pReq) {
56✔
11397
  int32_t code = 0;
56✔
11398
  int32_t lino;
11399

11400
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
56!
11401

11402
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tbName));
112!
11403
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->action));
112!
11404
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->colId));
112!
11405
  switch (pReq->action) {
56!
11406
    case TSDB_ALTER_TABLE_ADD_COLUMN:
8✔
11407
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
16!
11408
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
16!
11409
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
16!
11410
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
16!
11411
      break;
8✔
11412
    case TSDB_ALTER_TABLE_DROP_COLUMN:
8✔
11413
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
16!
11414
      break;
8✔
11415
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
8✔
11416
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
16!
11417
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->colModType));
16!
11418
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->colModBytes));
16!
11419
      break;
8✔
11420
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
8✔
11421
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
16!
11422
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colNewName));
16!
11423
      break;
8✔
11424
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
8✔
11425
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->tagName));
16!
11426
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->isNull));
16!
11427
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->tagType));
16!
11428
      if (!pReq->isNull) {
8!
11429
        TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pReq->pTagVal, pReq->nTagVal));
16!
11430
      }
11431
      break;
8✔
11432
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
×
11433
      int32_t nTags = taosArrayGetSize(pReq->pMultiTag);
×
11434
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, nTags));
×
11435
      for (int32_t i = 0; i < nTags; i++) {
×
11436
        SMultiTagUpateVal *pTag = taosArrayGet(pReq->pMultiTag, i);
×
11437
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pTag->colId));
×
11438
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTag->tagName));
×
11439
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->isNull));
×
11440
        TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTag->tagType));
×
11441
        if (!pTag->isNull) {
×
11442
          TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pTag->pTagVal, pTag->nTagVal));
×
11443
        }
11444
      }
11445
      break;
×
11446
    }
11447
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
16✔
11448
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->updateTTL));
32!
11449
      if (pReq->updateTTL) {
16✔
11450
        TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newTTL));
16!
11451
      }
11452
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->newCommentLen));
32!
11453
      if (pReq->newCommentLen > 0) {
16✔
11454
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->newComment));
16!
11455
      }
11456
      break;
16✔
11457
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
×
11458
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
11459
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
×
11460
      break;
×
11461
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
×
11462
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
11463
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
×
11464
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
×
11465
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
×
11466
      TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pReq->compress));
×
11467
      break;
×
11468
    case TSDB_ALTER_TABLE_ALTER_COLUMN_REF:
×
11469
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
11470
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refDbName));
×
11471
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refTbName));
×
11472
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refColName));
×
11473
      break;
×
11474
    case TSDB_ALTER_TABLE_REMOVE_COLUMN_REF:
×
11475
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
11476
      break;
×
11477
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COLUMN_REF:
×
11478
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->colName));
×
11479
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->type));
×
11480
      TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->flags));
×
11481
      TAOS_CHECK_EXIT(tEncodeI32v(pEncoder, pReq->bytes));
×
11482
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refDbName));
×
11483
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refTbName));
×
11484
      TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pReq->refColName));
×
11485
      break;
×
11486
    default:
×
11487
      break;
×
11488
  }
11489
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
112!
11490
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->source));
112!
11491
  if (pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION || pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN) {
56!
11492
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->typeMod));
16!
11493
  }
11494

11495
  tEndEncode(pEncoder);
56✔
11496
_exit:
56✔
11497
  return code;
56✔
11498
}
11499

11500
static int32_t tDecodeSVAlterTbReqCommon(SDecoder *pDecoder, SVAlterTbReq *pReq) {
14✔
11501
  int32_t code = 0;
14✔
11502
  int32_t lino;
11503

11504
  TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tbName));
28!
11505
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->action));
28!
11506
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->colId));
28!
11507
  switch (pReq->action) {
14!
11508
    case TSDB_ALTER_TABLE_ADD_COLUMN:
2✔
11509
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
4!
11510
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
4!
11511
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
4!
11512
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
4!
11513
      break;
2✔
11514
    case TSDB_ALTER_TABLE_DROP_COLUMN:
2✔
11515
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
4!
11516
      break;
2✔
11517
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES:
2✔
11518
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
4!
11519
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->colModType));
4!
11520
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->colModBytes));
4!
11521
      break;
2✔
11522
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME:
2✔
11523
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
4!
11524
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colNewName));
4!
11525
      break;
2✔
11526
    case TSDB_ALTER_TABLE_UPDATE_TAG_VAL:
2✔
11527
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->tagName));
4!
11528
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->isNull));
4!
11529
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->tagType));
4!
11530
      if (!pReq->isNull) {
2!
11531
        TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &pReq->pTagVal, &pReq->nTagVal));
4!
11532
      }
11533
      break;
2✔
11534
    case TSDB_ALTER_TABLE_UPDATE_MULTI_TAG_VAL: {
×
11535
      int32_t nTags;
11536
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &nTags));
×
11537
      pReq->pMultiTag = taosArrayInit(nTags, sizeof(SMultiTagUpateVal));
×
11538
      if (pReq->pMultiTag == NULL) {
×
11539
        TAOS_CHECK_EXIT(terrno);
×
11540
      }
11541
      for (int32_t i = 0; i < nTags; i++) {
×
11542
        SMultiTagUpateVal tag;
11543
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &tag.colId));
×
11544
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &tag.tagName));
×
11545
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.isNull));
×
11546
        TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &tag.tagType));
×
11547
        if (!tag.isNull) {
×
11548
          TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, &tag.pTagVal, &tag.nTagVal));
×
11549
        }
11550
        if (taosArrayPush(pReq->pMultiTag, &tag) == NULL) {
×
11551
          TAOS_CHECK_EXIT(terrno);
×
11552
        }
11553
      }
11554
      break;
×
11555
    }
11556
    case TSDB_ALTER_TABLE_UPDATE_OPTIONS:
4✔
11557
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->updateTTL));
8!
11558
      if (pReq->updateTTL) {
4✔
11559
        TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newTTL));
4!
11560
      }
11561
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->newCommentLen));
8!
11562
      if (pReq->newCommentLen > 0) {
4✔
11563
        TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->newComment));
4!
11564
      }
11565
      break;
4✔
11566
    case TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS:
×
11567
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
×
11568
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
×
11569
      break;
×
11570
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION:
×
11571
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
×
11572
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
×
11573
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
×
11574
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
×
11575
      TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->compress));
×
11576
      break;
×
11577
    case TSDB_ALTER_TABLE_ALTER_COLUMN_REF:
×
11578
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
×
11579
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refDbName));
×
11580
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refTbName));
×
11581
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refColName));
×
11582
      break;
×
11583
    case TSDB_ALTER_TABLE_REMOVE_COLUMN_REF:
×
11584
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
×
11585
      break;
×
11586
    case TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COLUMN_REF:
×
11587
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->colName));
×
11588
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->type));
×
11589
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->flags));
×
11590
      TAOS_CHECK_EXIT(tDecodeI32v(pDecoder, &pReq->bytes));
×
11591
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refDbName));
×
11592
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refTbName));
×
11593
      TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &pReq->refColName));
×
11594
      break;
×
11595
    default:
×
11596
      break;
×
11597
  }
11598
_exit:
14✔
11599
  return code;
14✔
11600
}
11601

11602
int32_t tDecodeSVAlterTbReq(SDecoder *pDecoder, SVAlterTbReq *pReq) {
14✔
11603
  int32_t code = 0;
14✔
11604
  int32_t lino;
11605

11606
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
14!
11607
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
14!
11608

11609
  pReq->ctimeMs = 0;
14✔
11610
  if (!tDecodeIsEnd(pDecoder)) {
14!
11611
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
28!
11612
  }
11613
  if (!tDecodeIsEnd(pDecoder)) {
14!
11614
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->source));
28!
11615
  }
11616
  if (pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN || pReq->action == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) {
14!
11617
    if (!tDecodeIsEnd(pDecoder)) {
2!
11618
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->typeMod));
4!
11619
    }
11620
  }
11621

11622
  tEndDecode(pDecoder);
14✔
11623
_exit:
14✔
11624
  return code;
14✔
11625
}
11626

11627
int32_t tDecodeSVAlterTbReqSetCtime(SDecoder *pDecoder, SVAlterTbReq *pReq, int64_t ctimeMs) {
×
11628
  int32_t code = 0;
×
11629
  int32_t lino;
11630

11631
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
×
11632
  TAOS_CHECK_EXIT(tDecodeSVAlterTbReqCommon(pDecoder, pReq));
×
11633

11634
  pReq->ctimeMs = 0;
×
11635
  if (!tDecodeIsEnd(pDecoder)) {
×
11636
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
×
11637
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
×
11638
  }
11639

11640
  tEndDecode(pDecoder);
×
11641
_exit:
×
11642
  return code;
×
11643
}
11644

11645
void tfreeMultiTagUpateVal(void *val) {
×
11646
  SMultiTagUpateVal *pTag = val;
×
11647
  taosMemoryFree(pTag->tagName);
×
11648
  for (int i = 0; i < taosArrayGetSize(pTag->pTagArray); ++i) {
×
11649
    STagVal *p = (STagVal *)taosArrayGet(pTag->pTagArray, i);
×
11650
    if (IS_VAR_DATA_TYPE(p->type)) {
×
11651
      taosMemoryFreeClear(p->pData);
×
11652
    }
11653
  }
11654

11655
  taosArrayDestroy(pTag->pTagArray);
×
11656
}
×
11657
int32_t tEncodeSVAlterTbRsp(SEncoder *pEncoder, const SVAlterTbRsp *pRsp) {
×
11658
  int32_t code = 0;
×
11659
  int32_t lino;
11660

11661
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
×
11662
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->code));
×
11663
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta ? 1 : 0));
×
11664
  if (pRsp->pMeta) {
×
11665
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
×
11666
  }
11667
  tEndEncode(pEncoder);
×
11668
_exit:
×
11669
  return code;
×
11670
}
11671

11672
int32_t tDecodeSVAlterTbRsp(SDecoder *pDecoder, SVAlterTbRsp *pRsp) {
×
11673
  int32_t meta = 0;
×
11674
  int32_t code = 0;
×
11675
  int32_t lino;
11676
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
×
11677
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->code));
×
11678
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
×
11679
  if (meta) {
×
11680
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
×
11681
    if (NULL == pRsp->pMeta) {
×
11682
      TAOS_CHECK_EXIT(terrno);
×
11683
    }
11684
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
×
11685
  }
11686
  tEndDecode(pDecoder);
×
11687
_exit:
×
11688
  return code;
×
11689
}
11690

11691
int32_t tEncodeSMAlterStbRsp(SEncoder *pEncoder, const SMAlterStbRsp *pRsp) {
16✔
11692
  int32_t code = 0;
16✔
11693
  int32_t lino;
11694

11695
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
16!
11696
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
32!
11697
  if (pRsp->pMeta->pSchemas) {
16!
11698
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
16!
11699
  }
11700
  tEndEncode(pEncoder);
16✔
11701
_exit:
16✔
11702
  return code;
16✔
11703
}
11704

11705
int32_t tDecodeSMAlterStbRsp(SDecoder *pDecoder, SMAlterStbRsp *pRsp) {
×
11706
  int32_t meta = 0;
×
11707
  int32_t code = 0;
×
11708
  int32_t lino;
11709

11710
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
×
11711
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
×
11712
  if (meta) {
×
11713
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
×
11714
    if (NULL == pRsp->pMeta) {
×
11715
      TAOS_CHECK_EXIT(terrno);
×
11716
    }
11717
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
×
11718
  }
11719
  tEndDecode(pDecoder);
×
11720
_exit:
×
11721
  return code;
×
11722
}
11723

11724
void tFreeSMAlterStbRsp(SMAlterStbRsp *pRsp) {
8✔
11725
  if (NULL == pRsp) {
8!
11726
    return;
×
11727
  }
11728

11729
  if (pRsp->pMeta) {
8!
11730
    taosMemoryFree(pRsp->pMeta->pSchemas);
8!
11731
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
8!
11732
    taosMemoryFree(pRsp->pMeta->pColRefs);
8!
11733
    taosMemoryFree(pRsp->pMeta);
8!
11734
  }
11735
}
11736

11737
int32_t tEncodeSMCreateStbRsp(SEncoder *pEncoder, const SMCreateStbRsp *pRsp) {
18✔
11738
  int32_t code = 0;
18✔
11739
  int32_t lino;
11740

11741
  TAOS_CHECK_EXIT(tStartEncode(pEncoder));
18!
11742
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->pMeta->pSchemas ? 1 : 0));
36!
11743
  if (pRsp->pMeta->pSchemas) {
18!
11744
    TAOS_CHECK_EXIT(tEncodeSTableMetaRsp(pEncoder, pRsp->pMeta));
18!
11745
  }
11746
  tEndEncode(pEncoder);
18✔
11747

11748
_exit:
18✔
11749
  return code;
18✔
11750
}
11751

11752
int32_t tDecodeSMCreateStbRsp(SDecoder *pDecoder, SMCreateStbRsp *pRsp) {
36✔
11753
  int32_t meta = 0;
36✔
11754
  int32_t code = 0;
36✔
11755
  int32_t lino;
11756

11757
  TAOS_CHECK_EXIT(tStartDecode(pDecoder));
36!
11758
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &meta));
36!
11759
  if (meta) {
36!
11760
    pRsp->pMeta = taosMemoryCalloc(1, sizeof(STableMetaRsp));
36!
11761
    if (NULL == pRsp->pMeta) {
36!
11762
      TAOS_CHECK_EXIT(terrno);
×
11763
    }
11764
    TAOS_CHECK_EXIT(tDecodeSTableMetaRsp(pDecoder, pRsp->pMeta));
36!
11765
  }
11766
  tEndDecode(pDecoder);
36✔
11767

11768
  return code;
36✔
11769

11770
_exit:
×
11771
  tFreeSTableMetaRsp(pRsp->pMeta);
×
11772
  taosMemoryFreeClear(pRsp->pMeta);
×
11773
  return code;
×
11774
}
11775

11776
void tFreeSMCreateStbRsp(SMCreateStbRsp *pRsp) {
9✔
11777
  if (NULL == pRsp) {
9!
11778
    return;
×
11779
  }
11780

11781
  if (pRsp->pMeta) {
9!
11782
    taosMemoryFree(pRsp->pMeta->pSchemas);
9!
11783
    taosMemoryFree(pRsp->pMeta->pSchemaExt);
9!
11784
    taosMemoryFree(pRsp->pMeta->pColRefs);
9!
11785
    taosMemoryFree(pRsp->pMeta);
9!
11786
  }
11787
}
11788

11789
int32_t tEncodeSTqOffsetVal(SEncoder *pEncoder, const STqOffsetVal *pOffsetVal) {
4✔
11790
  int32_t code = 0;
4✔
11791
  int32_t lino;
11792

11793
  int8_t type = pOffsetVal->type < 0 ? pOffsetVal->type : (TQ_OFFSET_VERSION << 4) | pOffsetVal->type;
4!
11794
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, type));
8!
11795
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
4!
11796
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->uid));
×
11797
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->ts));
×
11798
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pOffsetVal->primaryKey.type));
×
11799
    if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
×
11800
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pOffsetVal->primaryKey.pData, pOffsetVal->primaryKey.nData));
×
11801
    } else {
11802
      TAOS_CHECK_EXIT(tEncodeI64(pEncoder, VALUE_GET_TRIVIAL_DATUM(&pOffsetVal->primaryKey)));
×
11803
    }
11804

11805
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
4!
11806
    TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pOffsetVal->version));
8!
11807
  } else {
11808
    // do nothing
11809
  }
11810
_exit:
×
11811
  return code;
4✔
11812
}
11813

11814
int32_t tDecodeSTqOffsetVal(SDecoder *pDecoder, STqOffsetVal *pOffsetVal) {
1✔
11815
  int32_t code = 0;
1✔
11816
  int32_t lino;
11817

11818
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->type));
2!
11819
  int8_t offsetVersion = 0;
1✔
11820
  if (pOffsetVal->type > 0) {
1!
11821
    offsetVersion = (pOffsetVal->type >> 4);
1✔
11822
    pOffsetVal->type = pOffsetVal->type & 0x0F;
1✔
11823
  }
11824
  if (pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pOffsetVal->type == TMQ_OFFSET__SNAPSHOT_META) {
1!
11825
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->uid));
×
11826
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->ts));
×
11827
    if (offsetVersion >= TQ_OFFSET_VERSION) {
×
11828
      TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pOffsetVal->primaryKey.type));
×
11829
      if (IS_VAR_DATA_TYPE(pOffsetVal->primaryKey.type)) {
×
11830
        TAOS_CHECK_EXIT(
×
11831
            tDecodeBinaryAlloc32(pDecoder, (void **)&pOffsetVal->primaryKey.pData, &pOffsetVal->primaryKey.nData));
11832
      } else {
11833
        TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &VALUE_GET_TRIVIAL_DATUM(&pOffsetVal->primaryKey)));
×
11834
      }
11835
    }
11836
  } else if (pOffsetVal->type == TMQ_OFFSET__LOG) {
1!
11837
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pOffsetVal->version));
2!
11838
  } else {
11839
    // do nothing
11840
  }
11841
_exit:
×
11842
  return code;
1✔
11843
}
11844

11845
void tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) {
5✔
11846
  if (pVal->type == TMQ_OFFSET__RESET_NONE) {
5!
11847
    (void)snprintf(buf, maxLen, "none");
×
11848
  } else if (pVal->type == TMQ_OFFSET__RESET_EARLIEST) {
5!
11849
    (void)snprintf(buf, maxLen, "earliest");
5✔
11850
  } else if (pVal->type == TMQ_OFFSET__RESET_LATEST) {
×
11851
    (void)snprintf(buf, maxLen, "latest");
×
11852
  } else if (pVal->type == TMQ_OFFSET__LOG) {
×
11853
    (void)snprintf(buf, maxLen, "wal:%" PRId64, pVal->version);
×
11854
  } else if (pVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pVal->type == TMQ_OFFSET__SNAPSHOT_META) {
×
11855
    if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
×
11856
      char *tmp = taosMemoryCalloc(1, pVal->primaryKey.nData + 1);
×
11857
      if (tmp == NULL) return;
×
11858
      (void)memcpy(tmp, pVal->primaryKey.pData, pVal->primaryKey.nData);
×
11859
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%s", pVal->uid, pVal->ts,
×
11860
                     pVal->primaryKey.type, tmp);
×
11861
      taosMemoryFree(tmp);
×
11862
    } else {
11863
      (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%" PRId64, pVal->uid, pVal->ts,
×
11864
                     pVal->primaryKey.type, VALUE_GET_TRIVIAL_DATUM(&pVal->primaryKey));
×
11865
    }
11866
  }
11867
}
11868

11869
bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
×
11870
  if (pLeft->type == pRight->type) {
×
11871
    if (pLeft->type == TMQ_OFFSET__LOG) {
×
11872
      return pLeft->version == pRight->version;
×
11873
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_DATA) {
×
11874
      if (pLeft->primaryKey.type != 0) {
×
11875
        if (pLeft->primaryKey.type != pRight->primaryKey.type) return false;
×
11876
        if (tValueCompare(&pLeft->primaryKey, &pRight->primaryKey) != 0) return false;
×
11877
      }
11878
      return pLeft->uid == pRight->uid && pLeft->ts == pRight->ts;
×
11879
    } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_META) {
×
11880
      return pLeft->uid == pRight->uid;
×
11881
    } else {
11882
      uError("offset type:%d", pLeft->type);
×
11883
    }
11884
  }
11885
  return false;
×
11886
}
11887

11888
void tOffsetCopy(STqOffsetVal *pLeft, const STqOffsetVal *pRight) {
×
11889
  tOffsetDestroy(pLeft);
×
11890
  *pLeft = *pRight;
×
11891
  if (IS_VAR_DATA_TYPE(pRight->primaryKey.type)) {
×
11892
    pLeft->primaryKey.pData = taosMemoryMalloc(pRight->primaryKey.nData);
×
11893
    if (pLeft->primaryKey.pData == NULL) {
×
11894
      uError("failed to allocate memory for offset");
×
11895
      return;
×
11896
    }
11897
    (void)memcpy(pLeft->primaryKey.pData, pRight->primaryKey.pData, pRight->primaryKey.nData);
×
11898
  }
11899
}
11900

11901
void tOffsetDestroy(void *param) {
1✔
11902
  if (param == NULL) return;
1!
11903
  STqOffsetVal *pVal = (STqOffsetVal *)param;
1✔
11904
  if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) {
1!
11905
    taosMemoryFreeClear(pVal->primaryKey.pData);
×
11906
  }
11907
}
11908

11909
void tDeleteSTqOffset(void *param) {
2✔
11910
  if (param == NULL) return;
2✔
11911
  STqOffset *pVal = (STqOffset *)param;
1✔
11912
  tOffsetDestroy(&pVal->val);
1✔
11913
}
11914

11915
int32_t tEncodeSTqOffset(SEncoder *pEncoder, const STqOffset *pOffset) {
4✔
11916
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pOffset->val));
4!
11917
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pOffset->subKey));
8!
11918
  return 0;
4✔
11919
}
11920

11921
int32_t tDecodeSTqOffset(SDecoder *pDecoder, STqOffset *pOffset) {
1✔
11922
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pOffset->val));
1!
11923
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pOffset->subKey));
1!
11924
  return 0;
1✔
11925
}
11926

11927
int32_t tEncodeMqVgOffset(SEncoder *pEncoder, const SMqVgOffset *pOffset) {
×
11928
  TAOS_CHECK_RETURN(tEncodeSTqOffset(pEncoder, &pOffset->offset));
×
11929
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pOffset->consumerId));
×
11930
  return 0;
×
11931
}
11932

11933
int32_t tDecodeMqVgOffset(SDecoder *pDecoder, SMqVgOffset *pOffset) {
×
11934
  TAOS_CHECK_RETURN(tDecodeSTqOffset(pDecoder, &pOffset->offset));
×
11935
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pOffset->consumerId));
×
11936
  return 0;
×
11937
}
11938

11939
int32_t tEncodeSTqCheckInfo(SEncoder *pEncoder, const STqCheckInfo *pInfo) {
×
11940
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pInfo->topic));
×
11941
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pInfo->ntbUid));
×
11942
  int32_t sz = taosArrayGetSize(pInfo->colIdList);
×
11943
  TAOS_CHECK_RETURN(tEncodeI32(pEncoder, sz));
×
11944
  for (int32_t i = 0; i < sz; i++) {
×
11945
    int16_t colId = *(int16_t *)taosArrayGet(pInfo->colIdList, i);
×
11946
    TAOS_CHECK_RETURN(tEncodeI16(pEncoder, colId));
×
11947
  }
11948
  return pEncoder->pos;
×
11949
}
11950

11951
int32_t tDecodeSTqCheckInfo(SDecoder *pDecoder, STqCheckInfo *pInfo) {
×
11952
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pInfo->topic));
×
11953
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pInfo->ntbUid));
×
11954
  int32_t sz = 0;
×
11955
  TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &sz));
×
11956
  pInfo->colIdList = taosArrayInit(sz, sizeof(int16_t));
×
11957
  if (pInfo->colIdList == NULL) {
×
11958
    TAOS_CHECK_RETURN(terrno);
×
11959
  }
11960
  for (int32_t i = 0; i < sz; i++) {
×
11961
    int16_t colId = 0;
×
11962
    TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &colId));
×
11963
    if (taosArrayPush(pInfo->colIdList, &colId) == NULL) {
×
11964
      TAOS_CHECK_RETURN(terrno);
×
11965
    }
11966
  }
11967
  return 0;
×
11968
}
11969
void tDeleteSTqCheckInfo(STqCheckInfo *pInfo) { taosArrayDestroy(pInfo->colIdList); }
20✔
11970

11971
int32_t tEncodeSMqRebVgReq(SEncoder *pCoder, const SMqRebVgReq *pReq) {
×
11972
  TAOS_CHECK_RETURN(tStartEncode(pCoder));
×
11973
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->leftForVer));
×
11974
  TAOS_CHECK_RETURN(tEncodeI32(pCoder, pReq->vgId));
×
11975
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->oldConsumerId));
×
11976
  TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->newConsumerId));
×
11977
  TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->subKey));
×
11978
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->subType));
×
11979
  TAOS_CHECK_RETURN(tEncodeI8(pCoder, pReq->withMeta));
×
11980

11981
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
×
11982
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
×
11983
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
×
11984
    TAOS_CHECK_RETURN(tEncodeI64(pCoder, pReq->suid));
×
11985
    TAOS_CHECK_RETURN(tEncodeCStr(pCoder, pReq->qmsg));
×
11986
  }
11987
  tEndEncode(pCoder);
×
11988
  return 0;
×
11989
}
11990

11991
int32_t tDecodeSMqRebVgReq(SDecoder *pCoder, SMqRebVgReq *pReq) {
×
11992
  int32_t code = 0;
×
11993
  int32_t lino;
11994

11995
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
×
11996

11997
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->leftForVer));
×
11998

11999
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pReq->vgId));
×
12000
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->oldConsumerId));
×
12001
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->newConsumerId));
×
12002
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pReq->subKey));
×
12003
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->subType));
×
12004
  TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pReq->withMeta));
×
12005

12006
  if (pReq->subType == TOPIC_SUB_TYPE__COLUMN) {
×
12007
    TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
×
12008
  } else if (pReq->subType == TOPIC_SUB_TYPE__TABLE) {
×
12009
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pReq->suid));
×
12010
    if (!tDecodeIsEnd(pCoder)) {
×
12011
      TAOS_CHECK_EXIT(tDecodeCStr(pCoder, &pReq->qmsg));
×
12012
    }
12013
  }
12014

12015
  tEndDecode(pCoder);
×
12016
_exit:
×
12017
  return code;
×
12018
}
12019

12020
int32_t tEncodeDeleteRes(SEncoder *pCoder, const SDeleteRes *pRes) {
×
12021
  int32_t nUid = taosArrayGetSize(pRes->uidList);
×
12022
  int32_t code = 0;
×
12023
  int32_t lino;
12024

12025
  TAOS_CHECK_EXIT(tEncodeU64(pCoder, pRes->suid));
×
12026
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, nUid));
×
12027
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
×
12028
    TAOS_CHECK_EXIT(tEncodeU64(pCoder, *(uint64_t *)taosArrayGet(pRes->uidList, iUid)));
×
12029
  }
12030
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->skey));
×
12031
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ekey));
×
12032
  TAOS_CHECK_EXIT(tEncodeI64v(pCoder, pRes->affectedRows));
×
12033

12034
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tableFName));
×
12035
  TAOS_CHECK_EXIT(tEncodeCStr(pCoder, pRes->tsColName));
×
12036
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pRes->ctimeMs));
×
12037
  TAOS_CHECK_EXIT(tEncodeI8(pCoder, pRes->source));
×
12038

12039
_exit:
×
12040
  return code;
×
12041
}
12042

12043
int32_t tDecodeDeleteRes(SDecoder *pCoder, SDeleteRes *pRes) {
×
12044
  int32_t  nUid;
12045
  uint64_t uid;
12046
  int32_t  code = 0;
×
12047
  int32_t  lino;
12048

12049
  TAOS_CHECK_EXIT(tDecodeU64(pCoder, &pRes->suid));
×
12050
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &nUid));
×
12051
  for (int32_t iUid = 0; iUid < nUid; iUid++) {
×
12052
    TAOS_CHECK_EXIT(tDecodeU64(pCoder, &uid));
×
12053
    if (pRes->uidList) {
×
12054
      if (taosArrayPush(pRes->uidList, &uid) == NULL) {
×
12055
        TAOS_CHECK_EXIT(terrno);
×
12056
      }
12057
    }
12058
  }
12059
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->skey));
×
12060
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ekey));
×
12061
  TAOS_CHECK_EXIT(tDecodeI64v(pCoder, &pRes->affectedRows));
×
12062

12063
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tableFName));
×
12064
  TAOS_CHECK_EXIT(tDecodeCStrTo(pCoder, pRes->tsColName));
×
12065

12066
  pRes->ctimeMs = 0;
×
12067
  if (!tDecodeIsEnd(pCoder)) {
×
12068
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pRes->ctimeMs));
×
12069
  }
12070
  if (!tDecodeIsEnd(pCoder)) {
×
12071
    TAOS_CHECK_EXIT(tDecodeI8(pCoder, &pRes->source));
×
12072
  }
12073

12074
_exit:
×
12075
  return code;
×
12076
}
12077

12078
int32_t tEncodeMqMetaRsp(SEncoder *pEncoder, const SMqMetaRsp *pRsp) {
×
12079
  TAOS_CHECK_RETURN(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
×
12080
  TAOS_CHECK_RETURN(tEncodeI16(pEncoder, pRsp->resMsgType));
×
12081
  TAOS_CHECK_RETURN(tEncodeBinary(pEncoder, pRsp->metaRsp, pRsp->metaRspLen));
×
12082
  return 0;
×
12083
}
12084

12085
int32_t tDecodeMqMetaRsp(SDecoder *pDecoder, SMqMetaRsp *pRsp) {
×
12086
  TAOS_CHECK_RETURN(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
×
12087
  TAOS_CHECK_RETURN(tDecodeI16(pDecoder, &pRsp->resMsgType));
×
12088
  TAOS_CHECK_RETURN(tDecodeBinaryAlloc(pDecoder, &pRsp->metaRsp, (uint64_t *)&pRsp->metaRspLen));
×
12089
  return 0;
×
12090
}
12091

12092
void tDeleteMqMetaRsp(SMqMetaRsp *pRsp) { taosMemoryFree(pRsp->metaRsp); }
×
12093

12094
int32_t tEncodeMqDataRspCommon(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
×
12095
  int32_t code = 0;
×
12096
  int32_t lino;
12097

12098
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->reqOffset));
×
12099
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
×
12100
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->blockNum));
×
12101
  if (pRsp->blockNum != 0) {
×
12102
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withTbName));
×
12103
    TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->withSchema));
×
12104

12105
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
×
12106
      int32_t bLen = *(int32_t *)taosArrayGet(pRsp->blockDataLen, i);
×
12107
      void   *data = taosArrayGetP(pRsp->blockData, i);
×
12108
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, (const uint8_t *)data, bLen));
×
12109
      if (pRsp->withSchema) {
×
12110
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosArrayGetP(pRsp->blockSchema, i);
×
12111
        TAOS_CHECK_EXIT(tEncodeSSchemaWrapper(pEncoder, pSW));
×
12112
      }
12113
      if (pRsp->withTbName) {
×
12114
        char *tbName = (char *)taosArrayGetP(pRsp->blockTbName, i);
×
12115
        TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, tbName));
×
12116
      }
12117
    }
12118
  }
12119

12120
_exit:
×
12121
  return code;
×
12122
}
12123

12124
int32_t tEncodeMqDataRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
×
12125
  TAOS_CHECK_RETURN(tEncodeMqDataRspCommon(pEncoder, pRsp));
×
12126
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pRsp->sleepTime));
×
12127

12128
  return 0;
×
12129
}
12130

12131
int32_t tDecodeMqDataRspCommon(SDecoder *pDecoder, SMqDataRsp *pRsp) {
×
12132
  int32_t code = 0;
×
12133
  int32_t lino;
12134

12135
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
×
12136
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
×
12137
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
×
12138

12139
  if (pRsp->blockNum != 0) {
×
12140
    if ((pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
×
12141
      TAOS_CHECK_EXIT(terrno);
×
12142
    }
12143
    if ((pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(int32_t))) == NULL) {
×
12144
      TAOS_CHECK_EXIT(terrno);
×
12145
    }
12146
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withTbName));
×
12147
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->withSchema));
×
12148
    if (pRsp->withTbName) {
×
12149
      if ((pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
×
12150
        TAOS_CHECK_EXIT(terrno);
×
12151
      }
12152
    }
12153
    if (pRsp->withSchema) {
×
12154
      if ((pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) {
×
12155
        TAOS_CHECK_EXIT(terrno);
×
12156
      }
12157
    }
12158

12159
    for (int32_t i = 0; i < pRsp->blockNum; i++) {
×
12160
      void    *data = NULL;
×
12161
      uint32_t bLen = 0;
×
12162
      TAOS_CHECK_EXIT(tDecodeBinary(pDecoder, (uint8_t**)&data, &bLen));
×
12163
      if (taosArrayPush(pRsp->blockData, &data) == NULL) {
×
12164
        TAOS_CHECK_EXIT(terrno);
×
12165
      }
12166
      pRsp->blockDataElementFree = false;
×
12167

12168
      int32_t len = bLen;
×
12169
      if (taosArrayPush(pRsp->blockDataLen, &len) == NULL) {
×
12170
        TAOS_CHECK_EXIT(terrno);
×
12171
      }
12172

12173
      if (pRsp->withSchema) {
×
12174
        SSchemaWrapper *pSW = (SSchemaWrapper *)taosMemoryCalloc(1, sizeof(SSchemaWrapper));
×
12175
        if (pSW == NULL) {
×
12176
          TAOS_CHECK_EXIT(terrno);
×
12177
        }
12178

12179
        if ((code = tDecodeSSchemaWrapper(pDecoder, pSW))) {
×
12180
          taosMemoryFree(pSW);
×
12181
          goto _exit;
×
12182
        }
12183

12184
        if (taosArrayPush(pRsp->blockSchema, &pSW) == NULL) {
×
12185
          taosMemoryFree(pSW);
×
12186
          TAOS_CHECK_EXIT(terrno);
×
12187
        }
12188
      }
12189

12190
      if (pRsp->withTbName) {
×
12191
        char *tbName;
12192
        TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &tbName));
×
12193
        if (taosArrayPush(pRsp->blockTbName, &tbName) == NULL) {
×
12194
          TAOS_CHECK_EXIT(terrno);
×
12195
        }
12196
      }
12197
    }
12198
  }
12199

12200
_exit:
×
12201
  return code;
×
12202
}
12203

12204
int32_t tDecodeMqDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
×
12205
  TAOS_CHECK_RETURN(tDecodeMqDataRspCommon(pDecoder, pRsp));
×
12206
  if (!tDecodeIsEnd(pDecoder)) {
×
12207
    TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pRsp->sleepTime));
×
12208
  }
12209

12210
  return 0;
×
12211
}
12212

12213
int32_t tDecodeMqRawDataRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
×
12214
  int32_t code = 0;
×
12215
  int32_t lino;
12216

12217
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->reqOffset));
×
12218
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
×
12219
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->blockNum));
×
12220
_exit:
×
12221
  return code;
×
12222
}
12223

12224
static void tDeleteMqDataRspCommon(SMqDataRsp *pRsp) {
×
12225
  taosArrayDestroy(pRsp->blockDataLen);
×
12226
  pRsp->blockDataLen = NULL;
×
12227
  if (pRsp->blockDataElementFree){
×
12228
    taosArrayDestroyP(pRsp->blockData, NULL);
×
12229
  } else {
12230
    taosArrayDestroy(pRsp->blockData);
×
12231
  }
12232
  pRsp->blockData = NULL;
×
12233
  taosArrayDestroyP(pRsp->blockSchema, (FDelete)tDeleteSchemaWrapper);
×
12234
  pRsp->blockSchema = NULL;
×
12235
  taosArrayDestroyP(pRsp->blockTbName, NULL);
×
12236
  pRsp->blockTbName = NULL;
×
12237
  tOffsetDestroy(&pRsp->reqOffset);
×
12238
  tOffsetDestroy(&pRsp->rspOffset);
×
12239
  taosMemoryFreeClear(pRsp->data);
×
12240
}
×
12241

12242
void tDeleteMqDataRsp(SMqDataRsp *rsp) { tDeleteMqDataRspCommon(rsp); }
×
12243

12244
int32_t tEncodeSTaosxRsp(SEncoder *pEncoder, const SMqDataRsp *pRsp) {
×
12245
  int32_t code = 0;
×
12246
  int32_t lino = 0;
×
12247

12248
  TAOS_CHECK_EXIT(tEncodeMqDataRspCommon(pEncoder, pRsp));
×
12249
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->createTableNum));
×
12250
  if (pRsp->createTableNum) {
×
12251
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
×
12252
      void   *createTableReq = taosArrayGetP(pRsp->createTableReq, i);
×
12253
      int32_t createTableLen = *(int32_t *)taosArrayGet(pRsp->createTableLen, i);
×
12254
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, createTableReq, createTableLen));
×
12255
    }
12256
  }
12257

12258
_exit:
×
12259
  return code;
×
12260
}
12261

12262
int32_t tDecodeSTaosxRsp(SDecoder *pDecoder, SMqDataRsp *pRsp) {
×
12263
  int32_t code = 0;
×
12264
  int32_t lino;
12265

12266
  TAOS_CHECK_EXIT(tDecodeMqDataRspCommon(pDecoder, pRsp));
×
12267
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->createTableNum));
×
12268
  if (pRsp->createTableNum) {
×
12269
    if ((pRsp->createTableLen = taosArrayInit(pRsp->createTableNum, sizeof(int32_t))) == NULL) {
×
12270
      TAOS_CHECK_EXIT(terrno);
×
12271
    }
12272
    if ((pRsp->createTableReq = taosArrayInit(pRsp->createTableNum, sizeof(void *))) == NULL) {
×
12273
      TAOS_CHECK_EXIT(terrno);
×
12274
    }
12275
    for (int32_t i = 0; i < pRsp->createTableNum; i++) {
×
12276
      void    *pCreate = NULL;
×
12277
      uint64_t len = 0;
×
12278
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
×
12279
      int32_t l = (int32_t)len;
×
12280
      if (taosArrayPush(pRsp->createTableLen, &l) == NULL) {
×
12281
        TAOS_CHECK_EXIT(terrno);
×
12282
      }
12283
      if (taosArrayPush(pRsp->createTableReq, &pCreate) == NULL) {
×
12284
        TAOS_CHECK_EXIT(terrno);
×
12285
      }
12286
    }
12287
  }
12288
_exit:
×
12289
  return code;
×
12290
}
12291

12292
void tDeleteSTaosxRsp(SMqDataRsp *pRsp) {
×
12293
  tDeleteMqDataRspCommon(pRsp);
×
12294

12295
  taosArrayDestroy(pRsp->createTableLen);
×
12296
  pRsp->createTableLen = NULL;
×
12297
  taosArrayDestroyP(pRsp->createTableReq, NULL);
×
12298
  pRsp->createTableReq = NULL;
×
12299
}
×
12300

12301
void tDeleteMqRawDataRsp(SMqDataRsp *pRsp) {
×
12302
  tOffsetDestroy(&pRsp->reqOffset);
×
12303
  tOffsetDestroy(&pRsp->rspOffset);
×
12304
  if (pRsp->rawData != NULL){
×
12305
    taosMemoryFree(POINTER_SHIFT(pRsp->rawData, - sizeof(SMqRspHead)));
×
12306
  }
12307
}
×
12308

12309
int32_t tEncodeSSingleDeleteReq(SEncoder *pEncoder, const SSingleDeleteReq *pReq) {
×
12310
  TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pReq->tbname));
×
12311
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->startTs));
×
12312
  TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pReq->endTs));
×
12313
  return 0;
×
12314
}
12315

12316
int32_t tDecodeSSingleDeleteReq(SDecoder *pDecoder, SSingleDeleteReq *pReq) {
×
12317
  TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pReq->tbname));
×
12318
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->startTs));
×
12319
  TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pReq->endTs));
×
12320
  return 0;
×
12321
}
12322

12323
int32_t tEncodeSBatchDeleteReq(SEncoder *pEncoder, const SBatchDeleteReq *pReq) {
×
12324
  int32_t code = 0;
×
12325
  int32_t lino;
12326

12327
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->suid));
×
12328
  int32_t sz = taosArrayGetSize(pReq->deleteReqs);
×
12329
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, sz));
×
12330
  for (int32_t i = 0; i < sz; i++) {
×
12331
    SSingleDeleteReq *pOneReq = taosArrayGet(pReq->deleteReqs, i);
×
12332
    TAOS_CHECK_EXIT(tEncodeSSingleDeleteReq(pEncoder, pOneReq));
×
12333
  }
12334
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->ctimeMs));
×
12335
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pReq->level));
×
12336
_exit:
×
12337
  return code;
×
12338
}
12339

12340
static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
×
12341
  int32_t code = 0;
×
12342
  int32_t lino;
12343

12344
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->suid));
×
12345
  int32_t sz;
12346
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &sz));
×
12347
  pReq->deleteReqs = taosArrayInit(0, sizeof(SSingleDeleteReq));
×
12348
  if (pReq->deleteReqs == NULL) {
×
12349
    TAOS_CHECK_EXIT(terrno);
×
12350
  }
12351
  for (int32_t i = 0; i < sz; i++) {
×
12352
    SSingleDeleteReq deleteReq;
12353
    TAOS_CHECK_EXIT(tDecodeSSingleDeleteReq(pDecoder, &deleteReq));
×
12354
    if (taosArrayPush(pReq->deleteReqs, &deleteReq) == NULL) {
×
12355
      TAOS_CHECK_EXIT(terrno);
×
12356
    }
12357
  }
12358
_exit:
×
12359
  return code;
×
12360
}
12361

12362
int32_t tDecodeSBatchDeleteReq(SDecoder *pDecoder, SBatchDeleteReq *pReq) {
×
12363
  int32_t code = 0;
×
12364
  int32_t lino;
12365

12366
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
×
12367

12368
  pReq->ctimeMs = 0;
×
12369
  if (!tDecodeIsEnd(pDecoder)) {
×
12370
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
×
12371
  }
12372
  if (!tDecodeIsEnd(pDecoder)) {
×
12373
    TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pReq->level));
×
12374
  }
12375

12376
_exit:
×
12377
  return code;
×
12378
}
12379

12380
int32_t tDecodeSBatchDeleteReqSetCtime(SDecoder *pDecoder, SBatchDeleteReq *pReq, int64_t ctimeMs) {
×
12381
  int32_t code = 0;
×
12382
  int32_t lino;
12383

12384
  TAOS_CHECK_EXIT(tDecodeSBatchDeleteReqCommon(pDecoder, pReq));
×
12385

12386
  pReq->ctimeMs = 0;
×
12387
  if (!tDecodeIsEnd(pDecoder)) {
×
12388
    *(int64_t *)(pDecoder->data + pDecoder->pos) = ctimeMs;
×
12389
    TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->ctimeMs));
×
12390
  }
12391

12392
_exit:
×
12393
  return code;
×
12394
}
12395
int32_t transformRawSSubmitTbData(void* data, int64_t suid, int64_t uid, int32_t sver){
×
12396
  int32_t code = 0;
×
12397
  int32_t lino = 0;
×
12398
  SDecoder decoder = {0};
×
12399
  tDecoderInit(&decoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t*)data);
×
12400

12401
  int32_t flags = 0;
×
12402
  TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &flags));
×
12403
  flags |= TD_REQ_FROM_TAOX;
×
12404
  flags &= ~SUBMIT_REQ_AUTO_CREATE_TABLE;
×
12405

12406
  SEncoder encoder = {0};
×
12407
  tEncoderInit(&encoder, (uint8_t *)POINTER_SHIFT(data, INT_BYTES), *(uint32_t*)data);
×
12408
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, flags));
×
12409
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, suid));
×
12410
  TAOS_CHECK_EXIT(tEncodeI64(&encoder, uid));
×
12411
  TAOS_CHECK_EXIT(tEncodeI32v(&encoder, sver));
×
12412
  _exit:
×
12413
  return code;
×
12414
}
12415

12416
static int32_t tEncodeSSubmitTbData(SEncoder *pCoder, const SSubmitTbData *pSubmitTbData) {
1,778✔
12417
  int32_t code = 0;
1,778✔
12418
  int32_t lino;
12419

12420
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
1,778!
12421

12422
  int32_t flags = pSubmitTbData->flags | ((SUBMIT_REQUEST_VERSION) << 8);
1,778✔
12423
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, flags));
1,778!
12424

12425
  // auto create table
12426
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
1,778✔
12427
    if (!(pSubmitTbData->pCreateTbReq)) {
204!
12428
      uError("auto create table but request is NULL");
×
12429
      return TSDB_CODE_INVALID_MSG;
×
12430
    }
12431
    TAOS_CHECK_EXIT(tEncodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
204!
12432
  }
12433

12434
  // submit data
12435
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->suid));
3,556!
12436
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->uid));
3,556!
12437
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pSubmitTbData->sver));
3,556!
12438

12439
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
1,778✔
12440
    uint64_t  nColData = TARRAY_SIZE(pSubmitTbData->aCol);
226✔
12441
    SColData *aColData = (SColData *)TARRAY_DATA(pSubmitTbData->aCol);
226✔
12442

12443
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, nColData));
226!
12444

12445
    for (uint64_t i = 0; i < nColData; i++) {
790✔
12446
      TAOS_CHECK_EXIT(tEncodeColData(SUBMIT_REQUEST_VERSION, pCoder, &aColData[i]));
564!
12447
    }
12448
  } else {
12449
    TAOS_CHECK_EXIT(tEncodeU64v(pCoder, TARRAY_SIZE(pSubmitTbData->aRowP)));
3,104!
12450

12451
    SRow **rows = (SRow **)TARRAY_DATA(pSubmitTbData->aRowP);
1,552✔
12452
    for (int32_t iRow = 0; iRow < TARRAY_SIZE(pSubmitTbData->aRowP); ++iRow) {
22,438✔
12453
      TAOS_CHECK_EXIT(tEncodeRow(pCoder, rows[iRow]));
20,886!
12454
    }
12455
  }
12456
  TAOS_CHECK_EXIT(tEncodeI64(pCoder, pSubmitTbData->ctimeMs));
3,556!
12457

12458
  tEndEncode(pCoder);
1,778✔
12459
_exit:
1,778✔
12460
  return code;
1,778✔
12461
}
12462

12463
static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbData, void* rawData) {
×
12464
  int32_t code = 0;
×
12465
  int32_t lino;
12466
  int32_t flags;
12467
  uint8_t version;
12468

12469
  uint8_t*      dataAfterCreate = NULL;
×
12470
  uint8_t*      dataStart = pCoder->data + pCoder->pos;
×
12471
  uint32_t      posAfterCreate = 0;
×
12472

12473
  TAOS_CHECK_EXIT(tStartDecode(pCoder));
×
12474
  uint32_t      pos = pCoder->pos;
×
12475
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &flags));
×
12476
  uint32_t flagsLen = pCoder->pos - pos;
×
12477

12478
  pSubmitTbData->flags = flags & 0xff;
×
12479
  version = (flags >> 8) & 0xff;
×
12480

12481
  if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) {
×
12482
    pSubmitTbData->pCreateTbReq = taosMemoryCalloc(1, sizeof(SVCreateTbReq));
×
12483
    if (pSubmitTbData->pCreateTbReq == NULL) {
×
12484
      TAOS_CHECK_EXIT(terrno);
×
12485
    }
12486

12487
    TAOS_CHECK_EXIT(tDecodeSVCreateTbReq(pCoder, pSubmitTbData->pCreateTbReq));
×
12488
    dataAfterCreate = pCoder->data + pCoder->pos;
×
12489
    posAfterCreate = pCoder->pos;
×
12490
  }
12491

12492
  // submit data
12493
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->suid));
×
12494
  TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->uid));
×
12495
  TAOS_CHECK_EXIT(tDecodeI32v(pCoder, &pSubmitTbData->sver));
×
12496

12497
  if (pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
×
12498
    uint64_t nColData = 0;
×
12499

12500
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nColData));
×
12501

12502
    pSubmitTbData->aCol = taosArrayInit(nColData, sizeof(SColData));
×
12503
    if (pSubmitTbData->aCol == NULL) {
×
12504
      TAOS_CHECK_EXIT(terrno);
×
12505
    }
12506

12507
    for (int32_t i = 0; i < nColData; ++i) {
×
12508
      TAOS_CHECK_EXIT(tDecodeColData(version, pCoder, taosArrayReserve(pSubmitTbData->aCol, 1)));
×
12509
    }
12510
  } else {
12511
    uint64_t nRow = 0;
×
12512
    TAOS_CHECK_EXIT(tDecodeU64v(pCoder, &nRow));
×
12513

12514
    pSubmitTbData->aRowP = taosArrayInit(nRow, sizeof(SRow *));
×
12515
    if (pSubmitTbData->aRowP == NULL) {
×
12516
      TAOS_CHECK_EXIT(terrno);
×
12517
    }
12518

12519
    for (int32_t iRow = 0; iRow < nRow; ++iRow) {
×
12520
      SRow **ppRow = taosArrayReserve(pSubmitTbData->aRowP, 1);
×
12521
      if (ppRow == NULL) {
×
12522
        TAOS_CHECK_EXIT(terrno);
×
12523
      }
12524

12525
      TAOS_CHECK_EXIT(tDecodeRow(pCoder, ppRow));
×
12526
    }
12527
  }
12528

12529
  pSubmitTbData->ctimeMs = 0;
×
12530
  if (!tDecodeIsEnd(pCoder)) {
×
12531
    TAOS_CHECK_EXIT(tDecodeI64(pCoder, &pSubmitTbData->ctimeMs));
×
12532
  }
12533

12534
  if (rawData != NULL){
×
12535
    if (dataAfterCreate != NULL){
×
12536
      TAOS_MEMCPY(dataAfterCreate - INT_BYTES - flagsLen, dataStart, INT_BYTES + flagsLen);
×
12537
      *(int32_t*)(dataAfterCreate - INT_BYTES - flagsLen) = pCoder->pos - posAfterCreate + flagsLen;
×
12538
      *(void**)rawData = dataAfterCreate - INT_BYTES - flagsLen;
×
12539
    }else{
12540
      *(void**)rawData = dataStart;
×
12541
    }
12542
  }
12543
  tEndDecode(pCoder);
×
12544

12545
_exit:
×
12546
  return code;
×
12547
}
12548

12549
int32_t tEncodeSubmitReq(SEncoder *pCoder, const SSubmitReq2 *pReq) {
1,606✔
12550
  int32_t code = 0;
1,606✔
12551
  int32_t lino;
12552

12553
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
1,606!
12554
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pReq->aSubmitTbData)));
3,212!
12555
  if (pReq->raw){
1,606!
12556
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
×
12557
      void* data = taosArrayGetP(pReq->aSubmitTbData, i);
×
12558
      if (pCoder->data != NULL){
×
12559
        TAOS_MEMCPY(pCoder->data + pCoder->pos, data, *(uint32_t*)data + INT_BYTES);
×
12560

12561
      }
12562
      pCoder->pos += *(uint32_t*)data + INT_BYTES;
×
12563
    }
12564
  } else{
12565
    for (uint64_t i = 0; i < taosArrayGetSize(pReq->aSubmitTbData); i++) {
3,384✔
12566
      SSubmitTbData *pSubmitTbData = taosArrayGet(pReq->aSubmitTbData, i);
1,778✔
12567
      if ((pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) && pSubmitTbData->pCreateTbReq == NULL) {
1,778✔
12568
        pSubmitTbData->flags &= ~SUBMIT_REQ_AUTO_CREATE_TABLE;
42✔
12569
      }
12570
      TAOS_CHECK_EXIT(tEncodeSSubmitTbData(pCoder, pSubmitTbData));
1,778!
12571
    }
12572
  }
12573

12574
  tEndEncode(pCoder);
1,606✔
12575
_exit:
1,606✔
12576
  return code;
1,606✔
12577
}
12578

12579
int32_t tDecodeSubmitReq(SDecoder *pCoder, SSubmitReq2 *pReq, SArray* rawList) {
×
12580
  int32_t code = 0;
×
12581

12582
  memset(pReq, 0, sizeof(*pReq));
×
12583

12584
  // decode
12585
  if (tStartDecode(pCoder) < 0) {
×
12586
    code = TSDB_CODE_INVALID_MSG;
×
12587
    goto _exit;
×
12588
  }
12589

12590
  uint64_t nSubmitTbData;
12591
  if (tDecodeU64v(pCoder, &nSubmitTbData) < 0) {
×
12592
    code = TSDB_CODE_INVALID_MSG;
×
12593
    goto _exit;
×
12594
  }
12595

12596
  pReq->aSubmitTbData = taosArrayInit(nSubmitTbData, sizeof(SSubmitTbData));
×
12597
  if (pReq->aSubmitTbData == NULL) {
×
12598
    code = terrno;
×
12599
    goto _exit;
×
12600
  }
12601

12602
  for (uint64_t i = 0; i < nSubmitTbData; i++) {
×
12603
    SSubmitTbData* data = taosArrayReserve(pReq->aSubmitTbData, 1);
×
12604
    if (tDecodeSSubmitTbData(pCoder, data, rawList != NULL ? taosArrayReserve(rawList, 1) : NULL) < 0) {
×
12605
      code = TSDB_CODE_INVALID_MSG;
×
12606
      goto _exit;
×
12607
    }
12608
  }
12609

12610
  tEndDecode(pCoder);
×
12611

12612
_exit:
×
12613
  return code;
×
12614
}
12615

12616
void tDestroySubmitTbData(SSubmitTbData *pTbData, int32_t flag) {
1,198✔
12617
  if (NULL == pTbData) {
1,198✔
12618
    return;
74✔
12619
  }
12620

12621
  if (flag == TSDB_MSG_FLG_ENCODE || flag == TSDB_MSG_FLG_CMPT) {
1,124!
12622
    if (pTbData->pCreateTbReq) {
1,124✔
12623
      if (flag == TSDB_MSG_FLG_ENCODE) {
209!
12624
        tdDestroySVCreateTbReq(pTbData->pCreateTbReq);
209!
12625
      } else {
12626
        tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
×
12627
      }
12628
      taosMemoryFreeClear(pTbData->pCreateTbReq);
209!
12629
    }
12630

12631
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
1,124✔
12632
      int32_t   nColData = TARRAY_SIZE(pTbData->aCol);
307✔
12633
      SColData *aColData = (SColData *)TARRAY_DATA(pTbData->aCol);
307✔
12634

12635
      for (int32_t i = 0; i < nColData; ++i) {
866✔
12636
        tColDataDestroy(&aColData[i]);
559✔
12637
      }
12638
      taosArrayDestroy(pTbData->aCol);
307✔
12639
    } else {
12640
      int32_t nRow = TARRAY_SIZE(pTbData->aRowP);
817✔
12641
      SRow  **rows = (SRow **)TARRAY_DATA(pTbData->aRowP);
817✔
12642

12643
      for (int32_t i = 0; i < nRow; ++i) {
11,260✔
12644
        tRowDestroy(rows[i]);
10,443✔
12645
        rows[i] = NULL;
10,443✔
12646
      }
12647
      taosArrayDestroy(pTbData->aRowP);
817✔
12648
    }
12649
  } else if (flag == TSDB_MSG_FLG_DECODE) {
×
12650
    if (pTbData->pCreateTbReq) {
×
12651
      tDestroySVCreateTbReq(pTbData->pCreateTbReq, TSDB_MSG_FLG_DECODE);
×
12652
      taosMemoryFree(pTbData->pCreateTbReq);
×
12653
    }
12654

12655
    if (pTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT) {
×
12656
      taosArrayDestroy(pTbData->aCol);
×
12657
    } else {
12658
      taosArrayDestroy(pTbData->aRowP);
×
12659
    }
12660
  }
12661

12662
  pTbData->aRowP = NULL;
1,124✔
12663
}
12664

12665
void tDestroySubmitReq(SSubmitReq2 *pReq, int32_t flag) {
803✔
12666
  if (pReq->aSubmitTbData == NULL) return;
803!
12667

12668
  if (!pReq->raw){
803!
12669
    int32_t        nSubmitTbData = TARRAY_SIZE(pReq->aSubmitTbData);
803✔
12670
    SSubmitTbData *aSubmitTbData = (SSubmitTbData *)TARRAY_DATA(pReq->aSubmitTbData);
803✔
12671

12672
    for (int32_t i = 0; i < nSubmitTbData; i++) {
1,692✔
12673
      tDestroySubmitTbData(&aSubmitTbData[i], flag);
889✔
12674
    }
12675
  }
12676

12677
  taosArrayDestroy(pReq->aSubmitTbData);
803✔
12678
  pReq->aSubmitTbData = NULL;
803✔
12679
}
12680

12681
int32_t tEncodeSSubmitRsp2(SEncoder *pCoder, const SSubmitRsp2 *pRsp) {
40✔
12682
  int32_t code = 0;
40✔
12683
  int32_t lino;
12684

12685
  TAOS_CHECK_EXIT(tStartEncode(pCoder));
40!
12686

12687
  TAOS_CHECK_EXIT(tEncodeI32v(pCoder, pRsp->affectedRows));
80!
12688

12689
  TAOS_CHECK_EXIT(tEncodeU64v(pCoder, taosArrayGetSize(pRsp->aCreateTbRsp)));
80!
12690
  for (int32_t i = 0; i < taosArrayGetSize(pRsp->aCreateTbRsp); ++i) {
40!
12691
    TAOS_CHECK_EXIT(tEncodeSVCreateTbRsp(pCoder, taosArrayGet(pRsp->aCreateTbRsp, i)));
×
12692
  }
12693

12694
  tEndEncode(pCoder);
40✔
12695
_exit:
40✔
12696
  return code;
40✔
12697
}
12698

12699
int32_t tDecodeSSubmitRsp2(SDecoder *pCoder, SSubmitRsp2 *pRsp) {
795✔
12700
  int32_t code = 0;
795✔
12701

12702
  memset(pRsp, 0, sizeof(SSubmitRsp2));
795✔
12703

12704
  // decode
12705
  if (tStartDecode(pCoder) < 0) {
795✔
12706
    code = TSDB_CODE_INVALID_MSG;
10✔
12707
    goto _exit;
10✔
12708
  }
12709

12710
  if (tDecodeI32v(pCoder, &pRsp->affectedRows) < 0) {
1,574!
12711
    code = TSDB_CODE_INVALID_MSG;
×
12712
    goto _exit;
×
12713
  }
12714

12715
  uint64_t nCreateTbRsp;
12716
  if (tDecodeU64v(pCoder, &nCreateTbRsp) < 0) {
787!
12717
    code = TSDB_CODE_INVALID_MSG;
×
12718
    goto _exit;
×
12719
  }
12720

12721
  if (nCreateTbRsp) {
787✔
12722
    pRsp->aCreateTbRsp = taosArrayInit(nCreateTbRsp, sizeof(SVCreateTbRsp));
72✔
12723
    if (pRsp->aCreateTbRsp == NULL) {
72✔
12724
      code = terrno;
1✔
12725
      goto _exit;
×
12726
    }
12727

12728
    for (int32_t i = 0; i < nCreateTbRsp; ++i) {
173✔
12729
      SVCreateTbRsp *pCreateTbRsp = taosArrayReserve(pRsp->aCreateTbRsp, 1);
102✔
12730
      if (tDecodeSVCreateTbRsp(pCoder, pCreateTbRsp) < 0) {
102!
12731
        code = TSDB_CODE_INVALID_MSG;
×
12732
        goto _exit;
×
12733
      }
12734
    }
12735
  }
12736

12737
  tEndDecode(pCoder);
786✔
12738

12739
_exit:
796✔
12740
  if (code) {
796✔
12741
    if (pRsp->aCreateTbRsp) {
10!
12742
      taosArrayDestroyEx(pRsp->aCreateTbRsp, NULL /* todo */);
×
12743
    }
12744
  }
12745
  return code;
796✔
12746
}
12747

12748
void tDestroySSubmitRsp2(SSubmitRsp2 *pRsp, int32_t flag) {
1,440✔
12749
  if (NULL == pRsp) {
1,440✔
12750
    return;
688✔
12751
  }
12752

12753
  if (flag & TSDB_MSG_FLG_ENCODE) {
752!
12754
    if (pRsp->aCreateTbRsp) {
×
12755
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
×
12756
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
×
12757
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
×
12758
        if (aCreateTbRsp[i].pMeta) {
×
12759
          taosMemoryFree(aCreateTbRsp[i].pMeta);
×
12760
        }
12761
      }
12762
      taosArrayDestroy(pRsp->aCreateTbRsp);
×
12763
    }
12764
  } else if (flag & TSDB_MSG_FLG_DECODE) {
752!
12765
    if (pRsp->aCreateTbRsp) {
752✔
12766
      int32_t        nCreateTbRsp = TARRAY_SIZE(pRsp->aCreateTbRsp);
48✔
12767
      SVCreateTbRsp *aCreateTbRsp = TARRAY_DATA(pRsp->aCreateTbRsp);
48✔
12768
      for (int32_t i = 0; i < nCreateTbRsp; ++i) {
150✔
12769
        if (aCreateTbRsp[i].pMeta) {
102✔
12770
          taosMemoryFree(aCreateTbRsp[i].pMeta);
31!
12771
        }
12772
      }
12773
      taosArrayDestroy(pRsp->aCreateTbRsp);
48✔
12774
    }
12775
  }
12776
}
12777

12778
int32_t tSerializeSMPauseStreamReq(void *buf, int32_t bufLen, const SMPauseStreamReq *pReq) {
16✔
12779
  int32_t  code = 0;
16✔
12780
  int32_t  lino;
12781
  int32_t  tlen;
12782
  SEncoder encoder = {0};
16✔
12783
  tEncoderInit(&encoder, buf, bufLen);
16✔
12784
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
12785
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
32!
12786
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
32!
12787
  tEndEncode(&encoder);
16✔
12788

12789
_exit:
16✔
12790
  if (code) {
16!
12791
    tlen = code;
×
12792
  } else {
12793
    tlen = encoder.pos;
16✔
12794
  }
12795
  tEncoderClear(&encoder);
16✔
12796
  return tlen;
16✔
12797
}
12798

12799
int32_t tDeserializeSMPauseStreamReq(void *buf, int32_t bufLen, SMPauseStreamReq *pReq) {
4✔
12800
  SDecoder decoder = {0};
4✔
12801
  int32_t  code = 0;
4✔
12802
  int32_t  lino;
12803

12804
  tDecoderInit(&decoder, buf, bufLen);
4✔
12805
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
12806
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
4!
12807
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
8!
12808
  tEndDecode(&decoder);
4✔
12809

12810
_exit:
4✔
12811
  tDecoderClear(&decoder);
4✔
12812
  return code;
4✔
12813
}
12814

12815
int32_t tSerializeSMResumeStreamReq(void *buf, int32_t bufLen, const SMResumeStreamReq *pReq) {
16✔
12816
  SEncoder encoder = {0};
16✔
12817
  int32_t  code = 0;
16✔
12818
  int32_t  lino;
12819
  int32_t  tlen;
12820
  tEncoderInit(&encoder, buf, bufLen);
16✔
12821
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
16!
12822
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
32!
12823
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
32!
12824
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igUntreated));
32!
12825
  tEndEncode(&encoder);
16✔
12826

12827
_exit:
16✔
12828
  if (code) {
16!
12829
    tlen = code;
×
12830
  } else {
12831
    tlen = encoder.pos;
16✔
12832
  }
12833
  tEncoderClear(&encoder);
16✔
12834
  return tlen;
16✔
12835
}
12836

12837
int32_t tDeserializeSMResumeStreamReq(void *buf, int32_t bufLen, SMResumeStreamReq *pReq) {
4✔
12838
  SDecoder decoder = {0};
4✔
12839
  int32_t  code = 0;
4✔
12840
  int32_t  lino;
12841

12842
  tDecoderInit(&decoder, buf, bufLen);
4✔
12843
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
4!
12844
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
4!
12845
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
8!
12846
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igUntreated));
8!
12847
  tEndDecode(&decoder);
4✔
12848

12849
_exit:
4✔
12850
  tDecoderClear(&decoder);
4✔
12851
  return code;
4✔
12852
}
12853

12854
int32_t tSerializeSMResetStreamReq(void *buf, int32_t bufLen, const SMResetStreamReq *pReq) {
×
12855
  SEncoder encoder = {0};
×
12856
  int32_t  code = 0;
×
12857
  int32_t  lino;
12858
  int32_t  tlen;
12859
  tEncoderInit(&encoder, buf, bufLen);
×
12860
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
12861
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
12862
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
×
12863
  tEndEncode(&encoder);
×
12864

12865
_exit:
×
12866
  if (code) {
×
12867
    tlen = code;
×
12868
  } else {
12869
    tlen = encoder.pos;
×
12870
  }
12871
  tEncoderClear(&encoder);
×
12872
  return tlen;
×
12873
}
12874

12875
int32_t tDeserializeSMResetStreamReq(void *buf, int32_t bufLen, SMResetStreamReq *pReq) {
×
12876
  SDecoder decoder = {0};
×
12877
  int32_t  code = 0;
×
12878
  int32_t  lino;
12879

12880
  tDecoderInit(&decoder, buf, bufLen);
×
12881
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
12882
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
12883
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
×
12884
  tEndDecode(&decoder);
×
12885

12886
_exit:
×
12887
  tDecoderClear(&decoder);
×
12888
  return code;
×
12889
}
12890

12891
int32_t tEncodeMqSubTopicEp(void **buf, const SMqSubTopicEp *pTopicEp) {
×
12892
  int32_t tlen = 0;
×
12893
  tlen += taosEncodeString(buf, pTopicEp->topic);
×
12894
  tlen += taosEncodeString(buf, pTopicEp->db);
×
12895
  int32_t sz = taosArrayGetSize(pTopicEp->vgs);
×
12896
  tlen += taosEncodeFixedI32(buf, sz);
×
12897
  for (int32_t i = 0; i < sz; i++) {
×
12898
    SMqSubVgEp *pVgEp = (SMqSubVgEp *)taosArrayGet(pTopicEp->vgs, i);
×
12899
    tlen += tEncodeSMqSubVgEp(buf, pVgEp);
×
12900
  }
12901
  tlen += taosEncodeSSchemaWrapper(buf, &pTopicEp->schema);
×
12902
  return tlen;
×
12903
}
12904

12905
void *tDecodeMqSubTopicEp(void *buf, SMqSubTopicEp *pTopicEp) {
×
12906
  buf = taosDecodeStringTo(buf, pTopicEp->topic);
×
12907
  buf = taosDecodeStringTo(buf, pTopicEp->db);
×
12908
  int32_t sz;
12909
  buf = taosDecodeFixedI32(buf, &sz);
×
12910
  pTopicEp->vgs = taosArrayInit(sz, sizeof(SMqSubVgEp));
×
12911
  if (pTopicEp->vgs == NULL) {
×
12912
    return NULL;
×
12913
  }
12914
  for (int32_t i = 0; i < sz; i++) {
×
12915
    SMqSubVgEp vgEp;
12916
    buf = tDecodeSMqSubVgEp(buf, &vgEp);
×
12917
    if (taosArrayPush(pTopicEp->vgs, &vgEp) == NULL) {
×
12918
      taosArrayDestroy(pTopicEp->vgs);
×
12919
      pTopicEp->vgs = NULL;
×
12920
      return NULL;
×
12921
    }
12922
  }
12923
  buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema);
×
12924
  return buf;
×
12925
}
12926

12927
void tDeleteMqSubTopicEp(SMqSubTopicEp *pSubTopicEp) {
×
12928
  taosMemoryFreeClear(pSubTopicEp->schema.pSchema);
×
12929
  pSubTopicEp->schema.nCols = 0;
×
12930
  taosArrayDestroy(pSubTopicEp->vgs);
×
12931
}
×
12932

12933
int32_t tSerializeSCMCreateViewReq(void *buf, int32_t bufLen, const SCMCreateViewReq *pReq) {
×
12934
  SEncoder encoder = {0};
×
12935
  int32_t  code = 0;
×
12936
  int32_t  lino;
12937
  int32_t  tlen;
12938
  tEncoderInit(&encoder, buf, bufLen);
×
12939

12940
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
12941
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
×
12942
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
12943
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
×
12944
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->querySql));
×
12945
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
×
12946
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->orReplace));
×
12947
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->precision));
×
12948
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numOfCols));
×
12949
  for (int32_t i = 0; i < pReq->numOfCols; ++i) {
×
12950
    SSchema *pSchema = &pReq->pSchema[i];
×
12951
    TAOS_CHECK_EXIT(tEncodeSSchema(&encoder, pSchema));
×
12952
  }
12953

12954
  tEndEncode(&encoder);
×
12955

12956
_exit:
×
12957
  if (code) {
×
12958
    tlen = code;
×
12959
  } else {
12960
    tlen = encoder.pos;
×
12961
  }
12962
  tEncoderClear(&encoder);
×
12963
  return tlen;
×
12964
}
12965

12966
int32_t tDeserializeSCMCreateViewReq(void *buf, int32_t bufLen, SCMCreateViewReq *pReq) {
×
12967
  SDecoder decoder = {0};
×
12968
  int32_t  code = 0;
×
12969
  int32_t  lino;
12970

12971
  tDecoderInit(&decoder, buf, bufLen);
×
12972

12973
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
12974
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
×
12975
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
12976
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
×
12977
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->querySql));
×
12978
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
×
12979
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->orReplace));
×
12980
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->precision));
×
12981
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numOfCols));
×
12982

12983
  if (pReq->numOfCols > 0) {
×
12984
    pReq->pSchema = taosMemoryCalloc(pReq->numOfCols, sizeof(SSchema));
×
12985
    if (pReq->pSchema == NULL) {
×
12986
      TAOS_CHECK_EXIT(terrno);
×
12987
    }
12988

12989
    for (int32_t i = 0; i < pReq->numOfCols; ++i) {
×
12990
      SSchema *pSchema = pReq->pSchema + i;
×
12991
      TAOS_CHECK_EXIT(tDecodeSSchema(&decoder, pSchema));
×
12992
    }
12993
  }
12994

12995
  tEndDecode(&decoder);
×
12996

12997
_exit:
×
12998
  tDecoderClear(&decoder);
×
12999
  return code;
×
13000
}
13001

13002
void tFreeSCMCreateViewReq(SCMCreateViewReq *pReq) {
×
13003
  if (NULL == pReq) {
×
13004
    return;
×
13005
  }
13006

13007
  taosMemoryFreeClear(pReq->querySql);
×
13008
  taosMemoryFreeClear(pReq->sql);
×
13009
  taosMemoryFreeClear(pReq->pSchema);
×
13010
}
13011

13012
int32_t tSerializeSCMDropViewReq(void *buf, int32_t bufLen, const SCMDropViewReq *pReq) {
×
13013
  SEncoder encoder = {0};
×
13014
  int32_t  code = 0;
×
13015
  int32_t  lino;
13016
  int32_t  tlen;
13017
  tEncoderInit(&encoder, buf, bufLen);
×
13018

13019
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13020
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
×
13021
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
13022
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->dbFName));
×
13023
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->sql));
×
13024
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->igNotExists));
×
13025

13026
  tEndEncode(&encoder);
×
13027

13028
_exit:
×
13029
  if (code) {
×
13030
    tlen = code;
×
13031
  } else {
13032
    tlen = encoder.pos;
×
13033
  }
13034
  tEncoderClear(&encoder);
×
13035
  return tlen;
×
13036
}
13037

13038
int32_t tDeserializeSCMDropViewReq(void *buf, int32_t bufLen, SCMDropViewReq *pReq) {
×
13039
  SDecoder decoder = {0};
×
13040
  int32_t  code = 0;
×
13041
  int32_t  lino;
13042

13043
  tDecoderInit(&decoder, buf, bufLen);
×
13044

13045
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13046
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
×
13047
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
13048
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->dbFName));
×
13049
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(&decoder, &pReq->sql));
×
13050
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, &pReq->igNotExists));
×
13051

13052
  tEndDecode(&decoder);
×
13053

13054
_exit:
×
13055
  tDecoderClear(&decoder);
×
13056
  return code;
×
13057
}
13058
void tFreeSCMDropViewReq(SCMDropViewReq *pReq) {
×
13059
  if (NULL == pReq) {
×
13060
    return;
×
13061
  }
13062

13063
  taosMemoryFree(pReq->sql);
×
13064
}
13065

13066
int32_t tSerializeSViewMetaReq(void *buf, int32_t bufLen, const SViewMetaReq *pReq) {
34✔
13067
  SEncoder encoder = {0};
34✔
13068
  int32_t  code = 0;
34✔
13069
  int32_t  lino;
13070
  int32_t  tlen;
13071
  tEncoderInit(&encoder, buf, bufLen);
34✔
13072

13073
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
34!
13074
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->fullname));
68!
13075

13076
  tEndEncode(&encoder);
34✔
13077

13078
_exit:
34✔
13079
  if (code) {
34!
13080
    tlen = code;
×
13081
  } else {
13082
    tlen = encoder.pos;
34✔
13083
  }
13084
  tEncoderClear(&encoder);
34✔
13085
  return tlen;
34✔
13086
}
13087

13088
int32_t tDeserializeSViewMetaReq(void *buf, int32_t bufLen, SViewMetaReq *pReq) {
×
13089
  SDecoder decoder = {0};
×
13090
  int32_t  code = 0;
×
13091
  int32_t  lino;
13092

13093
  tDecoderInit(&decoder, buf, bufLen);
×
13094

13095
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13096
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->fullname));
×
13097

13098
  tEndDecode(&decoder);
×
13099

13100
_exit:
×
13101
  tDecoderClear(&decoder);
×
13102
  return code;
×
13103
}
13104

13105
static int32_t tEncodeSViewMetaRsp(SEncoder *pEncoder, const SViewMetaRsp *pRsp) {
×
13106
  int32_t code = 0;
×
13107
  int32_t lino;
13108

13109
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->name));
×
13110
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->dbFName));
×
13111
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->user));
×
13112
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->dbId));
×
13113
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pRsp->viewId));
×
13114
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pRsp->querySql));
×
13115
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->precision));
×
13116
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->type));
×
13117
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->version));
×
13118
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->numOfCols));
×
13119
  for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
×
13120
    SSchema *pSchema = &pRsp->pSchema[i];
×
13121
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
×
13122
  }
13123

13124
_exit:
×
13125
  return code;
×
13126
}
13127

13128
int32_t tSerializeSViewMetaRsp(void *buf, int32_t bufLen, const SViewMetaRsp *pRsp) {
×
13129
  SEncoder encoder = {0};
×
13130
  int32_t  code = 0;
×
13131
  int32_t  lino;
13132
  int32_t  tlen;
13133
  tEncoderInit(&encoder, buf, bufLen);
×
13134

13135
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13136
  TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pRsp));
×
13137

13138
  tEndEncode(&encoder);
×
13139

13140
_exit:
×
13141
  if (code) {
×
13142
    tlen = code;
×
13143
  } else {
13144
    tlen = encoder.pos;
×
13145
  }
13146
  tEncoderClear(&encoder);
×
13147
  return tlen;
×
13148
}
13149

13150
static int32_t tDecodeSViewMetaRsp(SDecoder *pDecoder, SViewMetaRsp *pRsp) {
×
13151
  int32_t code = 0;
×
13152
  int32_t lino;
13153

13154
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->name));
×
13155
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pRsp->dbFName));
×
13156
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->user));
×
13157
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->dbId));
×
13158
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pRsp->viewId));
×
13159
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pRsp->querySql));
×
13160
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->precision));
×
13161
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pRsp->type));
×
13162
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->version));
×
13163
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->numOfCols));
×
13164
  if (pRsp->numOfCols > 0) {
×
13165
    pRsp->pSchema = taosMemoryCalloc(pRsp->numOfCols, sizeof(SSchema));
×
13166
    if (pRsp->pSchema == NULL) {
×
13167
      TAOS_CHECK_EXIT(terrno);
×
13168
    }
13169

13170
    for (int32_t i = 0; i < pRsp->numOfCols; ++i) {
×
13171
      SSchema *pSchema = pRsp->pSchema + i;
×
13172
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, pSchema));
×
13173
    }
13174
  }
13175

13176
_exit:
×
13177
  return code;
×
13178
}
13179

13180
int32_t tDeserializeSViewMetaRsp(void *buf, int32_t bufLen, SViewMetaRsp *pRsp) {
×
13181
  SDecoder decoder = {0};
×
13182
  int32_t  code = 0;
×
13183
  int32_t  lino;
13184

13185
  tDecoderInit(&decoder, buf, bufLen);
×
13186

13187
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13188
  TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, pRsp));
×
13189

13190
  tEndDecode(&decoder);
×
13191

13192
_exit:
×
13193
  tDecoderClear(&decoder);
×
13194
  return code;
×
13195
}
13196

13197
void tFreeSViewMetaRsp(SViewMetaRsp *pRsp) {
×
13198
  if (NULL == pRsp) {
×
13199
    return;
×
13200
  }
13201

13202
  taosMemoryFree(pRsp->user);
×
13203
  taosMemoryFree(pRsp->querySql);
×
13204
  taosMemoryFree(pRsp->pSchema);
×
13205
}
13206

13207
int32_t tSerializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
×
13208
  SEncoder encoder = {0};
×
13209
  int32_t  code = 0;
×
13210
  int32_t  lino;
13211
  int32_t  tlen;
13212
  tEncoderInit(&encoder, buf, bufLen);
×
13213

13214
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13215

13216
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
×
13217
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, numOfMeta));
×
13218
  for (int32_t i = 0; i < numOfMeta; ++i) {
×
13219
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
×
13220
    TAOS_CHECK_EXIT(tEncodeSViewMetaRsp(&encoder, pMetaRsp));
×
13221
  }
13222

13223
  tEndEncode(&encoder);
×
13224

13225
_exit:
×
13226
  if (code) {
×
13227
    tlen = code;
×
13228
  } else {
13229
    tlen = encoder.pos;
×
13230
  }
13231
  tEncoderClear(&encoder);
×
13232
  return tlen;
×
13233
}
13234

13235
int32_t tDeserializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) {
×
13236
  SDecoder decoder = {0};
×
13237
  int32_t  code = 0;
×
13238
  int32_t  lino;
13239

13240
  tDecoderInit(&decoder, buf, bufLen);
×
13241

13242
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13243

13244
  int32_t numOfMeta = 0;
×
13245
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &numOfMeta));
×
13246
  pRsp->pViewRsp = taosArrayInit(numOfMeta, POINTER_BYTES);
×
13247
  if (pRsp->pViewRsp == NULL) {
×
13248
    TAOS_CHECK_EXIT(terrno);
×
13249
  }
13250

13251
  for (int32_t i = 0; i < numOfMeta; ++i) {
×
13252
    SViewMetaRsp *metaRsp = taosMemoryCalloc(1, sizeof(SViewMetaRsp));
×
13253
    if (NULL == metaRsp) {
×
13254
      TAOS_CHECK_EXIT(terrno);
×
13255
    }
13256
    TAOS_CHECK_EXIT(tDecodeSViewMetaRsp(&decoder, metaRsp));
×
13257
    if (taosArrayPush(pRsp->pViewRsp, &metaRsp) == NULL) {
×
13258
      TAOS_CHECK_EXIT(terrno);
×
13259
    }
13260
  }
13261

13262
  tEndDecode(&decoder);
×
13263

13264
_exit:
×
13265
  tDecoderClear(&decoder);
×
13266
  return code;
×
13267
}
13268

13269
void tFreeSViewHbRsp(SViewHbRsp *pRsp) {
×
13270
  int32_t numOfMeta = taosArrayGetSize(pRsp->pViewRsp);
×
13271
  for (int32_t i = 0; i < numOfMeta; ++i) {
×
13272
    SViewMetaRsp *pMetaRsp = taosArrayGetP(pRsp->pViewRsp, i);
×
13273
    tFreeSViewMetaRsp(pMetaRsp);
×
13274
    taosMemoryFree(pMetaRsp);
×
13275
  }
13276

13277
  taosArrayDestroy(pRsp->pViewRsp);
×
13278
}
×
13279

13280
void setDefaultOptionsForField(SFieldWithOptions *field) {
×
13281
  setColEncode(&field->compress, getDefaultEncode(field->type));
×
13282
  setColCompress(&field->compress, getDefaultCompress(field->type));
×
13283
  setColLevel(&field->compress, getDefaultLevel(field->type));
×
13284
}
×
13285

13286
void setFieldWithOptions(SFieldWithOptions *fieldWithOptions, SField *field) {
×
13287
  fieldWithOptions->bytes = field->bytes;
×
13288
  fieldWithOptions->flags = field->flags;
×
13289
  fieldWithOptions->type = field->type;
×
13290
  tstrncpy(fieldWithOptions->name, field->name, TSDB_COL_NAME_LEN);
×
13291
}
×
13292
int32_t tSerializeTableTSMAInfoReq(void *buf, int32_t bufLen, const STableTSMAInfoReq *pReq) {
×
13293
  SEncoder encoder = {0};
×
13294
  int32_t  code = 0;
×
13295
  int32_t  lino;
13296
  int32_t  tlen;
13297
  tEncoderInit(&encoder, buf, bufLen);
×
13298

13299
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13300
  TAOS_CHECK_EXIT(tEncodeCStr(&encoder, pReq->name));
×
13301
  TAOS_CHECK_EXIT(tEncodeI8(&encoder, pReq->fetchingWithTsmaName));
×
13302

13303
  tEndEncode(&encoder);
×
13304

13305
_exit:
×
13306
  if (code) {
×
13307
    tlen = code;
×
13308
  } else {
13309
    tlen = encoder.pos;
×
13310
  }
13311
  tEncoderClear(&encoder);
×
13312
  return tlen;
×
13313
}
13314

13315
int32_t tDeserializeTableTSMAInfoReq(void *buf, int32_t bufLen, STableTSMAInfoReq *pReq) {
×
13316
  SDecoder decoder = {0};
×
13317
  int32_t  code = 0;
×
13318
  int32_t  lino;
13319

13320
  tDecoderInit(&decoder, buf, bufLen);
×
13321

13322
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13323
  TAOS_CHECK_EXIT(tDecodeCStrTo(&decoder, pReq->name));
×
13324
  TAOS_CHECK_EXIT(tDecodeI8(&decoder, (uint8_t *)&pReq->fetchingWithTsmaName));
×
13325

13326
  tEndDecode(&decoder);
×
13327

13328
_exit:
×
13329
  tDecoderClear(&decoder);
×
13330
  return code;
×
13331
}
13332

13333
static int32_t tEncodeTableTSMAInfo(SEncoder *pEncoder, const STableTSMAInfo *pTsmaInfo) {
×
13334
  int32_t code = 0;
×
13335
  int32_t lino;
13336

13337
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->name));
×
13338
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->tsmaId));
×
13339
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->tb));
×
13340
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->dbFName));
×
13341
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->suid));
×
13342
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->destTbUid));
×
13343
  TAOS_CHECK_EXIT(tEncodeU64(pEncoder, pTsmaInfo->dbId));
×
13344
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pTsmaInfo->version));
×
13345
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetTb));
×
13346
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->targetDbFName));
×
13347
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->interval));
×
13348
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->unit));
×
13349

13350
  int32_t size = pTsmaInfo->pFuncs ? pTsmaInfo->pFuncs->size : 0;
×
13351
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
13352
  for (int32_t i = 0; i < size; ++i) {
×
13353
    STableTSMAFuncInfo *pFuncInfo = taosArrayGet(pTsmaInfo->pFuncs, i);
×
13354
    TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pFuncInfo->funcId));
×
13355
    TAOS_CHECK_EXIT(tEncodeI16(pEncoder, pFuncInfo->colId));
×
13356
  }
13357

13358
  size = pTsmaInfo->pTags ? pTsmaInfo->pTags->size : 0;
×
13359
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
13360
  for (int32_t i = 0; i < size; ++i) {
×
13361
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pTags, i);
×
13362
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
×
13363
  }
13364
  size = pTsmaInfo->pUsedCols ? pTsmaInfo->pUsedCols->size : 0;
×
13365
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
13366
  for (int32_t i = 0; i < size; ++i) {
×
13367
    const SSchema *pSchema = taosArrayGet(pTsmaInfo->pUsedCols, i);
×
13368
    TAOS_CHECK_EXIT(tEncodeSSchema(pEncoder, pSchema));
×
13369
  }
13370

13371
  TAOS_CHECK_EXIT(tEncodeCStr(pEncoder, pTsmaInfo->ast));
×
13372
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->streamUid));
×
13373
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->reqTs));
×
13374
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->rspTs));
×
13375
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pTsmaInfo->delayDuration));
×
13376
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pTsmaInfo->fillHistoryFinished));
×
13377

13378
_exit:
×
13379
  return code;
×
13380
}
13381

13382
static int32_t tDecodeTableTSMAInfo(SDecoder *pDecoder, STableTSMAInfo *pTsmaInfo) {
×
13383
  int32_t code = 0;
×
13384
  int32_t lino;
13385

13386
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->name));
×
13387
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->tsmaId));
×
13388
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->tb));
×
13389
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->dbFName));
×
13390
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->suid));
×
13391
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->destTbUid));
×
13392
  TAOS_CHECK_EXIT(tDecodeU64(pDecoder, &pTsmaInfo->dbId));
×
13393
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pTsmaInfo->version));
×
13394
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetTb));
×
13395
  TAOS_CHECK_EXIT(tDecodeCStrTo(pDecoder, pTsmaInfo->targetDbFName));
×
13396
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->interval));
×
13397
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, &pTsmaInfo->unit));
×
13398
  int32_t size = 0;
×
13399
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
13400
  if (size > 0) {
×
13401
    pTsmaInfo->pFuncs = taosArrayInit(size, sizeof(STableTSMAFuncInfo));
×
13402
    if (!pTsmaInfo->pFuncs) {
×
13403
      TAOS_CHECK_EXIT(terrno);
×
13404
    }
13405
    for (int32_t i = 0; i < size; ++i) {
×
13406
      STableTSMAFuncInfo funcInfo = {0};
×
13407
      TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &funcInfo.funcId));
×
13408
      TAOS_CHECK_EXIT(tDecodeI16(pDecoder, &funcInfo.colId));
×
13409
      if (!taosArrayPush(pTsmaInfo->pFuncs, &funcInfo)) {
×
13410
        TAOS_CHECK_EXIT(terrno);
×
13411
      }
13412
    }
13413
  }
13414

13415
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
13416
  if (size > 0) {
×
13417
    pTsmaInfo->pTags = taosArrayInit(size, sizeof(SSchema));
×
13418
    if (!pTsmaInfo->pTags) {
×
13419
      TAOS_CHECK_EXIT(terrno);
×
13420
    }
13421
    for (int32_t i = 0; i < size; ++i) {
×
13422
      SSchema schema = {0};
×
13423
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
×
13424
      if (taosArrayPush(pTsmaInfo->pTags, &schema) == NULL) {
×
13425
        TAOS_CHECK_EXIT(terrno);
×
13426
      }
13427
    }
13428
  }
13429

13430
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
13431
  if (size > 0) {
×
13432
    pTsmaInfo->pUsedCols = taosArrayInit(size, sizeof(SSchema));
×
13433
    if (!pTsmaInfo->pUsedCols) {
×
13434
      TAOS_CHECK_EXIT(terrno);
×
13435
    }
13436
    for (int32_t i = 0; i < size; ++i) {
×
13437
      SSchema schema = {0};
×
13438
      TAOS_CHECK_EXIT(tDecodeSSchema(pDecoder, &schema));
×
13439
      if (taosArrayPush(pTsmaInfo->pUsedCols, &schema) == NULL) {
×
13440
        TAOS_CHECK_EXIT(terrno);
×
13441
      }
13442
    }
13443
  }
13444
  TAOS_CHECK_EXIT(tDecodeCStrAlloc(pDecoder, &pTsmaInfo->ast));
×
13445
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->streamUid));
×
13446
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->reqTs));
×
13447
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->rspTs));
×
13448
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pTsmaInfo->delayDuration));
×
13449
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pTsmaInfo->fillHistoryFinished));
×
13450

13451
_exit:
×
13452
  return code;
×
13453
}
13454

13455
static int32_t tEncodeTableTSMAInfoRsp(SEncoder *pEncoder, const STableTSMAInfoRsp *pRsp) {
×
13456
  int32_t code = 0;
×
13457
  int32_t lino;
13458

13459
  int32_t size = pRsp->pTsmas ? pRsp->pTsmas->size : 0;
×
13460
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
13461
  for (int32_t i = 0; i < size; ++i) {
×
13462
    STableTSMAInfo *pInfo = taosArrayGetP(pRsp->pTsmas, i);
×
13463
    TAOS_CHECK_EXIT(tEncodeTableTSMAInfo(pEncoder, pInfo));
×
13464
  }
13465
_exit:
×
13466
  return code;
×
13467
}
13468

13469
static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pRsp) {
1✔
13470
  int32_t size = 0;
1✔
13471
  int32_t code = 0;
1✔
13472
  int32_t lino;
13473

13474
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
1!
13475
  if (size <= 0) return 0;
1!
13476
  pRsp->pTsmas = taosArrayInit(size, POINTER_BYTES);
×
13477
  if (!pRsp->pTsmas) {
×
13478
    TAOS_CHECK_EXIT(terrno);
×
13479
  }
13480
  for (int32_t i = 0; i < size; ++i) {
×
13481
    STableTSMAInfo *pTsma = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
×
13482
    if (!pTsma) {
×
13483
      TAOS_CHECK_EXIT(terrno);
×
13484
    }
13485
    if (taosArrayPush(pRsp->pTsmas, &pTsma) == NULL) {
×
13486
      TAOS_CHECK_EXIT(terrno);
×
13487
    }
13488
    TAOS_CHECK_EXIT(tDecodeTableTSMAInfo(pDecoder, pTsma));
×
13489
  }
13490
_exit:
×
13491
  return code;
×
13492
}
13493

13494
int32_t tSerializeTableTSMAInfoRsp(void *buf, int32_t bufLen, const STableTSMAInfoRsp *pRsp) {
×
13495
  SEncoder encoder = {0};
×
13496
  int32_t  code = 0;
×
13497
  int32_t  lino;
13498
  int32_t  tlen;
13499
  tEncoderInit(&encoder, buf, bufLen);
×
13500

13501
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13502
  TAOS_CHECK_EXIT(tEncodeTableTSMAInfoRsp(&encoder, pRsp));
×
13503

13504
  tEndEncode(&encoder);
×
13505

13506
_exit:
×
13507
  if (code) {
×
13508
    tlen = code;
×
13509
  } else {
13510
    tlen = encoder.pos;
×
13511
  }
13512
  tEncoderClear(&encoder);
×
13513
  return tlen;
×
13514
}
13515

13516
int32_t tDeserializeTableTSMAInfoRsp(void *buf, int32_t bufLen, STableTSMAInfoRsp *pRsp) {
×
13517
  SDecoder decoder = {0};
×
13518
  int32_t  code = 0;
×
13519
  int32_t  lino;
13520

13521
  tDecoderInit(&decoder, buf, bufLen);
×
13522

13523
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13524
  TAOS_CHECK_EXIT(tDecodeTableTSMAInfoRsp(&decoder, pRsp));
×
13525

13526
  tEndDecode(&decoder);
×
13527

13528
_exit:
×
13529
  tDecoderClear(&decoder);
×
13530
  return code;
×
13531
}
13532

13533
void tFreeTableTSMAInfo(void *p) {
×
13534
  STableTSMAInfo *pTsmaInfo = p;
×
13535
  if (pTsmaInfo) {
×
13536
    taosArrayDestroy(pTsmaInfo->pFuncs);
×
13537
    taosArrayDestroy(pTsmaInfo->pTags);
×
13538
    taosArrayDestroy(pTsmaInfo->pUsedCols);
×
13539
    taosMemoryFree(pTsmaInfo->ast);
×
13540
  }
13541
}
×
13542

13543
void tFreeAndClearTableTSMAInfo(void *p) {
×
13544
  STableTSMAInfo *pTsmaInfo = (STableTSMAInfo *)p;
×
13545
  if (pTsmaInfo) {
×
13546
    tFreeTableTSMAInfo(pTsmaInfo);
×
13547
    taosMemoryFree(pTsmaInfo);
×
13548
  }
13549
}
×
13550

13551
int32_t tCloneTbTSMAInfo(STableTSMAInfo *pInfo, STableTSMAInfo **pRes) {
×
13552
  int32_t code = TSDB_CODE_SUCCESS;
×
13553
  if (NULL == pInfo) {
×
13554
    return TSDB_CODE_SUCCESS;
×
13555
  }
13556
  STableTSMAInfo *pRet = taosMemoryCalloc(1, sizeof(STableTSMAInfo));
×
13557
  if (!pRet) return terrno;
×
13558

13559
  *pRet = *pInfo;
×
13560
  if (pInfo->pFuncs) {
×
13561
    pRet->pFuncs = taosArrayDup(pInfo->pFuncs, NULL);
×
13562
    if (!pRet->pFuncs) code = terrno;
×
13563
  }
13564
  if (pInfo->pTags && code == TSDB_CODE_SUCCESS) {
×
13565
    pRet->pTags = taosArrayDup(pInfo->pTags, NULL);
×
13566
    if (!pRet->pTags) code = terrno;
×
13567
  }
13568
  if (pInfo->pUsedCols && code == TSDB_CODE_SUCCESS) {
×
13569
    pRet->pUsedCols = taosArrayDup(pInfo->pUsedCols, NULL);
×
13570
    if (!pRet->pUsedCols) code = terrno;
×
13571
  }
13572
  if (pInfo->ast && code == TSDB_CODE_SUCCESS) {
×
13573
    pRet->ast = taosStrdup(pInfo->ast);
×
13574
    if (!pRet->ast) code = terrno;
×
13575
  }
13576
  if (code) {
×
13577
    tFreeAndClearTableTSMAInfo(pRet);
×
13578
    pRet = NULL;
×
13579
  }
13580
  *pRes = pRet;
×
13581
  return code;
×
13582
}
13583

13584
void tFreeTableTSMAInfoRsp(STableTSMAInfoRsp *pRsp) {
1✔
13585
  if (pRsp && pRsp->pTsmas) {
1!
13586
    taosArrayDestroyP(pRsp->pTsmas, tFreeAndClearTableTSMAInfo);
×
13587
  }
13588
}
1✔
13589

13590
static int32_t tEncodeStreamProgressReq(SEncoder *pEncoder, const SStreamProgressReq *pReq) {
×
13591
  int32_t code = 0;
×
13592
  int32_t lino;
13593

13594
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pReq->streamId));
×
13595
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->vgId));
×
13596
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->fetchIdx));
×
13597
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pReq->subFetchIdx));
×
13598

13599
_exit:
×
13600
  return code;
×
13601
}
13602

13603
int32_t tSerializeStreamProgressReq(void *buf, int32_t bufLen, const SStreamProgressReq *pReq) {
×
13604
  SEncoder encoder = {0};
×
13605
  int32_t  code = 0;
×
13606
  int32_t  lino;
13607
  int32_t  tlen;
13608
  tEncoderInit(&encoder, buf, bufLen);
×
13609

13610
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13611
  TAOS_CHECK_EXIT(tEncodeStreamProgressReq(&encoder, pReq));
×
13612

13613
  tEndEncode(&encoder);
×
13614

13615
_exit:
×
13616
  if (code) {
×
13617
    tlen = code;
×
13618
  } else {
13619
    tlen = encoder.pos;
×
13620
  }
13621
  tEncoderClear(&encoder);
×
13622
  return tlen;
×
13623
}
13624

13625
static int32_t tDecodeStreamProgressReq(SDecoder *pDecoder, SStreamProgressReq *pReq) {
×
13626
  int32_t code = 0;
×
13627
  int32_t lino;
13628

13629
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pReq->streamId));
×
13630
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgId));
×
13631
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->fetchIdx));
×
13632
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->subFetchIdx));
×
13633

13634
_exit:
×
13635
  return code;
×
13636
}
13637

13638
int32_t tDeserializeStreamProgressReq(void *buf, int32_t bufLen, SStreamProgressReq *pReq) {
×
13639
  SDecoder decoder = {0};
×
13640
  int32_t  code = 0;
×
13641
  int32_t  lino;
13642

13643
  tDecoderInit(&decoder, (char *)buf, bufLen);
×
13644

13645
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13646
  TAOS_CHECK_EXIT(tDecodeStreamProgressReq(&decoder, pReq));
×
13647

13648
  tEndDecode(&decoder);
×
13649

13650
_exit:
×
13651
  tDecoderClear(&decoder);
×
13652
  return code;
×
13653
}
13654

13655
static int32_t tEncodeStreamProgressRsp(SEncoder *pEncoder, const SStreamProgressRsp *pRsp) {
×
13656
  int32_t code = 0;
×
13657
  int32_t lino;
13658

13659
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->streamId));
×
13660
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->vgId));
×
13661
  TAOS_CHECK_EXIT(tEncodeI8(pEncoder, pRsp->fillHisFinished));
×
13662
  TAOS_CHECK_EXIT(tEncodeI64(pEncoder, pRsp->progressDelay));
×
13663
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->fetchIdx));
×
13664
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pRsp->subFetchIdx));
×
13665

13666
_exit:
×
13667
  return code;
×
13668
}
13669

13670
int32_t tSerializeStreamProgressRsp(void *buf, int32_t bufLen, const SStreamProgressRsp *pRsp) {
×
13671
  SEncoder encoder = {0};
×
13672
  int32_t  code = 0;
×
13673
  int32_t  lino;
13674
  int32_t  tlen;
13675
  tEncoderInit(&encoder, buf, bufLen);
×
13676

13677
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13678
  TAOS_CHECK_EXIT(tEncodeStreamProgressRsp(&encoder, pRsp));
×
13679

13680
  tEndEncode(&encoder);
×
13681

13682
_exit:
×
13683
  if (code) {
×
13684
    tlen = code;
×
13685
  } else {
13686
    tlen = encoder.pos;
×
13687
  }
13688
  tEncoderClear(&encoder);
×
13689
  return tlen;
×
13690
}
13691

13692
static int32_t tDecodeStreamProgressRsp(SDecoder *pDecoder, SStreamProgressRsp *pRsp) {
×
13693
  int32_t code = 0;
×
13694
  int32_t lino;
13695

13696
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->streamId));
×
13697
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->vgId));
×
13698
  TAOS_CHECK_EXIT(tDecodeI8(pDecoder, (int8_t *)&pRsp->fillHisFinished));
×
13699
  TAOS_CHECK_EXIT(tDecodeI64(pDecoder, &pRsp->progressDelay));
×
13700
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->fetchIdx));
×
13701
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pRsp->subFetchIdx));
×
13702

13703
_exit:
×
13704
  return code;
×
13705
}
13706

13707
int32_t tDeserializeSStreamProgressRsp(void *buf, int32_t bufLen, SStreamProgressRsp *pRsp) {
×
13708
  SDecoder decoder = {0};
×
13709
  int32_t  code = 0;
×
13710
  int32_t  lino;
13711

13712
  tDecoderInit(&decoder, buf, bufLen);
×
13713

13714
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13715
  TAOS_CHECK_EXIT(tDecodeStreamProgressRsp(&decoder, pRsp));
×
13716

13717
  tEndDecode(&decoder);
×
13718

13719
_exit:
×
13720
  tDecoderClear(&decoder);
×
13721
  return code;
×
13722
}
13723

13724
int32_t tEncodeSMDropTbReqOnSingleVg(SEncoder *pEncoder, const SMDropTbReqsOnSingleVg *pReq) {
×
13725
  const SVgroupInfo *pVgInfo = &pReq->vgInfo;
×
13726
  int32_t            code = 0;
×
13727
  int32_t            lino;
13728

13729
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->vgId));
×
13730
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashBegin));
×
13731
  TAOS_CHECK_EXIT(tEncodeU32(pEncoder, pVgInfo->hashEnd));
×
13732
  TAOS_CHECK_EXIT(tEncodeSEpSet(pEncoder, &pVgInfo->epSet));
×
13733
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, pVgInfo->numOfTable));
×
13734
  int32_t size = pReq->pTbs ? pReq->pTbs->size : 0;
×
13735
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
13736
  for (int32_t i = 0; i < size; ++i) {
×
13737
    const SVDropTbReq *pInfo = taosArrayGet(pReq->pTbs, i);
×
13738
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pEncoder, pInfo));
×
13739
  }
13740
_exit:
×
13741
  return code;
×
13742
}
13743

13744
int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder *pDecoder, SMDropTbReqsOnSingleVg *pReq) {
×
13745
  int32_t code = 0;
×
13746
  int32_t lino;
13747

13748
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.vgId));
×
13749
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashBegin));
×
13750
  TAOS_CHECK_EXIT(tDecodeU32(pDecoder, &pReq->vgInfo.hashEnd));
×
13751
  TAOS_CHECK_EXIT(tDecodeSEpSet(pDecoder, &pReq->vgInfo.epSet));
×
13752
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &pReq->vgInfo.numOfTable));
×
13753
  int32_t size = 0;
×
13754
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
13755
  pReq->pTbs = taosArrayInit(size, sizeof(SVDropTbReq));
×
13756
  if (!pReq->pTbs) {
×
13757
    TAOS_CHECK_EXIT(terrno);
×
13758
  }
13759
  SVDropTbReq pTbReq = {0};
×
13760
  for (int32_t i = 0; i < size; ++i) {
×
13761
    TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pDecoder, &pTbReq));
×
13762
    if (taosArrayPush(pReq->pTbs, &pTbReq) == NULL) {
×
13763
      TAOS_CHECK_EXIT(terrno);
×
13764
    }
13765
  }
13766

13767
_exit:
×
13768
  return code;
×
13769
}
13770

13771
void tFreeSMDropTbReqOnSingleVg(void *p) {
×
13772
  SMDropTbReqsOnSingleVg *pReq = p;
×
13773
  taosArrayDestroy(pReq->pTbs);
×
13774
}
×
13775

13776
int32_t tSerializeSMDropTbsReq(void *buf, int32_t bufLen, const SMDropTbsReq *pReq) {
×
13777
  SEncoder encoder = {0};
×
13778
  int32_t  code = 0;
×
13779
  int32_t  lino;
13780
  int32_t  tlen;
13781

13782
  tEncoderInit(&encoder, buf, bufLen);
×
13783
  TAOS_CHECK_EXIT(tStartEncode(&encoder));
×
13784
  int32_t size = pReq->pVgReqs ? pReq->pVgReqs->size : 0;
×
13785
  TAOS_CHECK_EXIT(tEncodeI32(&encoder, size));
×
13786
  for (int32_t i = 0; i < size; ++i) {
×
13787
    SMDropTbReqsOnSingleVg *pVgReq = taosArrayGet(pReq->pVgReqs, i);
×
13788
    TAOS_CHECK_EXIT(tEncodeSMDropTbReqOnSingleVg(&encoder, pVgReq));
×
13789
  }
13790
  tEndEncode(&encoder);
×
13791

13792
_exit:
×
13793
  if (code) {
×
13794
    tlen = code;
×
13795
  } else {
13796
    tlen = encoder.pos;
×
13797
  }
13798
  tEncoderClear(&encoder);
×
13799
  return tlen;
×
13800
}
13801

13802
int32_t tDeserializeSMDropTbsReq(void *buf, int32_t bufLen, SMDropTbsReq *pReq) {
×
13803
  SDecoder decoder = {0};
×
13804
  int32_t  code = 0;
×
13805
  int32_t  lino;
13806

13807
  tDecoderInit(&decoder, buf, bufLen);
×
13808
  TAOS_CHECK_EXIT(tStartDecode(&decoder));
×
13809
  int32_t size = 0;
×
13810
  TAOS_CHECK_EXIT(tDecodeI32(&decoder, &size));
×
13811
  pReq->pVgReqs = taosArrayInit(size, sizeof(SMDropTbReqsOnSingleVg));
×
13812
  if (!pReq->pVgReqs) {
×
13813
    TAOS_CHECK_EXIT(terrno);
×
13814
  }
13815
  for (int32_t i = 0; i < size; ++i) {
×
13816
    SMDropTbReqsOnSingleVg vgReq = {0};
×
13817
    TAOS_CHECK_EXIT(tDecodeSMDropTbReqOnSingleVg(&decoder, &vgReq));
×
13818
    if (taosArrayPush(pReq->pVgReqs, &vgReq) == NULL) {
×
13819
      TAOS_CHECK_EXIT(terrno);
×
13820
    }
13821
  }
13822
  tEndDecode(&decoder);
×
13823
_exit:
×
13824
  tDecoderClear(&decoder);
×
13825
  return code;
×
13826
}
13827

13828
void tFreeSMDropTbsReq(void *p) {
×
13829
  SMDropTbsReq *pReq = p;
×
13830
  taosArrayDestroyEx(pReq->pVgReqs, tFreeSMDropTbReqOnSingleVg);
×
13831
}
×
13832

13833
int32_t tEncodeVFetchTtlExpiredTbsRsp(SEncoder *pCoder, const SVFetchTtlExpiredTbsRsp *pRsp) {
×
13834
  int32_t code = 0;
×
13835
  int32_t lino;
13836

13837
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, pRsp->vgId));
×
13838
  int32_t size = pRsp->pExpiredTbs ? pRsp->pExpiredTbs->size : 0;
×
13839
  TAOS_CHECK_EXIT(tEncodeI32(pCoder, size));
×
13840
  for (int32_t i = 0; i < size; ++i) {
×
13841
    TAOS_CHECK_EXIT(tEncodeSVDropTbReq(pCoder, taosArrayGet(pRsp->pExpiredTbs, i)));
×
13842
  }
13843

13844
_exit:
×
13845
  return code;
×
13846
}
13847

13848
int32_t tDecodeVFetchTtlExpiredTbsRsp(SDecoder *pCoder, SVFetchTtlExpiredTbsRsp *pRsp) {
×
13849
  int32_t code = 0;
×
13850
  int32_t lino;
13851

13852
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &pRsp->vgId));
×
13853
  int32_t size = 0;
×
13854
  TAOS_CHECK_EXIT(tDecodeI32(pCoder, &size));
×
13855
  if (size > 0) {
×
13856
    pRsp->pExpiredTbs = taosArrayInit(size, sizeof(SVDropTbReq));
×
13857
    if (!pRsp->pExpiredTbs) {
×
13858
      TAOS_CHECK_EXIT(terrno);
×
13859
    }
13860
    SVDropTbReq tb = {0};
×
13861
    for (int32_t i = 0; i < size; ++i) {
×
13862
      TAOS_CHECK_EXIT(tDecodeSVDropTbReq(pCoder, &tb));
×
13863
      if (taosArrayPush(pRsp->pExpiredTbs, &tb) == NULL) {
×
13864
        TAOS_CHECK_EXIT(terrno);
×
13865
      }
13866
    }
13867
  }
13868
_exit:
×
13869
  return code;
×
13870
}
13871

13872
void tFreeFetchTtlExpiredTbsRsp(void *p) {
2✔
13873
  SVFetchTtlExpiredTbsRsp *pRsp = p;
2✔
13874
  taosArrayDestroy(pRsp->pExpiredTbs);
2✔
13875
}
2✔
13876

13877
int32_t tEncodeMqBatchMetaRsp(SEncoder *pEncoder, const SMqBatchMetaRsp *pRsp) {
×
13878
  int32_t code = 0;
×
13879
  int32_t lino;
13880

13881
  TAOS_CHECK_EXIT(tEncodeSTqOffsetVal(pEncoder, &pRsp->rspOffset));
×
13882

13883
  int32_t size = taosArrayGetSize(pRsp->batchMetaReq);
×
13884
  TAOS_CHECK_EXIT(tEncodeI32(pEncoder, size));
×
13885
  if (size > 0) {
×
13886
    for (int32_t i = 0; i < size; i++) {
×
13887
      void   *pMetaReq = taosArrayGetP(pRsp->batchMetaReq, i);
×
13888
      int32_t metaLen = *(int32_t *)taosArrayGet(pRsp->batchMetaLen, i);
×
13889
      TAOS_CHECK_EXIT(tEncodeBinary(pEncoder, pMetaReq, metaLen));
×
13890
    }
13891
  }
13892
_exit:
×
13893
  return code;
×
13894
}
13895

13896
int32_t tDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
×
13897
  int32_t size = 0;
×
13898
  int32_t code = 0;
×
13899
  int32_t lino;
13900

13901
  TAOS_CHECK_EXIT(tDecodeI32(pDecoder, &size));
×
13902
  if (size > 0) {
×
13903
    pRsp->batchMetaReq = taosArrayInit(size, POINTER_BYTES);
×
13904
    if (!pRsp->batchMetaReq) {
×
13905
      TAOS_CHECK_EXIT(terrno);
×
13906
    }
13907
    pRsp->batchMetaLen = taosArrayInit(size, sizeof(int32_t));
×
13908
    if (!pRsp->batchMetaLen) {
×
13909
      TAOS_CHECK_EXIT(terrno);
×
13910
    }
13911
    for (int32_t i = 0; i < size; i++) {
×
13912
      void    *pCreate = NULL;
×
13913
      uint64_t len = 0;
×
13914
      TAOS_CHECK_EXIT(tDecodeBinaryAlloc(pDecoder, &pCreate, &len));
×
13915
      int32_t l = (int32_t)len;
×
13916
      if (taosArrayPush(pRsp->batchMetaReq, &pCreate) == NULL) {
×
13917
        TAOS_CHECK_EXIT(terrno);
×
13918
      }
13919
      if (taosArrayPush(pRsp->batchMetaLen, &l) == NULL) {
×
13920
        TAOS_CHECK_EXIT(terrno);
×
13921
      }
13922
    }
13923
  }
13924
_exit:
×
13925
  return code;
×
13926
}
13927

13928
int32_t tSemiDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
×
13929
  int32_t code = 0;
×
13930
  int32_t lino;
13931

13932
  TAOS_CHECK_EXIT(tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset));
×
13933
  if (pDecoder->size < pDecoder->pos) {
×
13934
    return TSDB_CODE_INVALID_PARA;
×
13935
  }
13936
  pRsp->metaBuffLen = TD_CODER_REMAIN_CAPACITY(pDecoder);
×
13937
  pRsp->pMetaBuff = taosMemoryCalloc(1, pRsp->metaBuffLen);
×
13938
  if (pRsp->pMetaBuff == NULL) {
×
13939
    TAOS_CHECK_EXIT(terrno);
×
13940
  }
13941
  memcpy(pRsp->pMetaBuff, TD_CODER_CURRENT(pDecoder), pRsp->metaBuffLen);
×
13942

13943
_exit:
×
13944
  return code;
×
13945
}
13946

13947
void tDeleteMqBatchMetaRsp(SMqBatchMetaRsp *pRsp) {
×
13948
  taosMemoryFreeClear(pRsp->pMetaBuff);
×
13949
  taosArrayDestroyP(pRsp->batchMetaReq, NULL);
×
13950
  taosArrayDestroy(pRsp->batchMetaLen);
×
13951
  pRsp->batchMetaReq = NULL;
×
13952
  pRsp->batchMetaLen = NULL;
×
13953
}
×
13954

13955
bool hasExtSchema(const SExtSchema *pExtSchema) {
×
13956
  return pExtSchema->typeMod != 0;
×
13957
}
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