From b4d14d3847640880ce803a45abd3d35cc3c11012 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Fri, 3 Nov 2023 11:04:32 +0800 Subject: [PATCH] fix(tsdb): fix error during add on-demand opening stt file reader. --- source/dnode/vnode/src/tsdb/tsdbRead2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index dff0352195..4b5329220b 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -2356,9 +2356,9 @@ static int32_t buildComposedDataBlock(STsdbReader* pReader) { TSDBKEY keyInBuf = getCurrentKeyInBuf(pBlockScanInfo, pReader); // it is a clean block, load it directly - if (isCleanFileDataBlock(pReader, pBlockInfo, pBlockScanInfo, keyInBuf) && - (pRecord->numRow <= pReader->resBlockInfo.capacity)) { - if (asc || (!hasDataInLastBlock(pLastBlockReader))) { + int64_t cap = pReader->resBlockInfo.capacity; + if (isCleanFileDataBlock(pReader, pBlockInfo, pBlockScanInfo, keyInBuf) && (pRecord->numRow <= cap)) { + if (asc || (pBlockScanInfo->sttKeyInfo.status == STT_FILE_NO_DATA)) { code = copyBlockDataToSDataBlock(pReader); if (code) { goto _end; @@ -2380,6 +2380,7 @@ static int32_t buildComposedDataBlock(STsdbReader* pReader) { } SBlockData* pBlockData = &pReader->status.fileBlockData; + initLastBlockReader(pLastBlockReader, pBlockScanInfo, pReader); while (1) { bool hasBlockData = false;