This is an automated email from the ASF dual-hosted git repository.
morrysnow 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 33349e1457 [fix](Nereids) fold 'version()' function (#17172)
33349e1457 is described below
commit 33349e1457110051137afcba5849fd88cae7b8bb
Author: 谢健 <[email protected]>
AuthorDate: Thu Mar 2 17:35:41 2023 +0800
[fix](Nereids) fold 'version()' function (#17172)
For compatibility with legacy planner, we fold version() with
GlobalVariable.version in Nereids
---
.../rules/expression/rewrite/rules/FoldConstantRuleOnFE.java | 8 ++++++++
regression-test/suites/nereids_p0/system/test_query_sys.groovy | 8 +++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/rules/FoldConstantRuleOnFE.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/rules/FoldConstantRuleOnFE.java
index e36a21bd05..201ff2513e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/rules/FoldConstantRuleOnFE.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/rules/FoldConstantRuleOnFE.java
@@ -50,14 +50,17 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.ConnectionId;
import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentUser;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Database;
import org.apache.doris.nereids.trees.expressions.functions.scalar.User;
+import org.apache.doris.nereids.trees.expressions.functions.scalar.Version;
import org.apache.doris.nereids.trees.expressions.literal.ArrayLiteral;
import org.apache.doris.nereids.trees.expressions.literal.BigIntLiteral;
import org.apache.doris.nereids.trees.expressions.literal.BooleanLiteral;
import org.apache.doris.nereids.trees.expressions.literal.Literal;
import org.apache.doris.nereids.trees.expressions.literal.NullLiteral;
+import org.apache.doris.nereids.trees.expressions.literal.StringLiteral;
import org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral;
import org.apache.doris.nereids.types.BooleanType;
import org.apache.doris.nereids.util.ExpressionUtils;
+import org.apache.doris.qe.GlobalVariable;
import com.google.common.collect.ImmutableList;
@@ -368,6 +371,11 @@ public class FoldConstantRuleOnFE extends
AbstractExpressionRewriteRule {
return new ArrayLiteral(arguments);
}
+ @Override
+ public Expression visitVersion(Version version, ExpressionRewriteContext
context) {
+ return new StringLiteral(GlobalVariable.version);
+ }
+
private Expression rewriteChildren(Expression expr,
ExpressionRewriteContext ctx) {
List<Expression> newChildren = new ArrayList<>();
boolean hasNewChildren = false;
diff --git a/regression-test/suites/nereids_p0/system/test_query_sys.groovy
b/regression-test/suites/nereids_p0/system/test_query_sys.groovy
index 4260de740b..a86d75be00 100644
--- a/regression-test/suites/nereids_p0/system/test_query_sys.groovy
+++ b/regression-test/suites/nereids_p0/system/test_query_sys.groovy
@@ -25,7 +25,6 @@ suite("test_query_sys", "query,p0") {
sql "SELECT DATABASE();"
sql "SELECT \"welecome to my blog!\";"
sql "describe ${tableName};"
- sql "select version();"
sql "select rand();"
sql "select rand(20);"
sql "select random();"
@@ -42,4 +41,11 @@ suite("test_query_sys", "query,p0") {
// INFORMATION_SCHEMA
sql "SELECT table_name FROM INFORMATION_SCHEMA.TABLES where
table_schema=\"test_query_db\" and TABLE_TYPE = \"BASE TABLE\" order by
table_name"
sql "SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM
INFORMATION_SCHEMA.COLUMNS WHERE table_name = \"${tableName}\" AND table_schema
=\"test_query_db\" AND column_name LIKE \"k%\""
+
+ // test version()
+ sql "set enable_nereids_planner=false"
+ def v1 = sql "select version()"
+ sql "set enable_nereids_planner=true"
+ def v2 = sql "select version()"
+ assertEquals(v1, v2)
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]