From 1f5c71aea697577e76730587805d1878c0e82223 Mon Sep 17 00:00:00 2001 From: slguan Date: Tue, 24 Sep 2019 17:59:40 +0800 Subject: [PATCH] fix issue #555 --- src/system/src/vnodeQueryImpl.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/system/src/vnodeQueryImpl.c b/src/system/src/vnodeQueryImpl.c index 6e7c3c1fab..caee6fd60e 100644 --- a/src/system/src/vnodeQueryImpl.c +++ b/src/system/src/vnodeQueryImpl.c @@ -5810,15 +5810,21 @@ int32_t LoadDatablockOnDemand(SCompBlock *pBlock, SField **pFields, int8_t *blkS /* find first qualified record position in this block */ if (loadTS) { - /* find first qualified record position in this block */ pQuery->pos = searchFn(pRuntimeEnv->primaryColBuffer->data, pBlock->numOfPoints, pQuery->lastKey, pQuery->order.order); /* boundary timestamp check */ assert(pBlock->keyFirst == primaryKeys[0] && pBlock->keyLast == primaryKeys[pBlock->numOfPoints - 1]); } - assert((pQuery->skey <= pQuery->lastKey && QUERY_IS_ASC_QUERY(pQuery)) || - (pQuery->ekey <= pQuery->lastKey && !QUERY_IS_ASC_QUERY(pQuery))); + /* + * NOTE: + * if the query of current timestamp window is COMPLETED, the query range condition may not be satisfied + * such as: + * pQuery->lastKey + 1 == pQuery->ekey for descending order interval query + * pQuery->lastKey - 1 == pQuery->ekey for ascending query + */ + assert(((pQuery->ekey >= pQuery->lastKey || pQuery->ekey == pQuery->lastKey - 1) && QUERY_IS_ASC_QUERY(pQuery)) || + ((pQuery->ekey <= pQuery->lastKey || pQuery->ekey == pQuery->lastKey + 1) && !QUERY_IS_ASC_QUERY(pQuery))); } return DISK_DATA_LOADED; -- GitLab