From 3db5450a5a54792e328b733a1c68dc8181376931 Mon Sep 17 00:00:00 2001 From: jianghaochen Date: Mon, 5 Sep 2022 17:49:08 +0800 Subject: [PATCH] [fix](nereids) fix dead loop in unnesting subquery rule --- .../nereids/rules/rewrite/logical/ApplyPullFilterOnAgg.java | 5 +++++ 1 file changed, 5 insertions(+) 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),