fix create stable error
This commit is contained in:
parent
e984a6d4ad
commit
a52213dd23
|
@ -37,8 +37,8 @@
|
|||
#define TD_MSG_RANGE_CODE_
|
||||
#include "tmsgdef.h"
|
||||
|
||||
#include "tlog.h"
|
||||
#include "tcol.h"
|
||||
#include "tlog.h"
|
||||
|
||||
#define DECODESQL() \
|
||||
do { \
|
||||
|
@ -635,7 +635,7 @@ int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pR
|
|||
if (tDecodeI32(&decoder, &pReq->ast1Len) < 0) return -1;
|
||||
if (tDecodeI32(&decoder, &pReq->ast2Len) < 0) return -1;
|
||||
|
||||
pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SField));
|
||||
pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SFieldWithOptions));
|
||||
pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField));
|
||||
pReq->pFuncs = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN);
|
||||
if (pReq->pColumns == NULL || pReq->pTags == NULL || pReq->pFuncs == NULL) {
|
||||
|
@ -7569,6 +7569,7 @@ int tEncodeSVCreateStbReq(SEncoder *pCoder, const SVCreateStbReq *pReq) {
|
|||
}
|
||||
if (tEncodeI8(pCoder, pReq->source) < 0) return -1;
|
||||
|
||||
if (tEncodeI8(pCoder, pReq->colCmpred) < 0) return -1;
|
||||
if (tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr) < 0) return -1;
|
||||
|
||||
tEndEncode(pCoder);
|
||||
|
@ -7594,6 +7595,9 @@ int tDecodeSVCreateStbReq(SDecoder *pCoder, SVCreateStbReq *pReq) {
|
|||
if (!tDecodeIsEnd(pCoder)) {
|
||||
if (tDecodeI8(pCoder, &pReq->source) < 0) return -1;
|
||||
|
||||
if (!tDecodeIsEnd(pCoder)) {
|
||||
if (tDecodeI8(pCoder, &pReq->colCmpred) < 0) return -1;
|
||||
}
|
||||
if (!tDecodeIsEnd(pCoder)) {
|
||||
if (tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr) < 0) return -1;
|
||||
}
|
||||
|
@ -7638,7 +7642,9 @@ int tEncodeSVCreateTbReq(SEncoder *pCoder, const SVCreateTbReq *pReq) {
|
|||
if (tEncodeI32(pCoder, pReq->sqlLen) < 0) return -1;
|
||||
if (tEncodeBinary(pCoder, pReq->sql, pReq->sqlLen) < 0) return -1;
|
||||
}
|
||||
if (tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr) < 0) return -1;
|
||||
if (pReq->type == TSDB_SUPER_TABLE || pReq->type == TSDB_NORMAL_TABLE) {
|
||||
if (tEncodeSColCmprWrapper(pCoder, &pReq->colCmpr) < 0) return -1;
|
||||
}
|
||||
|
||||
// Encode Column Options: encode compress level
|
||||
|
||||
|
@ -7690,10 +7696,10 @@ int tDecodeSVCreateTbReq(SDecoder *pCoder, SVCreateTbReq *pReq) {
|
|||
if (pReq->sqlLen > 0) {
|
||||
if (tDecodeBinaryAlloc(pCoder, (void **)&pReq->sql, NULL) < 0) return -1;
|
||||
}
|
||||
|
||||
if (!tDecodeIsEnd(pCoder)) {
|
||||
if (tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr) < 0) return -1;
|
||||
}
|
||||
if (pReq->type == TSDB_NORMAL_TABLE || pReq->type == TSDB_SUPER_TABLE)
|
||||
if (!tDecodeIsEnd(pCoder)) {
|
||||
if (tDecodeSColCmprWrapperEx(pCoder, &pReq->colCmpr) < 0) return -1;
|
||||
}
|
||||
}
|
||||
|
||||
tEndDecode(pCoder);
|
||||
|
|
|
@ -310,6 +310,7 @@ _OVER:
|
|||
taosMemoryFreeClear(pStb->pColumns);
|
||||
taosMemoryFreeClear(pStb->pTags);
|
||||
taosMemoryFreeClear(pStb->comment);
|
||||
taosMemoryFree(pStb->pCmpr);
|
||||
}
|
||||
taosMemoryFreeClear(pRow);
|
||||
return NULL;
|
||||
|
@ -432,6 +433,8 @@ static int32_t mndStbActionUpdate(SSdb *pSdb, SStbObj *pOld, SStbObj *pNew) {
|
|||
memcpy(pOld->pAst2, pNew->pAst2, pNew->ast2Len);
|
||||
pOld->ast2Len = pNew->ast2Len;
|
||||
}
|
||||
memcpy(pOld->pCmpr, pNew->pCmpr, pOld->numOfColumns * sizeof(SCmprObj));
|
||||
|
||||
taosWUnLockLatch(&pOld->lock);
|
||||
return 0;
|
||||
}
|
||||
|
@ -494,10 +497,12 @@ void *mndBuildVCreateStbReq(SMnode *pMnode, SVgObj *pVgroup, SStbObj *pStb, int3
|
|||
req.schemaTag.version = pStb->tagVer;
|
||||
req.schemaTag.pSchema = pStb->pTags;
|
||||
|
||||
req.colCmpred = 1;
|
||||
SColCmprWrapper *pCmpr = &req.colCmpr;
|
||||
pCmpr->version = pStb->colVer;
|
||||
pCmpr->nCols = pStb->numOfColumns;
|
||||
for (int i = 0; pStb->numOfColumns; i++) {
|
||||
req.colCmpr.pColCmpr = taosMemoryCalloc(1, sizeof(SColCmpr));
|
||||
for (int32_t i = 0; i < pStb->numOfColumns; i++) {
|
||||
SColCmpr *p = &pCmpr->pColCmpr[i];
|
||||
p->alg = pStb->pCmpr[i].cmprAlg;
|
||||
p->id = pStb->pCmpr[i].colId;
|
||||
|
@ -553,10 +558,12 @@ void *mndBuildVCreateStbReq(SMnode *pMnode, SVgObj *pVgroup, SStbObj *pStb, int3
|
|||
*pContLen = contLen;
|
||||
taosMemoryFreeClear(req.rsmaParam.qmsg[0]);
|
||||
taosMemoryFreeClear(req.rsmaParam.qmsg[1]);
|
||||
taosMemoryFreeClear(req.colCmpr.pColCmpr);
|
||||
return pHead;
|
||||
_err:
|
||||
taosMemoryFreeClear(req.rsmaParam.qmsg[0]);
|
||||
taosMemoryFreeClear(req.rsmaParam.qmsg[1]);
|
||||
taosMemoryFreeClear(req.colCmpr.pColCmpr);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -619,7 +626,7 @@ int32_t mndCheckCreateStbReq(SMCreateStbReq *pCreate) {
|
|||
}
|
||||
|
||||
for (int32_t i = 0; i < pCreate->numOfColumns; ++i) {
|
||||
SField *pField1 = taosArrayGet(pCreate->pColumns, i);
|
||||
SFieldWithOptions *pField1 = taosArrayGet(pCreate->pColumns, i);
|
||||
if (pField1->type >= TSDB_DATA_TYPE_MAX) {
|
||||
terrno = TSDB_CODE_MND_INVALID_STB_OPTION;
|
||||
return -1;
|
||||
|
@ -861,8 +868,8 @@ int32_t mndBuildStbFromReq(SMnode *pMnode, SStbObj *pDst, SMCreateStbReq *pCreat
|
|||
}
|
||||
|
||||
for (int32_t i = 0; i < pDst->numOfColumns; ++i) {
|
||||
SField *pField = taosArrayGet(pCreate->pColumns, i);
|
||||
SSchema *pSchema = &pDst->pColumns[i];
|
||||
SFieldWithOptions *pField = taosArrayGet(pCreate->pColumns, i);
|
||||
SSchema *pSchema = &pDst->pColumns[i];
|
||||
pSchema->type = pField->type;
|
||||
pSchema->bytes = pField->bytes;
|
||||
pSchema->flags = pField->flags;
|
||||
|
@ -883,10 +890,15 @@ int32_t mndBuildStbFromReq(SMnode *pMnode, SStbObj *pDst, SMCreateStbReq *pCreat
|
|||
pSchema->colId = pDst->nextColId;
|
||||
pDst->nextColId++;
|
||||
}
|
||||
|
||||
// set col compress
|
||||
pDst->pCmpr = taosMemoryCalloc(1, pDst->numOfColumns * sizeof(SCmprObj));
|
||||
for (int32_t i = 0; i < pDst->numOfColumns; i++) {
|
||||
SCmprObj *p = &pDst->pCmpr[i];
|
||||
SFieldWithOptions *pField = taosArrayGet(pCreate->pColumns, i);
|
||||
SSchema *pSchema = &pDst->pColumns[i];
|
||||
|
||||
SCmprObj *pColCmpr = &pDst->pCmpr[i];
|
||||
pColCmpr->colId = pSchema->colId;
|
||||
pColCmpr->cmprAlg = pField->compress;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -1126,8 +1138,8 @@ static int32_t mndProcessCreateStbReq(SRpcMsg *pReq) {
|
|||
}
|
||||
|
||||
// todo xsdebug
|
||||
terrno = TSDB_CODE_OPS_NOT_SUPPORT;
|
||||
goto _OVER;
|
||||
// terrno = TSDB_CODE_OPS_NOT_SUPPORT;
|
||||
// goto _OVER;
|
||||
|
||||
mInfo("stb:%s, start to create", createReq.name);
|
||||
if (mndCheckCreateStbReq(&createReq) != 0) {
|
||||
|
|
|
@ -43,8 +43,6 @@ END:
|
|||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int metaEncodeEntry(SEncoder *pCoder, const SMetaEntry *pME) {
|
||||
if (tStartEncode(pCoder) < 0) return -1;
|
||||
|
||||
|
|
Loading…
Reference in New Issue