fix(coverity): fix coverity scan issues
This commit is contained in:
parent
db63b43622
commit
09222801c4
|
@ -423,7 +423,7 @@ int32_t tdSTSRowNew(SArray *pArray, STSchema *pTSchema, STSRow **ppRow) {
|
||||||
val = (const void *)&pColVal->value.val;
|
val = (const void *)&pColVal->value.val;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pColVal = NULL;
|
// pColVal = NULL;
|
||||||
valType = TD_VTYPE_NONE;
|
valType = TD_VTYPE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -207,7 +207,10 @@ int metaCreateSTable(SMeta *pMeta, int64_t version, SVCreateStbReq *pReq) {
|
||||||
tb_uid_t uid = *(tb_uid_t *)pData;
|
tb_uid_t uid = *(tb_uid_t *)pData;
|
||||||
tdbFree(pData);
|
tdbFree(pData);
|
||||||
SMetaInfo info;
|
SMetaInfo info;
|
||||||
metaGetInfo(pMeta, uid, &info, NULL);
|
if (metaGetInfo(pMeta, uid, &info, NULL) == TSDB_CODE_NOT_FOUND) {
|
||||||
|
terrno = TSDB_CODE_PAR_TABLE_NOT_EXIST;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if (info.uid == info.suid) {
|
if (info.uid == info.suid) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -939,7 +942,7 @@ int metaTtlDropTable(SMeta *pMeta, int64_t timePointMs, SArray *tbUids) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
metaInfo("ttl find expired table count: %zu" , TARRAY_SIZE(tbUids));
|
metaInfo("ttl find expired table count: %zu", TARRAY_SIZE(tbUids));
|
||||||
|
|
||||||
metaDropTables(pMeta, tbUids);
|
metaDropTables(pMeta, tbUids);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1031,7 +1031,7 @@ int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCache
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
int32_t tsdbCacheGet(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCacheRowsReader *pr, int8_t ltype) {
|
int32_t tsdbCacheGet(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCacheRowsReader *pr, int8_t ltype) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
SLRUCache *pCache = pTsdb->lruCache;
|
SLRUCache *pCache = pTsdb->lruCache;
|
||||||
|
@ -1079,7 +1079,7 @@ int32_t tsdbCacheGet(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCacheRowsR
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKEY eKey) {
|
int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKEY eKey) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
// fetch schema
|
// fetch schema
|
||||||
|
@ -1829,10 +1829,11 @@ static int32_t getNextRowFromFSLast(void *iter, TSDBROW **ppRow, bool *pIgnoreEa
|
||||||
}
|
}
|
||||||
|
|
||||||
*pIgnoreEarlierTs = false;
|
*pIgnoreEarlierTs = false;
|
||||||
|
/*
|
||||||
if (!hasVal) {
|
if (!hasVal) {
|
||||||
state->state = SFSLASTNEXTROW_FILESET;
|
state->state = SFSLASTNEXTROW_FILESET;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
if (!state->checkRemainingRow) {
|
if (!state->checkRemainingRow) {
|
||||||
state->checkRemainingRow = true;
|
state->checkRemainingRow = true;
|
||||||
}
|
}
|
||||||
|
@ -2020,10 +2021,9 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie
|
||||||
tMapDataGetItemByIdx(&state->blockMap, state->iBlock, &block, tGetDataBlk);
|
tMapDataGetItemByIdx(&state->blockMap, state->iBlock, &block, tGetDataBlk);
|
||||||
if (block.maxKey.ts <= state->lastTs) {
|
if (block.maxKey.ts <= state->lastTs) {
|
||||||
*pIgnoreEarlierTs = true;
|
*pIgnoreEarlierTs = true;
|
||||||
if (state->pBlockData) {
|
|
||||||
tBlockDataDestroy(state->pBlockData);
|
tBlockDataDestroy(state->pBlockData);
|
||||||
state->pBlockData = NULL;
|
state->pBlockData = NULL;
|
||||||
}
|
|
||||||
|
|
||||||
*ppRow = NULL;
|
*ppRow = NULL;
|
||||||
return code;
|
return code;
|
||||||
|
@ -3176,97 +3176,46 @@ static int32_t mergeLastRowCid(tb_uid_t uid, STsdb *pTsdb, SArray **ppLastArray,
|
||||||
|
|
||||||
TSKEY rowTs = TSDBROW_TS(pRow);
|
TSKEY rowTs = TSDBROW_TS(pRow);
|
||||||
|
|
||||||
if (lastRowTs == TSKEY_MAX) {
|
lastRowTs = rowTs;
|
||||||
lastRowTs = rowTs;
|
|
||||||
|
|
||||||
for (int16_t iCol = noneCol; iCol < nCols; ++iCol) {
|
|
||||||
if (iCol >= nLastCol) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SLastCol *pCol = taosArrayGet(pColArray, iCol);
|
|
||||||
if (pCol->colVal.cid != pTSchema->columns[slotIds[iCol]].colId) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (slotIds[iCol] == 0) {
|
|
||||||
STColumn *pTColumn = &pTSchema->columns[0];
|
|
||||||
|
|
||||||
*pColVal = COL_VAL_VALUE(pTColumn->colId, pTColumn->type, (SValue){.val = rowTs});
|
|
||||||
taosArraySet(pColArray, 0, &(SLastCol){.ts = rowTs, .colVal = *pColVal});
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
tsdbRowGetColVal(pRow, pTSchema, slotIds[iCol], pColVal);
|
|
||||||
|
|
||||||
*pCol = (SLastCol){.ts = rowTs, .colVal = *pColVal};
|
|
||||||
if (IS_VAR_DATA_TYPE(pColVal->type) /*&& pColVal->value.nData > 0*/) {
|
|
||||||
pCol->colVal.value.pData = taosMemoryMalloc(pCol->colVal.value.nData);
|
|
||||||
if (pCol->colVal.value.pData == NULL) {
|
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
code = TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
goto _err;
|
|
||||||
}
|
|
||||||
if (pColVal->value.nData > 0) {
|
|
||||||
memcpy(pCol->colVal.value.pData, pColVal->value.pData, pColVal->value.nData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*if (COL_VAL_IS_NONE(pColVal)) {
|
|
||||||
if (!setNoneCol) {
|
|
||||||
noneCol = iCol;
|
|
||||||
setNoneCol = true;
|
|
||||||
}
|
|
||||||
} else {*/
|
|
||||||
int32_t aColIndex = taosArraySearchIdx(aColArray, &pColVal->cid, compareInt16Val, TD_EQ);
|
|
||||||
if (aColIndex >= 0) {
|
|
||||||
taosArrayRemove(aColArray, aColIndex);
|
|
||||||
}
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
if (!setNoneCol) {
|
|
||||||
// done, goto return pColArray
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// merge into pColArray
|
|
||||||
setNoneCol = false;
|
|
||||||
for (int16_t iCol = noneCol; iCol < nCols; ++iCol) {
|
for (int16_t iCol = noneCol; iCol < nCols; ++iCol) {
|
||||||
if (iCol >= nLastCol) {
|
if (iCol >= nLastCol) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// high version's column value
|
SLastCol *pCol = taosArrayGet(pColArray, iCol);
|
||||||
SLastCol *lastColVal = (SLastCol *)taosArrayGet(pColArray, iCol);
|
if (pCol->colVal.cid != pTSchema->columns[slotIds[iCol]].colId) {
|
||||||
if (lastColVal->colVal.cid != pTSchema->columns[slotIds[iCol]].colId) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
SColVal *tColVal = &lastColVal->colVal;
|
if (slotIds[iCol] == 0) {
|
||||||
|
STColumn *pTColumn = &pTSchema->columns[0];
|
||||||
|
|
||||||
|
*pColVal = COL_VAL_VALUE(pTColumn->colId, pTColumn->type, (SValue){.val = rowTs});
|
||||||
|
taosArraySet(pColArray, 0, &(SLastCol){.ts = rowTs, .colVal = *pColVal});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
tsdbRowGetColVal(pRow, pTSchema, slotIds[iCol], pColVal);
|
tsdbRowGetColVal(pRow, pTSchema, slotIds[iCol], pColVal);
|
||||||
if (COL_VAL_IS_NONE(tColVal) && !COL_VAL_IS_NONE(pColVal)) {
|
|
||||||
SLastCol lastCol = {.ts = rowTs, .colVal = *pColVal};
|
|
||||||
if (IS_VAR_DATA_TYPE(pColVal->type) && pColVal->value.nData > 0) {
|
|
||||||
SLastCol *pLastCol = (SLastCol *)taosArrayGet(pColArray, iCol);
|
|
||||||
taosMemoryFree(pLastCol->colVal.value.pData);
|
|
||||||
|
|
||||||
lastCol.colVal.value.pData = taosMemoryMalloc(lastCol.colVal.value.nData);
|
*pCol = (SLastCol){.ts = rowTs, .colVal = *pColVal};
|
||||||
if (lastCol.colVal.value.pData == NULL) {
|
if (IS_VAR_DATA_TYPE(pColVal->type) /*&& pColVal->value.nData > 0*/) {
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
pCol->colVal.value.pData = taosMemoryMalloc(pCol->colVal.value.nData);
|
||||||
code = TSDB_CODE_OUT_OF_MEMORY;
|
if (pCol->colVal.value.pData == NULL) {
|
||||||
goto _err;
|
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
memcpy(lastCol.colVal.value.pData, pColVal->value.pData, pColVal->value.nData);
|
goto _err;
|
||||||
}
|
}
|
||||||
|
if (pColVal->value.nData > 0) {
|
||||||
|
memcpy(pCol->colVal.value.pData, pColVal->value.pData, pColVal->value.nData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
taosArraySet(pColArray, iCol, &lastCol);
|
int32_t aColIndex = taosArraySearchIdx(aColArray, &pColVal->cid, compareInt16Val, TD_EQ);
|
||||||
int32_t aColIndex = taosArraySearchIdx(aColArray, &lastCol.colVal.cid, compareInt16Val, TD_EQ);
|
if (aColIndex >= 0) {
|
||||||
taosArrayRemove(aColArray, aColIndex);
|
taosArrayRemove(aColArray, aColIndex);
|
||||||
} else if (COL_VAL_IS_NONE(tColVal) && !COL_VAL_IS_NONE(pColVal) && !setNoneCol) {
|
|
||||||
noneCol = iCol;
|
|
||||||
setNoneCol = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (setNoneCol);
|
|
||||||
|
break;
|
||||||
|
} while (1);
|
||||||
|
|
||||||
if (!hasRow) {
|
if (!hasRow) {
|
||||||
if (ignoreEarlierTs) {
|
if (ignoreEarlierTs) {
|
||||||
|
|
|
@ -345,7 +345,7 @@ int tdbBtreePGet(SBTree *pBt, const void *pKey, int kLen, void **ppKey, int *pkL
|
||||||
}
|
}
|
||||||
*ppKey = pTKey;
|
*ppKey = pTKey;
|
||||||
*pkLen = cd.kLen;
|
*pkLen = cd.kLen;
|
||||||
memcpy(*ppKey, cd.pKey, cd.kLen);
|
memcpy(*ppKey, cd.pKey, (size_t)cd.kLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ppVal) {
|
if (ppVal) {
|
||||||
|
@ -357,7 +357,7 @@ int tdbBtreePGet(SBTree *pBt, const void *pKey, int kLen, void **ppKey, int *pkL
|
||||||
}
|
}
|
||||||
*ppVal = pTVal;
|
*ppVal = pTVal;
|
||||||
*vLen = cd.vLen;
|
*vLen = cd.vLen;
|
||||||
memcpy(*ppVal, cd.pVal, cd.vLen);
|
memcpy(*ppVal, cd.pVal, (size_t)cd.vLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TDB_CELLDECODER_FREE_KEY(&cd)) {
|
if (TDB_CELLDECODER_FREE_KEY(&cd)) {
|
||||||
|
@ -1793,7 +1793,7 @@ int tdbBtreeNext(SBTC *pBtc, void **ppKey, int *kLen, void **ppVal, int *vLen) {
|
||||||
|
|
||||||
*ppKey = pKey;
|
*ppKey = pKey;
|
||||||
*kLen = cd.kLen;
|
*kLen = cd.kLen;
|
||||||
memcpy(pKey, cd.pKey, cd.kLen);
|
memcpy(pKey, cd.pKey, (size_t)cd.kLen);
|
||||||
|
|
||||||
if (ppVal) {
|
if (ppVal) {
|
||||||
if (cd.vLen > 0) {
|
if (cd.vLen > 0) {
|
||||||
|
@ -1852,7 +1852,7 @@ int tdbBtreePrev(SBTC *pBtc, void **ppKey, int *kLen, void **ppVal, int *vLen) {
|
||||||
|
|
||||||
*ppKey = pKey;
|
*ppKey = pKey;
|
||||||
*kLen = cd.kLen;
|
*kLen = cd.kLen;
|
||||||
memcpy(pKey, cd.pKey, cd.kLen);
|
memcpy(pKey, cd.pKey, (size_t)cd.kLen);
|
||||||
|
|
||||||
if (ppVal) {
|
if (ppVal) {
|
||||||
// TODO: vLen may be zero
|
// TODO: vLen may be zero
|
||||||
|
@ -1864,7 +1864,7 @@ int tdbBtreePrev(SBTC *pBtc, void **ppKey, int *kLen, void **ppVal, int *vLen) {
|
||||||
|
|
||||||
*ppVal = pVal;
|
*ppVal = pVal;
|
||||||
*vLen = cd.vLen;
|
*vLen = cd.vLen;
|
||||||
memcpy(pVal, cd.pVal, cd.vLen);
|
memcpy(pVal, cd.pVal, (size_t)cd.vLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = tdbBtcMoveToPrev(pBtc);
|
ret = tdbBtcMoveToPrev(pBtc);
|
||||||
|
|
|
@ -62,7 +62,10 @@ int32_t tdbOpen(const char *dbname, int32_t szPage, int32_t pages, TDB **ppDb, i
|
||||||
}
|
}
|
||||||
memset(pDb->pgrHash, 0, tsize);
|
memset(pDb->pgrHash, 0, tsize);
|
||||||
|
|
||||||
taosMulModeMkDir(dbname, 0755);
|
ret = taosMulModeMkDir(dbname, 0755);
|
||||||
|
if (ret < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef USE_MAINDB
|
#ifdef USE_MAINDB
|
||||||
// open main db
|
// open main db
|
||||||
|
|
|
@ -980,6 +980,7 @@ int tdbPagerRestoreJournals(SPager *pPager) {
|
||||||
jname[dirLen] = '/';
|
jname[dirLen] = '/';
|
||||||
sprintf(jname + dirLen + 1, TDB_MAINDB_NAME "-journal.%" PRId64, *pTxnId);
|
sprintf(jname + dirLen + 1, TDB_MAINDB_NAME "-journal.%" PRId64, *pTxnId);
|
||||||
if (tdbPagerRestore(pPager, jname) < 0) {
|
if (tdbPagerRestore(pPager, jname) < 0) {
|
||||||
|
taosArrayDestroy(pTxnList);
|
||||||
tdbCloseDir(&pDir);
|
tdbCloseDir(&pDir);
|
||||||
|
|
||||||
tdbError("failed to restore file due to %s. jFileName:%s", strerror(errno), jname);
|
tdbError("failed to restore file due to %s. jFileName:%s", strerror(errno), jname);
|
||||||
|
|
Loading…
Reference in New Issue