This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 7d09754c827 [fix](Nereids) fix fe fold constant failed when using like
function (#37616) (#37863)
7d09754c827 is described below
commit 7d09754c82763e40fdd28598b6b636ff3c97bd15
Author: LiBinfeng <[email protected]>
AuthorDate: Tue Jul 16 14:26:37 2024 +0800
[fix](Nereids) fix fe fold constant failed when using like function
(#37616) (#37863)
cherry-pick from master
---
.../nereids/rules/expression/rules/FoldConstantRuleOnFE.java | 6 ------
.../expression/fold_constant/fold_constant_by_fe.groovy | 11 ++++++++++-
2 files changed, 10 insertions(+), 7 deletions(-)
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 b0a285958a3..71377c021b2 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
@@ -35,7 +35,6 @@ import org.apache.doris.nereids.trees.expressions.InPredicate;
import org.apache.doris.nereids.trees.expressions.IsNull;
import org.apache.doris.nereids.trees.expressions.LessThan;
import org.apache.doris.nereids.trees.expressions.LessThanEqual;
-import org.apache.doris.nereids.trees.expressions.Like;
import org.apache.doris.nereids.trees.expressions.Not;
import org.apache.doris.nereids.trees.expressions.NullSafeEqual;
import org.apache.doris.nereids.trees.expressions.Or;
@@ -300,11 +299,6 @@ public class FoldConstantRuleOnFE extends
AbstractExpressionRewriteRule {
}
}
- @Override
- public Expression visitLike(Like like, ExpressionRewriteContext context) {
- return like;
- }
-
@Override
public Expression visitCast(Cast cast, ExpressionRewriteContext context) {
cast = rewriteChildren(cast, context);
diff --git
a/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_fe.groovy
b/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_fe.groovy
index 6d02446c995..5792ce67cf9 100644
---
a/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_fe.groovy
+++
b/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_fe.groovy
@@ -19,6 +19,7 @@ suite("test_fold_constant_by_fe") {
sql 'set enable_nereids_planner=true'
sql 'set enable_fallback_to_original_planner=false'
sql 'set enable_fold_nondeterministic_fn=true'
+ sql 'set enable_fold_constant_by_be=false'
def results = sql 'select uuid(), uuid()'
assertFalse(Objects.equals(results[0][0], results[0][1]))
@@ -152,4 +153,12 @@ suite("test_fold_constant_by_fe") {
res = res.split('VUNION')[1]
assertFalse(res.contains("unix"))
}
-}
\ No newline at end of file
+
+ // test null like string cause of fe need to fold constant like that to
enable not null derive
+ res = sql """explain select null like '%123%'"""
+ assertFalse(res.contains("like"))
+ // now fe fold constant still can not deal with this case
+ res = sql """explain select "12" like '%123%'"""
+ assertTrue(res.contains("like"))
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]