fix(tsdb): add check for not load stt file blocks.

This commit is contained in:
Haojun Liao 2023-12-08 16:09:58 +08:00
parent 9c72ce846e
commit 63b34c7acf
2 changed files with 26 additions and 21 deletions

View File

@ -350,11 +350,13 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
tsdbSttFileReadStatisBlock(pSttFileReader, &pStatisBlkArray->data[k], &block); tsdbSttFileReadStatisBlock(pSttFileReader, &pStatisBlkArray->data[k], &block);
int32_t i = 0; int32_t i = 0;
while(block.suid->data[i] != suid) { int32_t rows = TARRAY2_SIZE(block.suid);
while (i < rows && block.suid->data[i] != suid) {
++i; ++i;
} }
int32_t rows = TARRAY2_SIZE(block.suid); // existed
if (i < rows) {
if (pBlockLoadInfo->info.pUid == NULL) { if (pBlockLoadInfo->info.pUid == NULL) {
pBlockLoadInfo->info.pUid = taosArrayInit(rows, sizeof(int64_t)); pBlockLoadInfo->info.pUid = taosArrayInit(rows, sizeof(int64_t));
pBlockLoadInfo->info.pFirstKey = taosArrayInit(rows, sizeof(int64_t)); pBlockLoadInfo->info.pFirstKey = taosArrayInit(rows, sizeof(int64_t));
@ -368,7 +370,7 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
taosArrayAddBatch(pBlockLoadInfo->info.pLastKey, &block.lastKey->data[i], rows - i); taosArrayAddBatch(pBlockLoadInfo->info.pLastKey, &block.lastKey->data[i], rows - i);
taosArrayAddBatch(pBlockLoadInfo->info.pCount, &block.count->data[i], rows - i); taosArrayAddBatch(pBlockLoadInfo->info.pCount, &block.count->data[i], rows - i);
} else { } else {
while(i < rows && block.suid->data[i] == suid) { while (i < rows && block.suid->data[i] == suid) {
taosArrayPush(pBlockLoadInfo->info.pUid, &block.uid->data[i]); taosArrayPush(pBlockLoadInfo->info.pUid, &block.uid->data[i]);
taosArrayPush(pBlockLoadInfo->info.pFirstKey, &block.firstKey->data[i]); taosArrayPush(pBlockLoadInfo->info.pFirstKey, &block.firstKey->data[i]);
taosArrayPush(pBlockLoadInfo->info.pLastKey, &block.lastKey->data[i]); taosArrayPush(pBlockLoadInfo->info.pLastKey, &block.lastKey->data[i]);
@ -377,6 +379,7 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
} }
} }
} }
}
tStatisBlockDestroy(&block); tStatisBlockDestroy(&block);

View File

@ -1735,7 +1735,9 @@ int32_t initQueryTableDataCond(SQueryTableDataCond* pCond, const STableScanPhysi
pCond->skipRollup = readHandle->skipRollup; pCond->skipRollup = readHandle->skipRollup;
// allowed read stt file optimization mode // allowed read stt file optimization mode
pCond->notLoadData = (pTableScanNode->dataRequired == FUNC_DATA_REQUIRED_NOT_LOAD) && (pTableScanNode->scan.node.pConditions == NULL); pCond->notLoadData = (pTableScanNode->dataRequired == FUNC_DATA_REQUIRED_NOT_LOAD) &&
(pTableScanNode->scan.node.pConditions == NULL) &&
(pTableScanNode->interval == 0);
int32_t j = 0; int32_t j = 0;
for (int32_t i = 0; i < pCond->numOfCols; ++i) { for (int32_t i = 0; i < pCond->numOfCols; ++i) {