diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java index 7cadbde176..22fd2c811f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java @@ -389,7 +389,7 @@ public class RuntimeFilterPushDownVisitor extends PlanVisitor output = setOperation.getOutputs(); for (int j = 0; j < output.size(); j++) { NamedExpression expr = output.get(j); - if (expr.getName().equals(probeSlot.getName())) { + if (expr.getExprId().equals(probeSlot.getExprId())) { projIndex = j; break; } @@ -397,10 +397,10 @@ public class RuntimeFilterPushDownVisitor extends PlanVisitor map = Maps.newHashMap(); - // probeExpr only has one input slot - map.put(ctx.probeExpr.getInputSlots().iterator().next(), + map.put(probeSlot, setOperation.getRegularChildrenOutputs().get(i).get(projIndex)); Expression newProbeExpr = ctx.probeExpr.accept(ExpressionVisitors.EXPRESSION_MAP_REPLACER, map); PushDownContext childPushDownContext = ctx.withNewProbeExpression(newProbeExpr); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCTEConsumer.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCTEConsumer.java index a3fab00816..9139e3142b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCTEConsumer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCTEConsumer.java @@ -103,7 +103,7 @@ public class PhysicalCTEConsumer extends PhysicalRelation { .stream().forEach(rf -> builder.append(" RF").append(rf.getId().asInt())); } return Utils.toSqlString("PhysicalCTEConsumer[" + id.asInt() + "]", - "stats", getStats(), "cteId", cteId, "RFs", builder); + "stats", getStats(), "cteId", cteId, "RFs", builder, "map", consumerToProducerSlotMap); } @Override