This commit is contained in:
54liuyao 2024-08-12 18:21:35 +08:00
parent 8d751ca5e3
commit 3ec51c77c4
1 changed files with 15 additions and 15 deletions

View File

@ -509,7 +509,7 @@ static void freeTableCachedVal(void* param) {
taosMemoryFree(pVal);
}
static STableCachedVal* createTableCacheVal(const SMetaReader* pMetaReader) {
static int32_t createTableCacheVal(const SMetaReader* pMetaReader, STableCachedVal** ppResVal) {
int32_t code = TSDB_CODE_SUCCESS;
int32_t lino = 0;
STableCachedVal* pVal = taosMemoryMalloc(sizeof(STableCachedVal));
@ -529,9 +529,10 @@ static STableCachedVal* createTableCacheVal(const SMetaReader* pMetaReader) {
_end:
if (code != TSDB_CODE_SUCCESS) {
qError("%s failed at line %d since %s", __func__, lino, tstrerror(code));
return NULL;
freeTableCachedVal(pVal);
}
return pVal;
(*ppResVal) = pVal;
return code;
}
// const void *key, size_t keyLen, void *value
@ -581,18 +582,18 @@ int32_t addTagPseudoColumnData(SReadHandle* pHandle, const SExprInfo* pExpr, int
code = pHandle->api.metaReaderFn.getEntryGetUidCache(&mr, pBlock->info.id.uid);
if (code != TSDB_CODE_SUCCESS) {
// when encounter the TSDB_CODE_PAR_TABLE_NOT_EXIST error, we proceed.
if (terrno == TSDB_CODE_PAR_TABLE_NOT_EXIST) {
if (code == TSDB_CODE_PAR_TABLE_NOT_EXIST) {
qWarn("failed to get table meta, table may have been dropped, uid:0x%" PRIx64 ", code:%s, %s",
pBlock->info.id.uid, tstrerror(terrno), idStr);
pBlock->info.id.uid, tstrerror(code), idStr);
// append null value before return to caller, since the caller will ignore this error code and proceed
doSetNullValue(pBlock, pExpr, numOfExpr);
} else {
qError("failed to get table meta, uid:0x%" PRIx64 ", code:%s, %s", pBlock->info.id.uid, tstrerror(terrno),
qError("failed to get table meta, uid:0x%" PRIx64 ", code:%s, %s", pBlock->info.id.uid, tstrerror(code),
idStr);
}
pHandle->api.metaReaderFn.clearReader(&mr);
return terrno;
return code;
}
pHandle->api.metaReaderFn.readerReleaseLock(&mr);
@ -609,25 +610,24 @@ int32_t addTagPseudoColumnData(SReadHandle* pHandle, const SExprInfo* pExpr, int
pHandle->api.metaReaderFn.initReader(&mr, pHandle->vnode, META_READER_LOCK, &pHandle->api.metaFn);
code = pHandle->api.metaReaderFn.getEntryGetUidCache(&mr, pBlock->info.id.uid);
if (code != TSDB_CODE_SUCCESS) {
if (terrno == TSDB_CODE_PAR_TABLE_NOT_EXIST) {
if (code == TSDB_CODE_PAR_TABLE_NOT_EXIST) {
qWarn("failed to get table meta, table may have been dropped, uid:0x%" PRIx64 ", code:%s, %s",
pBlock->info.id.uid, tstrerror(terrno), idStr);
pBlock->info.id.uid, tstrerror(code), idStr);
// append null value before return to caller, since the caller will ignore this error code and proceed
doSetNullValue(pBlock, pExpr, numOfExpr);
} else {
qError("failed to get table meta, uid:0x%" PRIx64 ", code:%s, %s", pBlock->info.id.uid, tstrerror(terrno),
qError("failed to get table meta, uid:0x%" PRIx64 ", code:%s, %s", pBlock->info.id.uid, tstrerror(code),
idStr);
}
pHandle->api.metaReaderFn.clearReader(&mr);
return terrno;
return code;
}
pHandle->api.metaReaderFn.readerReleaseLock(&mr);
STableCachedVal* pVal = createTableCacheVal(&mr);
if(!pVal) {
return terrno;
}
STableCachedVal* pVal = NULL;
code = createTableCacheVal(&mr, &pVal);
QUERY_CHECK_CODE(code, lino, _end);
val = *pVal;
freeReader = true;