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

Reply via email to