refact meta 5

This commit is contained in:
Hongze Cheng 2022-04-20 10:25:08 +00:00
parent 0e584ae418
commit 4628884b92
3 changed files with 24 additions and 8 deletions

View File

@ -1482,6 +1482,7 @@ typedef struct SVCreateStbReq {
SRSmaParam pRSmaParam;
} SVCreateStbReq;
int tEnSizeSVCreateStbReq(const SVCreateStbReq *pReq, int32_t *size);
int tEncodeSVCreateStbReq(SCoder* pCoder, const SVCreateStbReq* pReq);
int tDecodeSVCreateStbReq(SCoder* pCoder, SVCreateStbReq* pReq);

View File

@ -3691,6 +3691,22 @@ void tFreeSCMCreateStreamReq(SCMCreateStreamReq *pReq) {
taosMemoryFreeClear(pReq->ast);
}
int tEnSizeSVCreateStbReq(const SVCreateStbReq *pReq, int32_t *size) {
SCoder coder = {0};
tCoderInit(&coder, TD_LITTLE_ENDIAN, NULL, 0, TD_ENCODER);
if (tEncodeSVCreateStbReq(&coder, pReq) < 0) {
tCoderClear(&coder);
return -1;
}
*size = coder.pos;
tCoderClear(&coder);
return 0;
}
int tEncodeSVCreateStbReq(SCoder *pCoder, const SVCreateStbReq *pReq) {
if (tStartEncode(pCoder) < 0) return -1;

View File

@ -394,15 +394,15 @@ static FORCE_INLINE int schemaExColIdCompare(const void *colId, const void *pSch
}
static void *mndBuildVCreateStbReq(SMnode *pMnode, SVgObj *pVgroup, SStbObj *pStb, int32_t *pContLen) {
SCoder coder;
int32_t contLen;
SName name = {0};
SCoder coder = {0};
int32_t contLen;
SName name = {0};
SVCreateStbReq req = {0};
tNameFromString(&name, pStb->name, T_NAME_ACCT | T_NAME_DB | T_NAME_TABLE);
char dbFName[TSDB_DB_FNAME_LEN] = {0};
tNameGetFullDbName(&name, dbFName);
SVCreateStbReq req = {0};
req.name = (char *)tNameGetTableName(&name);
req.suid = pStb->uid;
req.rollup = pStb->aggregationMethod > -1 ? 1 : 0;
@ -432,14 +432,13 @@ static void *mndBuildVCreateStbReq(SMnode *pMnode, SVgObj *pVgroup, SStbObj *pSt
}
// get length
tCoderInit(&coder, TD_LITTLE_ENDIAN, NULL, 0, TD_ENCODER);
if (tEncodeSVCreateStbReq(&coder, &req) < 0) {
if (tEnSizeSVCreateStbReq(&req, &contLen) < 0) {
taosMemoryFree(req.pRSmaParam.pFuncIds);
return NULL;
}
tCoderClear(&coder);
contLen = sizeof(SMsgHead) + coder.pos;
contLen += sizeof(SMsgHead);
SMsgHead *pHead = taosMemoryMalloc(contLen);
if (pHead == NULL) {
taosMemoryFree(req.pRSmaParam.pFuncIds);