提交 70312ba0 编写于 作者: wmmhello's avatar wmmhello

fix:add json test case

上级 125c0fa5
...@@ -605,31 +605,39 @@ static int metaUpdateTableTagVal(SMeta *pMeta, int64_t version, SVAlterTbReq *pA ...@@ -605,31 +605,39 @@ static int metaUpdateTableTagVal(SMeta *pMeta, int64_t version, SVAlterTbReq *pA
if (iCol == 0) { if (iCol == 0) {
// TODO : need to update tag index // TODO : need to update tag index
} }
ctbEntry.version = version; ctbEntry.version = version;
SKVRowBuilder kvrb = {0}; if(pTagSchema->nCols == 1 && pTagSchema->pSchema[0].type == TSDB_DATA_TYPE_JSON){
const SKVRow pOldTag = (const SKVRow)ctbEntry.ctbEntry.pTags; ctbEntry.ctbEntry.pTags = taosMemoryMalloc(pAlterTbReq->nTagVal);
SKVRow pNewTag = NULL; if(ctbEntry.ctbEntry.pTags == NULL){
terrno = TSDB_CODE_OUT_OF_MEMORY;
tdInitKVRowBuilder(&kvrb); goto _err;
for (int32_t i = 0; i < pTagSchema->nCols; i++) { }
SSchema *pCol = &pTagSchema->pSchema[i]; memcpy((void*)ctbEntry.ctbEntry.pTags, pAlterTbReq->pTagVal, pAlterTbReq->nTagVal);
if (iCol == i) { }else{
tdAddColToKVRow(&kvrb, pCol->colId, pAlterTbReq->pTagVal, pAlterTbReq->nTagVal); SKVRowBuilder kvrb = {0};
} else { const SKVRow pOldTag = (const SKVRow)ctbEntry.ctbEntry.pTags;
void *p = tdGetKVRowValOfCol(pOldTag, pCol->colId); SKVRow pNewTag = NULL;
if (p) {
if (IS_VAR_DATA_TYPE(pCol->type)) { tdInitKVRowBuilder(&kvrb);
tdAddColToKVRow(&kvrb, pCol->colId, p, varDataTLen(p)); for (int32_t i = 0; i < pTagSchema->nCols; i++) {
} else { SSchema *pCol = &pTagSchema->pSchema[i];
tdAddColToKVRow(&kvrb, pCol->colId, p, pCol->bytes); if (iCol == i) {
tdAddColToKVRow(&kvrb, pCol->colId, pAlterTbReq->pTagVal, pAlterTbReq->nTagVal);
} else {
void *p = tdGetKVRowValOfCol(pOldTag, pCol->colId);
if (p) {
if (IS_VAR_DATA_TYPE(pCol->type)) {
tdAddColToKVRow(&kvrb, pCol->colId, p, varDataTLen(p));
} else {
tdAddColToKVRow(&kvrb, pCol->colId, p, pCol->bytes);
}
} }
} }
} }
}
ctbEntry.ctbEntry.pTags = tdGetKVRowFromBuilder(&kvrb); ctbEntry.ctbEntry.pTags = tdGetKVRowFromBuilder(&kvrb);
tdDestroyKVRowBuilder(&kvrb); tdDestroyKVRowBuilder(&kvrb);
}
// save to table.db // save to table.db
metaSaveToTbDb(pMeta, &ctbEntry); metaSaveToTbDb(pMeta, &ctbEntry);
...@@ -639,6 +647,7 @@ static int metaUpdateTableTagVal(SMeta *pMeta, int64_t version, SVAlterTbReq *pA ...@@ -639,6 +647,7 @@ static int metaUpdateTableTagVal(SMeta *pMeta, int64_t version, SVAlterTbReq *pA
tDecoderClear(&dc1); tDecoderClear(&dc1);
tDecoderClear(&dc2); tDecoderClear(&dc2);
if (ctbEntry.ctbEntry.pTags) taosMemoryFree((void*)ctbEntry.ctbEntry.pTags);
if (ctbEntry.pBuf) taosMemoryFree(ctbEntry.pBuf); if (ctbEntry.pBuf) taosMemoryFree(ctbEntry.pBuf);
if (stbEntry.pBuf) tdbFree(stbEntry.pBuf); if (stbEntry.pBuf) tdbFree(stbEntry.pBuf);
tdbTbcClose(pTbDbc); tdbTbcClose(pTbDbc);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册