This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 3e0543a4909 [Bug](fold) skip INET6_ATON function in fold by BE
(#53423) (#54013)
3e0543a4909 is described below
commit 3e0543a4909a82977baca9dd45368d39172f0c5c
Author: zhangstar333 <[email protected]>
AuthorDate: Fri Aug 1 09:50:21 2025 +0800
[Bug](fold) skip INET6_ATON function in fold by BE (#53423) (#54013)
### What problem does this PR solve?
Problem Summary:
cherry-pick from https://github.com/apache/doris/pull/53423
---
.../nereids/rules/expression/rules/FoldConstantRuleOnBE.java | 7 +++++--
.../expression/fold_constant/fold_constant_by_be.groovy | 9 +++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
index 2bda264aa02..041ff16eea4 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
@@ -40,6 +40,8 @@ import org.apache.doris.nereids.trees.expressions.Match;
import org.apache.doris.nereids.trees.expressions.functions.BoundFunction;
import
org.apache.doris.nereids.trees.expressions.functions.generator.TableGeneratingFunction;
import org.apache.doris.nereids.trees.expressions.functions.scalar.FromBase64;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.Ipv6StringToNumOrDefault;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.Ipv6StringToNumOrNull;
import org.apache.doris.nereids.trees.expressions.functions.scalar.NonNullable;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Nullable;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Sleep;
@@ -230,8 +232,9 @@ public class FoldConstantRuleOnBE implements
ExpressionPatternRuleFactory {
return true;
}
- // Skip from_base64 function to avoid incorrect binary data processing
during constant folding
- if (expr instanceof FromBase64) {
+ // Skip those function to avoid incorrect binary data processing
during constant folding
+ if (expr instanceof FromBase64 || expr instanceof Ipv6StringToNumOrNull
+ || expr instanceof Ipv6StringToNumOrDefault) {
return true;
}
diff --git
a/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_be.groovy
b/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_be.groovy
index 61b1c574220..8d64ac671c5 100644
---
a/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_be.groovy
+++
b/regression-test/suites/nereids_p0/expression/fold_constant/fold_constant_by_be.groovy
@@ -58,4 +58,13 @@ suite("fold_constant_by_be") {
contains "varchar(3)"
}
+ sql 'set enable_fold_constant_by_be=true;'
+ explain {
+ sql "select IS_IPV4_MAPPED(NULLABLE(INET6_ATON('192.168.1.1')));"
+ contains "192.168.1.1"
+ }
+ explain {
+ sql "select
IS_IPV4_MAPPED(NULLABLE(ipv6_string_to_num_or_default('192.168.1.1')));"
+ contains "192.168.1.1"
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]