[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
This commit is contained in:
starocean999
2023-06-05 10:50:07 +08:00
committed by GitHub
parent 90a5be913c
commit c6387847aa
5 changed files with 21 additions and 19 deletions

View File

@ -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),

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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