fix[TS-5812]:add params check
This commit is contained in:
parent
e05601ddfa
commit
a95304a857
|
@ -182,7 +182,7 @@ void tColDataClear(SColData *pColData);
|
||||||
void tColDataDeepClear(SColData *pColData);
|
void tColDataDeepClear(SColData *pColData);
|
||||||
int32_t tColDataAppendValue(SColData *pColData, SColVal *pColVal);
|
int32_t tColDataAppendValue(SColData *pColData, SColVal *pColVal);
|
||||||
int32_t tColDataUpdateValue(SColData *pColData, SColVal *pColVal, bool forward);
|
int32_t tColDataUpdateValue(SColData *pColData, SColVal *pColVal, bool forward);
|
||||||
void tColDataGetValue(SColData *pColData, int32_t iVal, SColVal *pColVal);
|
int32_t tColDataGetValue(SColData *pColData, int32_t iVal, SColVal *pColVal);
|
||||||
uint8_t tColDataGetBitValue(const SColData *pColData, int32_t iVal);
|
uint8_t tColDataGetBitValue(const SColData *pColData, int32_t iVal);
|
||||||
int32_t tColDataCopy(SColData *pColDataFrom, SColData *pColData, xMallocFn xMalloc, void *arg);
|
int32_t tColDataCopy(SColData *pColDataFrom, SColData *pColData, xMallocFn xMalloc, void *arg);
|
||||||
void tColDataArrGetRowKey(SColData *aColData, int32_t nColData, int32_t iRow, SRowKey *key);
|
void tColDataArrGetRowKey(SColData *aColData, int32_t nColData, int32_t iRow, SRowKey *key);
|
||||||
|
|
|
@ -2671,8 +2671,12 @@ static void (*tColDataGetValueImpl[])(SColData *pColData, int32_t iVal, SColVal
|
||||||
tColDataGetValue6, // HAS_VALUE | HAS_NULL
|
tColDataGetValue6, // HAS_VALUE | HAS_NULL
|
||||||
tColDataGetValue7 // HAS_VALUE | HAS_NULL | HAS_NONE
|
tColDataGetValue7 // HAS_VALUE | HAS_NULL | HAS_NONE
|
||||||
};
|
};
|
||||||
void tColDataGetValue(SColData *pColData, int32_t iVal, SColVal *pColVal) {
|
int32_t tColDataGetValue(SColData *pColData, int32_t iVal, SColVal *pColVal) {
|
||||||
|
if (iVal < 0 && iVal >= pColData->nVal || pColData->flag <= 0){
|
||||||
|
return TSDB_CODE_INVALID_PARA;
|
||||||
|
}
|
||||||
tColDataGetValueImpl[pColData->flag](pColData, iVal, pColVal);
|
tColDataGetValueImpl[pColData->flag](pColData, iVal, pColVal);
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t tColDataGetBitValue(const SColData *pColData, int32_t iVal) {
|
uint8_t tColDataGetBitValue(const SColData *pColData, int32_t iVal) {
|
||||||
|
@ -3436,7 +3440,10 @@ static int32_t tColDataCopyRowAppend(SColData *aFromColData, int32_t iFromRow, S
|
||||||
|
|
||||||
for (int32_t i = 0; i < nColData; i++) {
|
for (int32_t i = 0; i < nColData; i++) {
|
||||||
SColVal cv = {0};
|
SColVal cv = {0};
|
||||||
tColDataGetValue(&aFromColData[i], iFromRow, &cv);
|
code = tColDataGetValue(&aFromColData[i], iFromRow, &cv);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
code = tColDataAppendValue(&aToColData[i], &cv);
|
code = tColDataAppendValue(&aToColData[i], &cv);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
return code;
|
return code;
|
||||||
|
@ -3575,7 +3582,10 @@ static int32_t tColDataMerge(SArray **colArr) {
|
||||||
SColData *dstCol = taosArrayGet(dst, j);
|
SColData *dstCol = taosArrayGet(dst, j);
|
||||||
|
|
||||||
SColVal cv;
|
SColVal cv;
|
||||||
tColDataGetValue(srcCol, i, &cv);
|
code = tColDataGetValue(srcCol, i, &cv);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
goto _exit;
|
||||||
|
}
|
||||||
code = tColDataAppendValue(dstCol, &cv);
|
code = tColDataAppendValue(dstCol, &cv);
|
||||||
if (code) {
|
if (code) {
|
||||||
goto _exit;
|
goto _exit;
|
||||||
|
@ -3588,7 +3598,10 @@ static int32_t tColDataMerge(SArray **colArr) {
|
||||||
SColData *dstCol = taosArrayGet(dst, j);
|
SColData *dstCol = taosArrayGet(dst, j);
|
||||||
|
|
||||||
SColVal cv;
|
SColVal cv;
|
||||||
tColDataGetValue(srcCol, i, &cv);
|
code = tColDataGetValue(srcCol, i, &cv);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
goto _exit;
|
||||||
|
}
|
||||||
code = tColDataUpdateValue(dstCol, &cv, true);
|
code = tColDataUpdateValue(dstCol, &cv, true);
|
||||||
if (code) {
|
if (code) {
|
||||||
goto _exit;
|
goto _exit;
|
||||||
|
|
|
@ -796,7 +796,8 @@ int32_t tqRetrieveDataBlock(STqReader* pReader, SSDataBlock** pRes, const char*
|
||||||
sourceIdx++;
|
sourceIdx++;
|
||||||
} else if (pCol->cid == pColData->info.colId) {
|
} else if (pCol->cid == pColData->info.colId) {
|
||||||
for (int32_t i = 0; i < pCol->nVal; i++) {
|
for (int32_t i = 0; i < pCol->nVal; i++) {
|
||||||
tColDataGetValue(pCol, i, &colVal);
|
code = tColDataGetValue(pCol, i, &colVal);
|
||||||
|
TSDB_CHECK_CODE(code, line, END);
|
||||||
code = doSetVal(pColData, i, &colVal);
|
code = doSetVal(pColData, i, &colVal);
|
||||||
TSDB_CHECK_CODE(code, line, END);
|
TSDB_CHECK_CODE(code, line, END);
|
||||||
}
|
}
|
||||||
|
@ -937,7 +938,7 @@ static int32_t tqProcessColData(STqReader* pReader, SSubmitTbData* pSubmitTbData
|
||||||
pCol = taosArrayGet(pCols, j);
|
pCol = taosArrayGet(pCols, j);
|
||||||
TQ_NULL_GO_TO_END(pCol);
|
TQ_NULL_GO_TO_END(pCol);
|
||||||
SColVal colVal = {0};
|
SColVal colVal = {0};
|
||||||
tColDataGetValue(pCol, i, &colVal);
|
TQ_ERR_GO_TO_END(tColDataGetValue(pCol, i, &colVal));
|
||||||
PROCESS_VAL
|
PROCESS_VAL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -961,7 +962,7 @@ static int32_t tqProcessColData(STqReader* pReader, SSubmitTbData* pSubmitTbData
|
||||||
SColumnInfoData* pColData = taosArrayGet(pBlock->pDataBlock, targetIdx);
|
SColumnInfoData* pColData = taosArrayGet(pBlock->pDataBlock, targetIdx);
|
||||||
TQ_NULL_GO_TO_END(pColData);
|
TQ_NULL_GO_TO_END(pColData);
|
||||||
SColVal colVal = {0};
|
SColVal colVal = {0};
|
||||||
tColDataGetValue(pCol, i, &colVal);
|
TQ_ERR_GO_TO_END(tColDataGetValue(pCol, i, &colVal));
|
||||||
SET_DATA
|
SET_DATA
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1715,7 +1715,7 @@ int32_t tsdbCacheColFormatUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SBlo
|
||||||
uint8_t colType = tColDataGetBitValue(pColData, tRow.iRow);
|
uint8_t colType = tColDataGetBitValue(pColData, tRow.iRow);
|
||||||
if (colType == 2) {
|
if (colType == 2) {
|
||||||
SColVal colVal = COL_VAL_NONE(pColData->cid, pColData->type);
|
SColVal colVal = COL_VAL_NONE(pColData->cid, pColData->type);
|
||||||
tColDataGetValue(pColData, tRow.iRow, &colVal);
|
TAOS_CHECK_GOTO(tColDataGetValue(pColData, tRow.iRow, &colVal), &lino, _exit);
|
||||||
|
|
||||||
SLastUpdateCtx updateCtx = {.lflag = LFLAG_LAST, .tsdbRowKey = tsdbRowKey, .colVal = colVal};
|
SLastUpdateCtx updateCtx = {.lflag = LFLAG_LAST, .tsdbRowKey = tsdbRowKey, .colVal = colVal};
|
||||||
if (!taosArrayPush(ctxArray, &updateCtx)) {
|
if (!taosArrayPush(ctxArray, &updateCtx)) {
|
||||||
|
|
|
@ -123,7 +123,8 @@ static int32_t tColRowGetPriamyKeyDeepCopy(SBlockData* pBlock, int32_t irow, int
|
||||||
|
|
||||||
pColData = &pBlock->aColData[slotId];
|
pColData = &pBlock->aColData[slotId];
|
||||||
|
|
||||||
tColDataGetValue(pColData, irow, &cv);
|
code = tColDataGetValue(pColData, irow, &cv);
|
||||||
|
TSDB_CHECK_CODE(code, lino, _end);
|
||||||
|
|
||||||
pKey->numOfPKs = 1;
|
pKey->numOfPKs = 1;
|
||||||
pKey->pks[0].type = cv.value.type;
|
pKey->pks[0].type = cv.value.type;
|
||||||
|
@ -1603,7 +1604,8 @@ static int32_t copyBlockDataToSDataBlock(STsdbReader* pReader, SRowKey* pLastPro
|
||||||
TSDB_CHECK_CODE(code, lino, _end);
|
TSDB_CHECK_CODE(code, lino, _end);
|
||||||
} else { // varchar/nchar type
|
} else { // varchar/nchar type
|
||||||
for (int32_t j = pDumpInfo->rowIndex; rowIndex < dumpedRows; j += step) {
|
for (int32_t j = pDumpInfo->rowIndex; rowIndex < dumpedRows; j += step) {
|
||||||
tColDataGetValue(pData, j, &cv);
|
code = tColDataGetValue(pData, j, &cv);
|
||||||
|
TSDB_CHECK_CODE(code, lino, _end);
|
||||||
code = doCopyColVal(pColData, rowIndex++, i, &cv, pSupInfo);
|
code = doCopyColVal(pColData, rowIndex++, i, &cv, pSupInfo);
|
||||||
TSDB_CHECK_CODE(code, lino, _end);
|
TSDB_CHECK_CODE(code, lino, _end);
|
||||||
}
|
}
|
||||||
|
@ -5282,7 +5284,8 @@ int32_t doAppendRowFromFileBlock(SSDataBlock* pResBlock, STsdbReader* pReader, S
|
||||||
|
|
||||||
SColumnInfoData* pCol = TARRAY_GET_ELEM(pResBlock->pDataBlock, pSupInfo->slotId[i]);
|
SColumnInfoData* pCol = TARRAY_GET_ELEM(pResBlock->pDataBlock, pSupInfo->slotId[i]);
|
||||||
if (pData->cid == pSupInfo->colId[i]) {
|
if (pData->cid == pSupInfo->colId[i]) {
|
||||||
tColDataGetValue(pData, rowIndex, &cv);
|
code = tColDataGetValue(pData, rowIndex, &cv);
|
||||||
|
TSDB_CHECK_CODE(code, lino, _end);
|
||||||
code = doCopyColVal(pCol, outputRowIndex, i, &cv, pSupInfo);
|
code = doCopyColVal(pCol, outputRowIndex, i, &cv, pSupInfo);
|
||||||
TSDB_CHECK_CODE(code, lino, _end);
|
TSDB_CHECK_CODE(code, lino, _end);
|
||||||
j += 1;
|
j += 1;
|
||||||
|
|
|
@ -622,7 +622,9 @@ void tsdbRowGetColVal(TSDBROW *pRow, STSchema *pTSchema, int32_t iCol, SColVal *
|
||||||
SColData *pColData = tBlockDataGetColData(pRow->pBlockData, pTColumn->colId);
|
SColData *pColData = tBlockDataGetColData(pRow->pBlockData, pTColumn->colId);
|
||||||
|
|
||||||
if (pColData) {
|
if (pColData) {
|
||||||
tColDataGetValue(pColData, pRow->iRow, pColVal);
|
if (tColDataGetValue(pColData, pRow->iRow, pColVal) != 0){
|
||||||
|
tsdbError("failed to tColDataGetValue");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
*pColVal = COL_VAL_NONE(pTColumn->colId, pTColumn->type);
|
*pColVal = COL_VAL_NONE(pTColumn->colId, pTColumn->type);
|
||||||
}
|
}
|
||||||
|
@ -645,7 +647,9 @@ void tColRowGetPrimaryKey(SBlockData *pBlock, int32_t irow, SRowKey *key) {
|
||||||
SColData *pColData = &pBlock->aColData[i];
|
SColData *pColData = &pBlock->aColData[i];
|
||||||
if (pColData->cflag & COL_IS_KEY) {
|
if (pColData->cflag & COL_IS_KEY) {
|
||||||
SColVal cv;
|
SColVal cv;
|
||||||
tColDataGetValue(pColData, irow, &cv);
|
if (tColDataGetValue(pColData, irow, &cv) != 0){
|
||||||
|
break;
|
||||||
|
}
|
||||||
key->pks[key->numOfPKs] = cv.value;
|
key->pks[key->numOfPKs] = cv.value;
|
||||||
key->numOfPKs++;
|
key->numOfPKs++;
|
||||||
} else {
|
} else {
|
||||||
|
@ -719,7 +723,9 @@ SColVal *tsdbRowIterNext(STSDBRowIter *pIter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pIter->iColData <= pIter->pRow->pBlockData->nColData) {
|
if (pIter->iColData <= pIter->pRow->pBlockData->nColData) {
|
||||||
tColDataGetValue(&pIter->pRow->pBlockData->aColData[pIter->iColData - 1], pIter->pRow->iRow, &pIter->cv);
|
if (tColDataGetValue(&pIter->pRow->pBlockData->aColData[pIter->iColData - 1], pIter->pRow->iRow, &pIter->cv) != 0){
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
++pIter->iColData;
|
++pIter->iColData;
|
||||||
return &pIter->cv;
|
return &pIter->cv;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1251,7 +1257,8 @@ static int32_t tBlockDataUpsertBlockRow(SBlockData *pBlockData, SBlockData *pBlo
|
||||||
cv = COL_VAL_NONE(pColDataTo->cid, pColDataTo->type);
|
cv = COL_VAL_NONE(pColDataTo->cid, pColDataTo->type);
|
||||||
if (flag == 0 && (code = tColDataAppendValue(pColDataTo, &cv))) goto _exit;
|
if (flag == 0 && (code = tColDataAppendValue(pColDataTo, &cv))) goto _exit;
|
||||||
} else {
|
} else {
|
||||||
tColDataGetValue(pColDataFrom, iRow, &cv);
|
code = tColDataGetValue(pColDataFrom, iRow, &cv);
|
||||||
|
if (code) goto _exit;
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
code = tColDataUpdateValue(pColDataTo, &cv, flag > 0);
|
code = tColDataUpdateValue(pColDataTo, &cv, flag > 0);
|
||||||
|
|
Loading…
Reference in New Issue