refactor(query):check for none table.
This commit is contained in:
parent
be88fc3826
commit
4d44b56ec6
|
@ -3507,45 +3507,47 @@ int32_t tsdbReaderOpen(SVnode* pVnode, SQueryTableDataCond* pCond, SArray* pTabl
|
||||||
goto _err;
|
goto _err;
|
||||||
}
|
}
|
||||||
|
|
||||||
code = tsdbTakeReadSnap(pReader->pTsdb, &pReader->pReadSnap);
|
if (numOfTables > 0) {
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
code = tsdbTakeReadSnap(pReader->pTsdb, &pReader->pReadSnap);
|
||||||
goto _err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pReader->type == TIMEWINDOW_RANGE_CONTAINED) {
|
|
||||||
SDataBlockIter* pBlockIter = &pReader->status.blockIter;
|
|
||||||
|
|
||||||
initFilesetIterator(&pReader->status.fileIter, pReader->pReadSnap->fs.aDFileSet, pReader);
|
|
||||||
resetDataBlockIterator(&pReader->status.blockIter, pReader->order);
|
|
||||||
|
|
||||||
// no data in files, let's try buffer in memory
|
|
||||||
if (pReader->status.fileIter.numOfFiles == 0) {
|
|
||||||
pReader->status.loadFromFile = false;
|
|
||||||
} else {
|
|
||||||
code = initForFirstBlockInFile(pReader, pBlockIter);
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
STsdbReader* pPrevReader = pReader->innerReader[0];
|
|
||||||
SDataBlockIter* pBlockIter = &pPrevReader->status.blockIter;
|
|
||||||
|
|
||||||
code = tsdbTakeReadSnap(pPrevReader->pTsdb, &pPrevReader->pReadSnap);
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _err;
|
goto _err;
|
||||||
}
|
}
|
||||||
|
|
||||||
initFilesetIterator(&pPrevReader->status.fileIter, pPrevReader->pReadSnap->fs.aDFileSet, pPrevReader);
|
if (pReader->type == TIMEWINDOW_RANGE_CONTAINED) {
|
||||||
resetDataBlockIterator(&pPrevReader->status.blockIter, pPrevReader->order);
|
SDataBlockIter* pBlockIter = &pReader->status.blockIter;
|
||||||
|
|
||||||
// no data in files, let's try buffer in memory
|
initFilesetIterator(&pReader->status.fileIter, pReader->pReadSnap->fs.aDFileSet, pReader);
|
||||||
if (pPrevReader->status.fileIter.numOfFiles == 0) {
|
resetDataBlockIterator(&pReader->status.blockIter, pReader->order);
|
||||||
pPrevReader->status.loadFromFile = false;
|
|
||||||
|
// no data in files, let's try buffer in memory
|
||||||
|
if (pReader->status.fileIter.numOfFiles == 0) {
|
||||||
|
pReader->status.loadFromFile = false;
|
||||||
|
} else {
|
||||||
|
code = initForFirstBlockInFile(pReader, pBlockIter);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
code = initForFirstBlockInFile(pPrevReader, pBlockIter);
|
STsdbReader* pPrevReader = pReader->innerReader[0];
|
||||||
|
SDataBlockIter* pBlockIter = &pPrevReader->status.blockIter;
|
||||||
|
|
||||||
|
code = tsdbTakeReadSnap(pPrevReader->pTsdb, &pPrevReader->pReadSnap);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
return code;
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
initFilesetIterator(&pPrevReader->status.fileIter, pPrevReader->pReadSnap->fs.aDFileSet, pPrevReader);
|
||||||
|
resetDataBlockIterator(&pPrevReader->status.blockIter, pPrevReader->order);
|
||||||
|
|
||||||
|
// no data in files, let's try buffer in memory
|
||||||
|
if (pPrevReader->status.fileIter.numOfFiles == 0) {
|
||||||
|
pPrevReader->status.loadFromFile = false;
|
||||||
|
} else {
|
||||||
|
code = initForFirstBlockInFile(pPrevReader, pBlockIter);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3604,6 +3606,10 @@ void tsdbReaderClose(STsdbReader* pReader) {
|
||||||
taosMemoryFree(pLReader);
|
taosMemoryFree(pLReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pReader->innerReader[0] != 0) {
|
||||||
|
tsdbUntakeReadSnap(pReader->innerReader[0]->pTsdb, pReader->innerReader[0]->pReadSnap);
|
||||||
|
}
|
||||||
|
|
||||||
tsdbDebug(
|
tsdbDebug(
|
||||||
"%p :io-cost summary: head-file:%" PRIu64 ", head-file time:%.2f ms, SMA:%" PRId64
|
"%p :io-cost summary: head-file:%" PRIu64 ", head-file time:%.2f ms, SMA:%" PRId64
|
||||||
" SMA-time:%.2f ms, fileBlocks:%" PRId64 ", fileBlocks-load-time:%.2f ms, "
|
" SMA-time:%.2f ms, fileBlocks:%" PRId64 ", fileBlocks-load-time:%.2f ms, "
|
||||||
|
|
Loading…
Reference in New Issue