From 5581171685c228e53a04faf6afdd767625301a45 Mon Sep 17 00:00:00 2001 From: morrySnow Date: Fri, 9 Aug 2024 12:19:30 +0800 Subject: [PATCH] [fix](variable) support all type functions --- .../src/main/java/org/apache/doris/qe/ConnectContext.java | 4 ++-- regression-test/data/nereids_p0/test_user_var.out | 3 +++ regression-test/suites/nereids_p0/test_user_var.groovy | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java index b5f8c8d9be5ec7..c531b1167d2c3c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java @@ -558,7 +558,7 @@ public void setUserVar(SetVar setVar) { } else if (literalExpr instanceof NullLiteral) { return Literal.of(null); } else { - return Literal.of(""); + return Literal.of(literalExpr.getStringValue()); } } else { // If there are no such user defined var, just return the NULL value. @@ -587,7 +587,7 @@ public void fillValueForUserDefinedVar(VariableExpr desc) { desc.setIsNull(); } else { desc.setType(Type.VARCHAR); - desc.setStringValue(""); + desc.setStringValue(literalExpr.getStringValue()); } } else { // If there are no such user defined var, just fill the NULL value. diff --git a/regression-test/data/nereids_p0/test_user_var.out b/regression-test/data/nereids_p0/test_user_var.out index 5d6338dd7ee6c0..a4508fd738dc5d 100644 --- a/regression-test/data/nereids_p0/test_user_var.out +++ b/regression-test/data/nereids_p0/test_user_var.out @@ -17,3 +17,6 @@ true false -- !function -- 4 +-- !datetime -- +2007-12-01 00:30:19 + diff --git a/regression-test/suites/nereids_p0/test_user_var.groovy b/regression-test/suites/nereids_p0/test_user_var.groovy index 35eb8d861d8e66..7c97387f4bbc2a 100644 --- a/regression-test/suites/nereids_p0/test_user_var.groovy +++ b/regression-test/suites/nereids_p0/test_user_var.groovy @@ -23,6 +23,7 @@ suite("test_user_var") { sql "SET @c1='H', @c2=''" sql "SET @d1=true, @d2=false" sql "SET @f1=null" + sql "set @dt1 = from_unixtime(1196440219);" sql "set @func_1=(abs(1) + 1) * 2" sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" @@ -33,6 +34,7 @@ suite("test_user_var") { qt_boolean 'select @d1, @d2;' qt_null_literal 'select @f1, @f2;' qt_function 'select @func_1' + qt_datetime 'select @dt1' multi_sql( """