From eb138b4dde59c3f94d1360c6cf5b9f1cc4882b5e Mon Sep 17 00:00:00 2001 From: Alex Duan <417921451@qq.com> Date: Tue, 8 Feb 2022 13:03:47 +0800 Subject: [PATCH] [TD-13349](query): offset can skip calc error fixed --- src/tsdb/src/tsdbRead.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/tsdb/src/tsdbRead.c b/src/tsdb/src/tsdbRead.c index 4d14f7307b..a0f1e00b1a 100644 --- a/src/tsdb/src/tsdbRead.c +++ b/src/tsdb/src/tsdbRead.c @@ -1171,6 +1171,8 @@ static int32_t offsetSkipBlock(STsdbQueryHandle* q, SBlockInfo* pBlockInfo, int6 q->frows += pBlock->numOfRows; // maybe have some row in memroy } } else { + // already read rows belong to forbid skip rows -> frows + q->frows += pBlock->numOfRows; // the remainder be put to pArray if(pArray == NULL) pArray = taosArrayInit(1, sizeof(SRange)); @@ -1237,22 +1239,24 @@ static int32_t offsetSkipBlock(STsdbQueryHandle* q, SBlockInfo* pBlockInfo, int6 q->frows += pBlock->numOfRows; // maybe have some row in memroy } } else { - // the remainder be put to pArray - if(pArray == NULL) - pArray = taosArrayInit(1, sizeof(SRange)); - if(range.from == -1) { + // already read rows belong to forbid skip rows -> frows + q->frows += pBlock->numOfRows; + // the remainder be put to pArray + if(pArray == NULL) + pArray = taosArrayInit(1, sizeof(SRange)); + if(range.from == -1) { + range.from = i; + } else { + if(range.to - 1 != i) { + // add the previous + taosArrayPush(pArray, &range); range.from = i; - } else { - if(range.to - 1 != i) { - // add the previous - taosArrayPush(pArray, &range); - range.from = i; - } } - range.to = 0; - taosArrayPush(pArray, &range); - range.from = -1; - break; + } + range.to = 0; + taosArrayPush(pArray, &range); + range.from = -1; + break; } } @@ -4658,4 +4662,4 @@ void tsdbAddScanCallback(TsdbQueryHandleT* queryHandle, readover_callback callba pQueryHandle->readover_cb = callback; pQueryHandle->param = param; return ; -} \ No newline at end of file +} -- GitLab