From 169185c61059f0e737066ce3c7945aaceff12ddc Mon Sep 17 00:00:00 2001 From: 54liuyao <54liuyao@163.com> Date: Fri, 15 Apr 2022 14:00:40 +0800 Subject: [PATCH] fix filter optimize bug --- src/query/src/qFilter.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/query/src/qFilter.c b/src/query/src/qFilter.c index 13d09966b2..585e9eab09 100644 --- a/src/query/src/qFilter.c +++ b/src/query/src/qFilter.c @@ -2132,6 +2132,7 @@ int32_t filterMergeGroupUnits(SFilterInfo *info, SFilterGroupCtx** gRes, int32_t uint32_t *colIdx = malloc(info->fields[FLD_TYPE_COLUMN].num * sizeof(uint32_t)); uint32_t colIdxi = 0; uint32_t gResIdx = 0; + bool hasExpr = false; for (uint32_t i = 0; i < info->groupNum; ++i) { SFilterGroup* g = info->groups + i; @@ -2146,6 +2147,7 @@ int32_t filterMergeGroupUnits(SFilterInfo *info, SFilterGroupCtx** gRes, int32_t SFilterUnit* u = FILTER_GROUP_UNIT(info, g, j); if(u->left.type == FLD_TYPE_EXPR) { gRes[gResIdx]->hasExpr = true; + hasExpr = true; continue; } uint32_t cidx = FILTER_UNIT_COL_IDX(u); @@ -2194,6 +2196,9 @@ int32_t filterMergeGroupUnits(SFilterInfo *info, SFilterGroupCtx** gRes, int32_t ++gResIdx; } + if (hasExpr) { + FILTER_CLR_FLAG(info->status, FI_STATUS_REWRITE); + } tfree(colIdx); *gResNum = gResIdx; -- GitLab