diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ApplyPullFilterOnAgg.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ApplyPullFilterOnAgg.java index 293aff291f1ae7..3ddd25b7199ebb 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ApplyPullFilterOnAgg.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ApplyPullFilterOnAgg.java @@ -68,6 +68,11 @@ public Rule build() { List correlatedPredicate = split.get(true); List unCorrelatedPredicate = split.get(false); + // the representative has experienced the rule and added the correlated predicate to the apply node + if (correlatedPredicate.isEmpty()) { + return apply; + } + LogicalFilter newUnCorrelatedFilter = null; if (!unCorrelatedPredicate.isEmpty()) { newUnCorrelatedFilter = new LogicalFilter<>(ExpressionUtils.and(unCorrelatedPredicate),