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]

Reply via email to