This is an automated email from the ASF dual-hosted git repository.

panxiaolei pushed a commit to branch dev_syxj_2
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 6333089967f9fddd89929fc76132f29d647c25b0
Author: morningman <[email protected]>
AuthorDate: Wed Aug 16 21:33:36 2023 +0800

    [tmp] fix hive partition prune with in predicate
---
 .../rules/expression/rules/FoldConstantRuleOnFE.java       |  2 +-
 .../apache/doris/nereids/trees/expressions/Expression.java |  4 ++++
 .../trees/expressions/literal/StringLikeLiteral.java       | 14 ++++++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java
index c427ea8ec9..ae8d5ffd71 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java
@@ -413,7 +413,7 @@ public class FoldConstantRuleOnFE extends 
AbstractExpressionRewriteRule {
         }
         boolean isOptionContainsNull = false;
         for (Expression item : inPredicate.getOptions()) {
-            if (value.equals(item)) {
+            if (value.valueEquals(item)) {
                 return BooleanLiteral.TRUE;
             } else if (item.isNullLiteral()) {
                 isOptionContainsNull = true;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java
index 0d2772d768..bdd604f07c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java
@@ -222,4 +222,8 @@ public abstract class Expression extends 
AbstractTreeNode<Expression> implements
         return toSql();
     }
 
+    public boolean valueEquals(Object o) {
+        return equals(o);
+    }
+
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
index 480ac996a1..14da8ff5ab 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
@@ -19,6 +19,8 @@ package org.apache.doris.nereids.trees.expressions.literal;
 
 import org.apache.doris.nereids.types.DataType;
 
+import java.util.Objects;
+
 /** StringLikeLiteral. */
 public abstract class StringLikeLiteral extends Literal {
     public final String value;
@@ -43,4 +45,16 @@ public abstract class StringLikeLiteral extends Literal {
         }
         return (double) v;
     }
+
+    @Override
+    public boolean valueEquals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || !(o instanceof StringLikeLiteral)) {
+            return false;
+        }
+        return Objects.equals(getValue(), ((StringLikeLiteral) o).getValue());
+    }
 }
+


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to