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]
