This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0-beta
in repository https://gitbox.apache.org/repos/asf/doris.git

commit b5027ef1bab2e86d3a0e1d2cd20ecd82235eef78
Author: starocean999 <[email protected]>
AuthorDate: Mon Jun 5 10:50:07 2023 +0800

    [fix](nereids) change defaultConcreteType function's return value for 
decimal (#20380)
    
    1. add default decimalv2 and decimalv3 for NullType
    2. change defaultConcreteType of decimalv3 to this
---
 .../trees/expressions/functions/scalar/Nvl.java    |  2 +-
 .../apache/doris/nereids/types/DecimalV2Type.java  |  3 ++-
 .../apache/doris/nereids/types/DecimalV3Type.java  |  3 ++-
 .../conditional_functions/test_coalesce.out        | 24 +++++++++++-----------
 .../conditional_functions/test_nullif.out          |  8 ++++----
 5 files changed, 21 insertions(+), 19 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Nvl.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Nvl.java
index cf553199fe..5e5e8736b6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Nvl.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Nvl.java
@@ -58,8 +58,8 @@ public class Nvl extends ScalarFunction
             
FunctionSignature.ret(IntegerType.INSTANCE).args(IntegerType.INSTANCE, 
IntegerType.INSTANCE),
             
FunctionSignature.ret(BigIntType.INSTANCE).args(BigIntType.INSTANCE, 
BigIntType.INSTANCE),
             
FunctionSignature.ret(LargeIntType.INSTANCE).args(LargeIntType.INSTANCE, 
LargeIntType.INSTANCE),
-            FunctionSignature.ret(FloatType.INSTANCE).args(FloatType.INSTANCE, 
FloatType.INSTANCE),
             
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
DoubleType.INSTANCE),
+            FunctionSignature.ret(FloatType.INSTANCE).args(FloatType.INSTANCE, 
FloatType.INSTANCE),
             FunctionSignature.ret(DateType.INSTANCE).args(DateType.INSTANCE, 
DateType.INSTANCE),
             
FunctionSignature.ret(DateTimeType.INSTANCE).args(DateTimeType.INSTANCE, 
DateTimeType.INSTANCE),
             
FunctionSignature.ret(DateTimeType.INSTANCE).args(DateType.INSTANCE, 
DateTimeType.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV2Type.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV2Type.java
index bbee1c1ecc..d599fbe0c3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV2Type.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV2Type.java
@@ -62,6 +62,7 @@ public class DecimalV2Type extends FractionalType {
             .put(DoubleType.INSTANCE, DOUBLE_DECIMAL)
             .put(TimeType.INSTANCE, DOUBLE_DECIMAL)
             .put(TimeV2Type.INSTANCE, DOUBLE_DECIMAL)
+            .put(NullType.INSTANCE, BOOLEAN_DECIMAL)
             .build();
 
     private final int precision;
@@ -137,7 +138,7 @@ public class DecimalV2Type extends FractionalType {
 
     @Override
     public DataType defaultConcreteType() {
-        return SYSTEM_DEFAULT;
+        return this;
     }
 
     @Override
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java
index 259da3ea90..4c78513b50 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java
@@ -60,6 +60,7 @@ public class DecimalV3Type extends FractionalType {
             .put(LargeIntType.INSTANCE, LARGEINT_DECIMAL)
             .put(FloatType.INSTANCE, FLOAT_DECIMAL)
             .put(DoubleType.INSTANCE, DOUBLE_DECIMAL)
+            .put(NullType.INSTANCE, BOOLEAN_DECIMAL)
             .build();
 
     protected final int precision;
@@ -146,7 +147,7 @@ public class DecimalV3Type extends FractionalType {
 
     @Override
     public DataType defaultConcreteType() {
-        return SYSTEM_DEFAULT;
+        return this;
     }
 
     @Override
diff --git 
a/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_coalesce.out
 
b/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_coalesce.out
index 82dbea9a25..f25ac04c28 100644
--- 
a/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_coalesce.out
+++ 
b/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_coalesce.out
@@ -326,11 +326,11 @@
 -- !coalesce3 --
 \N     \N
 1      123.123
-2      1243.5
-3      24453.324
-4      243243.33
+2      1243.500
+3      24453.325
+4      243243.325
 5      243.325
-6      604587.0
+6      604587.000
 7      3.141
 8      -0.123
 9      -654.654
@@ -338,17 +338,17 @@
 11     0.666
 12     243.325
 13     100.001
-14     0.0
-15     0.0
+14     0.000
+15     0.000
 
 -- !coalesce4 --
 \N     \N
 1      123.123
-2      1243.5
-3      24453.324
-4      243243.33
+2      1243.500
+3      24453.325
+4      243243.325
 5      243.325
-6      604587.0
+6      604587.000
 7      3.141
 8      -0.123
 9      -654.654
@@ -356,8 +356,8 @@
 11     0.666
 12     243.325
 13     100.001
-14     0.0
-15     0.0
+14     0.000
+15     0.000
 
 -- !coalesce1 --
 \N     \N
diff --git 
a/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_nullif.out
 
b/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_nullif.out
index dfda4676d3..f0746996f0 100644
--- 
a/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_nullif.out
+++ 
b/regression-test/data/nereids_p0/sql_functions/conditional_functions/test_nullif.out
@@ -490,13 +490,13 @@ null      NULL    null    NULLL
 
 -- !if_nullif23 --
 123.123
-1243.5
-24453.324
+1243.500
+24453.325
 
 -- !if_nullif24 --
 123.123
-1243.5
-24453.324
+1243.500
+24453.325
 
 -- !if_nullif23 --
 false


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to