This is an automated email from the ASF dual-hosted git repository. jakevin pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 2555e78076e [fix](Nereids): fix NPE InferPredicates (#29978) 2555e78076e is described below commit 2555e78076e8665593ae0efe22237656ad9cc46d Author: jakevin <jakevin...@gmail.com> AuthorDate: Tue Jan 16 10:09:25 2024 +0800 [fix](Nereids): fix NPE InferPredicates (#29978) PredicatePropagation shouldn't add null into List. --- .../java/org/apache/doris/nereids/rules/rewrite/InferPredicates.java | 4 ++-- .../org/apache/doris/nereids/rules/rewrite/PredicatePropagation.java | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) 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 36236c3db8d..bafbc45cae3 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 @@ -122,8 +122,8 @@ public class InferPredicates extends DefaultPlanRewriter<JobContext> implements private Plan inferNewPredicate(Plan plan, Set<Expression> expressions) { Set<Expression> predicates = expressions.stream() - .filter(c -> !c.getInputSlots().isEmpty() && plan.getOutputSet().containsAll( - c.getInputSlots())).collect(Collectors.toSet()); + .filter(c -> !c.getInputSlots().isEmpty() && plan.getOutputSet().containsAll(c.getInputSlots())) + .collect(Collectors.toSet()); predicates.removeAll(plan.accept(pollUpPredicates, null)); return PlanUtils.filterOrSelf(predicates, plan); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PredicatePropagation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PredicatePropagation.java index 5d11a1fa542..d1eba6cce36 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PredicatePropagation.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PredicatePropagation.java @@ -95,7 +95,10 @@ public class PredicatePropagation { slotPredicates.forEach((left, exprs) -> { for (Slot right : equalSet.calEqualSet(left)) { for (Expression expr : exprs) { - inferred.add(doInferPredicate(left, right, expr)); + Expression inferPredicate = doInferPredicate(left, right, expr); + if (inferPredicate != null) { + inferred.add(inferPredicate); + } } } }); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org