diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AggScalarSubQueryToWindowFunction.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AggScalarSubQueryToWindowFunction.java index 10f170dc74..d0e5742487 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AggScalarSubQueryToWindowFunction.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AggScalarSubQueryToWindowFunction.java @@ -109,7 +109,8 @@ public class AggScalarSubQueryToWindowFunction extends DefaultPlanRewriter filter, JobContext context) { + public Plan visitLogicalFilter(LogicalFilter plan, JobContext context) { + LogicalFilter filter = visitChildren(this, plan, context); return findApply(filter) .filter(a -> check(filter, a)) .map(a -> rewrite(filter, a)) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EnsureProjectOnTopJoin.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EnsureProjectOnTopJoin.java index c3bcfea9ae..1671284790 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EnsureProjectOnTopJoin.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EnsureProjectOnTopJoin.java @@ -32,7 +32,6 @@ import java.util.stream.Collectors; /** * The rule add an explicit project at the top join to ensure the output of whole plan is stable * and avoid generate circle in memo. - * */ public class EnsureProjectOnTopJoin extends DefaultPlanRewriter implements CustomRewriter { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InferPredicates.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InferPredicates.java index 783da51a85..9736db8482 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InferPredicates.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InferPredicates.java @@ -61,7 +61,7 @@ public class InferPredicates extends DefaultPlanRewriter implements @Override public Plan visitLogicalJoin(LogicalJoin join, JobContext context) { - join = (LogicalJoin) super.visit(join, context); + join = visitChildren(this, join, context); Plan left = join.left(); Plan right = join.right(); Set expressions = getAllExpressions(left, right, join.getOnClauseCondition()); @@ -91,7 +91,7 @@ public class InferPredicates extends DefaultPlanRewriter implements @Override public Plan visitLogicalFilter(LogicalFilter filter, JobContext context) { - filter = (LogicalFilter) super.visit(filter, context); + filter = visitChildren(this, filter, context); Set filterPredicates = pullUpPredicates(filter); filterPredicates.removeAll(pullUpPredicates(filter.child())); filter.getConjuncts().forEach(filterPredicates::remove);