diff --git a/source/dnode/vnode/src/meta/metaQuery.c b/source/dnode/vnode/src/meta/metaQuery.c index 0727d3267442270e01b839d135260ae82e3eb65f..0ab7324e7f40778c0502f5b3a84f6910bf04f0a4 100644 --- a/source/dnode/vnode/src/meta/metaQuery.c +++ b/source/dnode/vnode/src/meta/metaQuery.c @@ -1074,7 +1074,13 @@ int32_t metaFilterCreateTime(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) int32_t cmp = (*param->filterFunc)((void *)&p->ctime, (void *)&pCtimeKey->ctime, param->type); if (cmp == 0) taosArrayPush(pUids, &p->uid); - if (cmp == -1) break; + + if (param->reverse == false) { + if (cmp == -1) break; + } else if (param->reverse) { + if (cmp == 1) break; + } + valid = param->reverse ? tdbTbcMoveToPrev(pCursor->pCur) : tdbTbcMoveToNext(pCursor->pCur); if (valid < 0) break; } diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index b7823136888f11e7564fb8284ef44c75d2ceda24..6e841f2daa0f248bfa4e83cbb82a9414d546aa7b 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -2880,7 +2880,7 @@ int optSysDoCompare(__compar_fn_t func, int8_t comparType, void* a, void* b) { default: return -1; } - return 1; + return cmp; } static int optSysFilterFuncImpl__LowerThan(void* a, void* b, int16_t dtype) {