[RuntimeFilter](exec) support min max runtime filter and do refactor (#32210)

This commit is contained in:
HappenLee
2024-03-15 16:51:14 +08:00
committed by yiguolei
parent 8d988930bd
commit 9c1888e7ec
13 changed files with 161 additions and 76 deletions

View File

@ -24,9 +24,7 @@ import org.apache.doris.nereids.processor.post.RuntimeFilterContext;
import org.apache.doris.nereids.processor.post.RuntimeFilterGenerator;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
import org.apache.doris.nereids.trees.expressions.EqualPredicate;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.NullSafeEqual;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.plans.AbstractPlan;
import org.apache.doris.nereids.trees.plans.Explainable;
@ -133,12 +131,6 @@ public abstract class AbstractPhysicalPlan extends AbstractPlan implements Physi
ctx.setTargetsOnScanNode(ctx.getAliasTransferPair(probeSlot).first, scanSlot);
}
} else {
// null safe equal runtime filter only support bloom filter
EqualPredicate eq = (EqualPredicate) builderNode.getHashJoinConjuncts().get(exprOrder);
if (eq instanceof NullSafeEqual && type == TRuntimeFilterType.MIN_MAX
|| type == TRuntimeFilterType.BITMAP) {
return false;
}
filter = new RuntimeFilter(generator.getNextId(),
src, ImmutableList.of(scanSlot), ImmutableList.of(probeExpr),
type, exprOrder, builderNode, buildSideNdv,