diff --git a/src/system/detail/inc/vnodeRead.h b/src/system/detail/inc/vnodeRead.h index 46b0d5d7b769586ad89264c5586a08075edfd022..ef3b6b6e04fd4e5b83e2d9bb0a638e9f52aca4ed 100644 --- a/src/system/detail/inc/vnodeRead.h +++ b/src/system/detail/inc/vnodeRead.h @@ -191,6 +191,7 @@ typedef struct SQueryRuntimeEnv { SPointInterpoSupporter* pInterpoSupporter; bool hasTimeWindow; + bool interpoSearch; } SQueryRuntimeEnv; /* intermediate pos during multimeter query involves interval */ diff --git a/src/system/detail/src/vnodeQueryImpl.c b/src/system/detail/src/vnodeQueryImpl.c index 0396192b5c1390ab69bb6c77080cfa2e4dd42fb4..a5df289449b878927cd54d06302a70ff1784d7ed 100644 --- a/src/system/detail/src/vnodeQueryImpl.c +++ b/src/system/detail/src/vnodeQueryImpl.c @@ -3450,6 +3450,9 @@ static bool loadPrevDataPoint(SQueryRuntimeEnv* pRuntimeEnv, char** result) { qTrace("QInfo:%p get prev data point, fileId:%d, slot:%d, pos:%d, pQuery->pos:%d", GET_QINFO_ADDR(pQuery), pQuery->fileId, pQuery->slot, pQuery->pos, pQuery->pos); + + // restore to the start position + loadRequiredBlockIntoMem(pRuntimeEnv, &pRuntimeEnv->startPos); } else { // moveToNextBlock make sure there is a available cache block, if exists assert(vnodeIsDatablockLoaded(pRuntimeEnv, pMeterObj, -1, true) == DISK_BLOCK_NO_NEED_TO_LOAD);