diff --git a/src/query/src/qFilter.c b/src/query/src/qFilter.c index 7b3d5e6835ec88e63ee72bc2b996385036897b19..94a2f6c3cf4d5640958e0b747f9edbe0b57e1e15 100644 --- a/src/query/src/qFilter.c +++ b/src/query/src/qFilter.c @@ -1988,6 +1988,9 @@ int32_t filterMergeUnits(SFilterInfo *info, SFilterGroupCtx* gRes, uint16_t colI filterAddUnitRange(info, u, ctx, TSDB_RELATION_AND); CHK_JMP(MR_EMPTY_RES(ctx)); } + if(FILTER_UNIT_OPTR(u) == TSDB_RELATION_EQUAL){ + gRes->colInfo[colIdx].optr = TSDB_RELATION_EQUAL; + } } taosArrayDestroy(colArray); @@ -2099,6 +2102,11 @@ void filterCheckColConflict(SFilterGroupCtx* gRes1, SFilterGroupCtx* gRes2, bool continue; } + if (gRes1->colInfo[idx1].optr == TSDB_RELATION_EQUAL && gRes2->colInfo[idx2].optr == TSDB_RELATION_EQUAL) { + *conflict = true; + return; + } + if (FILTER_NO_MERGE_DATA_TYPE(gRes1->colInfo[idx1].dataType)) { *conflict = true; return;