From e7b59ae56de998ebf0f2929bee52782aaa3d4c1d Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 27 Oct 2022 21:51:54 +0800 Subject: [PATCH 1/2] fix(query): handle the case of the single block in last files. --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index 6c67c11220..8714528b32 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -324,6 +324,14 @@ int32_t tLDataIterOpen(struct SLDataIter **pIter, SDataFReader *pReader, int32_t taosArrayDestroy(pBlockLoadInfo->aSttBlk); pBlockLoadInfo->aSttBlk = pTmp; } + } else { // size == 1 + SSttBlk *pStart = taosArrayGet(pBlockLoadInfo->aSttBlk, 0); + if (pStart->suid != suid) { + (*pIter)->iSttBlk = -1; + double el = (taosGetTimestampUs() - st) / 1000.0; + tsdbDebug("load the last file info completed, elapsed time:%.2fms, %s", el, idStr); + return code; + } } double el = (taosGetTimestampUs() - st) / 1000.0; From 70c3825ee5d93bb5bc71443c8f443b034271ca0d Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Fri, 28 Oct 2022 09:12:40 +0800 Subject: [PATCH 2/2] fix(query): remove invalid check. --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index 8714528b32..745b877f09 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -290,7 +290,7 @@ int32_t tLDataIterOpen(struct SLDataIter **pIter, SDataFReader *pReader, int32_t // only apply to the child tables, ordinary tables will not incur this filter procedure. size = taosArrayGetSize(pBlockLoadInfo->aSttBlk); - if (size > 1) { + if (size >= 1) { SSttBlk *pStart = taosArrayGet(pBlockLoadInfo->aSttBlk, 0); SSttBlk *pEnd = taosArrayGet(pBlockLoadInfo->aSttBlk, size - 1); @@ -324,14 +324,6 @@ int32_t tLDataIterOpen(struct SLDataIter **pIter, SDataFReader *pReader, int32_t taosArrayDestroy(pBlockLoadInfo->aSttBlk); pBlockLoadInfo->aSttBlk = pTmp; } - } else { // size == 1 - SSttBlk *pStart = taosArrayGet(pBlockLoadInfo->aSttBlk, 0); - if (pStart->suid != suid) { - (*pIter)->iSttBlk = -1; - double el = (taosGetTimestampUs() - st) / 1000.0; - tsdbDebug("load the last file info completed, elapsed time:%.2fms, %s", el, idStr); - return code; - } } double el = (taosGetTimestampUs() - st) / 1000.0;