From d7dedfadad8217ebbfd61be740fe8719ea50d6d3 Mon Sep 17 00:00:00 2001 From: zhengshiJ <32082872+zhengshiJ@users.noreply.github.com> Date: Tue, 6 Sep 2022 11:50:30 +0800 Subject: [PATCH] [fix](nereids) fix dead loop in unnesting subquery rule (#12345) [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 293aff291f..3ddd25b719 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 class ApplyPullFilterOnAgg extends OneRewriteRuleFactory { 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),