This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new 0d66f7b58fb Revert "branch-3.1: [opt](coercion) change the coercion
behavior (#57961)" (#59351)
0d66f7b58fb is described below
commit 0d66f7b58fb3c9fae12b176b52cc1f5ca1ce27dc
Author: morrySnow <[email protected]>
AuthorDate: Thu Dec 25 15:40:16 2025 +0800
Revert "branch-3.1: [opt](coercion) change the coercion behavior (#57961)"
(#59351)
This reverts commit 755909f0d36646d4d0dd595d21b6c0b0c9d161b5. PR #57961
---
.../trees/expressions/functions/scalar/If.java | 111 +++-
.../trees/expressions/functions/scalar/NullIf.java | 69 ++-
.../trees/expressions/functions/scalar/Nvl.java | 70 ++-
.../doris/nereids/util/TypeCoercionUtils.java | 5 +-
.../rules/SimplifyConditionalFunctionTest.java | 5 +-
.../doris/nereids/util/TypeCoercionMatrixTest.java | 121 -----
.../doris/nereids/util/TypeCoercionUtilsTest.java | 567 +++++++++++++++++++++
.../conditional_functions/test_ifnull_array.out | 4 -
.../datatype/test_date_implicit_cast.groovy | 6 +-
.../conditional_functions/test_ifnull_array.groovy | 41 --
10 files changed, 761 insertions(+), 238 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/If.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/If.java
index bded496e01b..655649822c8 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/If.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/If.java
@@ -20,24 +20,101 @@ package
org.apache.doris.nereids.trees.expressions.functions.scalar;
import org.apache.doris.catalog.FunctionSignature;
import org.apache.doris.nereids.analyzer.Unbound;
import org.apache.doris.nereids.trees.expressions.Expression;
-import org.apache.doris.nereids.trees.expressions.functions.CustomSignature;
-import org.apache.doris.nereids.trees.expressions.functions.SearchSignature;
+import
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
import org.apache.doris.nereids.trees.expressions.shape.TernaryExpression;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
+import org.apache.doris.nereids.types.ArrayType;
+import org.apache.doris.nereids.types.BigIntType;
+import org.apache.doris.nereids.types.BitmapType;
import org.apache.doris.nereids.types.BooleanType;
-import org.apache.doris.nereids.types.DataType;
+import org.apache.doris.nereids.types.DateTimeType;
+import org.apache.doris.nereids.types.DateTimeV2Type;
+import org.apache.doris.nereids.types.DateType;
+import org.apache.doris.nereids.types.DateV2Type;
+import org.apache.doris.nereids.types.DecimalV2Type;
+import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
+import org.apache.doris.nereids.types.FloatType;
+import org.apache.doris.nereids.types.HllType;
+import org.apache.doris.nereids.types.IntegerType;
+import org.apache.doris.nereids.types.JsonType;
+import org.apache.doris.nereids.types.LargeIntType;
+import org.apache.doris.nereids.types.MapType;
+import org.apache.doris.nereids.types.NullType;
+import org.apache.doris.nereids.types.SmallIntType;
+import org.apache.doris.nereids.types.StringType;
+import org.apache.doris.nereids.types.TimeType;
+import org.apache.doris.nereids.types.TimeV2Type;
+import org.apache.doris.nereids.types.TinyIntType;
+import org.apache.doris.nereids.types.VarcharType;
+import org.apache.doris.nereids.types.coercion.AnyDataType;
import org.apache.doris.nereids.util.TypeCoercionUtils;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
import java.util.List;
-import java.util.Optional;
/**
* ScalarFunction 'if'. This class is generated by GenerateFunction.
*/
public class If extends ScalarFunction
- implements TernaryExpression, CustomSignature {
+ implements TernaryExpression, ExplicitlyCastableSignature {
+
+ public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
+ FunctionSignature.ret(NullType.INSTANCE)
+ .args(BooleanType.INSTANCE, NullType.INSTANCE,
NullType.INSTANCE),
+ FunctionSignature.ret(DateTimeV2Type.SYSTEM_DEFAULT)
+ .args(BooleanType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT),
+ FunctionSignature.ret(DateV2Type.INSTANCE)
+ .args(BooleanType.INSTANCE, DateV2Type.INSTANCE,
DateV2Type.INSTANCE),
+ FunctionSignature.ret(BooleanType.INSTANCE)
+ .args(BooleanType.INSTANCE, BooleanType.INSTANCE,
BooleanType.INSTANCE),
+ FunctionSignature.ret(TinyIntType.INSTANCE)
+ .args(BooleanType.INSTANCE, TinyIntType.INSTANCE,
TinyIntType.INSTANCE),
+ FunctionSignature.ret(SmallIntType.INSTANCE)
+ .args(BooleanType.INSTANCE, SmallIntType.INSTANCE,
SmallIntType.INSTANCE),
+ FunctionSignature.ret(IntegerType.INSTANCE)
+ .args(BooleanType.INSTANCE, IntegerType.INSTANCE,
IntegerType.INSTANCE),
+ FunctionSignature.ret(BigIntType.INSTANCE)
+ .args(BooleanType.INSTANCE, BigIntType.INSTANCE,
BigIntType.INSTANCE),
+ FunctionSignature.ret(LargeIntType.INSTANCE)
+ .args(BooleanType.INSTANCE, LargeIntType.INSTANCE,
LargeIntType.INSTANCE),
+ FunctionSignature.ret(FloatType.INSTANCE)
+ .args(BooleanType.INSTANCE, FloatType.INSTANCE,
FloatType.INSTANCE),
+ FunctionSignature.ret(DoubleType.INSTANCE)
+ .args(BooleanType.INSTANCE, DoubleType.INSTANCE,
DoubleType.INSTANCE),
+ FunctionSignature.ret(DateTimeType.INSTANCE)
+ .args(BooleanType.INSTANCE, DateTimeType.INSTANCE,
DateTimeType.INSTANCE),
+
FunctionSignature.ret(DateType.INSTANCE).args(BooleanType.INSTANCE,
DateType.INSTANCE,
+ DateType.INSTANCE),
+
FunctionSignature.ret(TimeType.INSTANCE).args(BooleanType.INSTANCE,
TimeType.INSTANCE,
+ TimeType.INSTANCE),
+
FunctionSignature.ret(TimeV2Type.INSTANCE).args(BooleanType.INSTANCE,
TimeV2Type.INSTANCE,
+ TimeV2Type.INSTANCE),
+ FunctionSignature.ret(DecimalV3Type.WILDCARD)
+ .args(BooleanType.INSTANCE, DecimalV3Type.WILDCARD,
DecimalV3Type.WILDCARD),
+ FunctionSignature.ret(DecimalV2Type.SYSTEM_DEFAULT)
+ .args(BooleanType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT),
+ FunctionSignature.ret(BitmapType.INSTANCE)
+ .args(BooleanType.INSTANCE, BitmapType.INSTANCE,
BitmapType.INSTANCE),
+ FunctionSignature.ret(HllType.INSTANCE).args(BooleanType.INSTANCE,
HllType.INSTANCE, HllType.INSTANCE),
+ FunctionSignature.retArgType(1)
+ .args(BooleanType.INSTANCE, ArrayType.of(new
AnyDataType(0)),
+ ArrayType.of(new AnyDataType(0))),
+ FunctionSignature.retArgType(1)
+ .args(BooleanType.INSTANCE, MapType.of(new AnyDataType(0),
new AnyDataType(1)),
+ MapType.of(new AnyDataType(0), new
AnyDataType(1))),
+ FunctionSignature.retArgType(1)
+ .args(BooleanType.INSTANCE, new AnyDataType(0), new
AnyDataType(0)),
+ // NOTICE string must at least of signature list, because all
complex type could implicit cast to string
+ FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT)
+ .args(BooleanType.INSTANCE, VarcharType.SYSTEM_DEFAULT,
VarcharType.SYSTEM_DEFAULT),
+ FunctionSignature.ret(StringType.INSTANCE)
+ .args(BooleanType.INSTANCE, StringType.INSTANCE,
StringType.INSTANCE),
+ FunctionSignature.ret(JsonType.INSTANCE)
+ .args(BooleanType.INSTANCE, JsonType.INSTANCE,
JsonType.INSTANCE)
+ );
/**
* constructor with 3 arguments.
@@ -75,21 +152,13 @@ public class If extends ScalarFunction
}
@Override
- public FunctionSignature customSignature() {
- Optional<DataType> commonType;
- try {
- commonType = TypeCoercionUtils.findWiderTypeForTwoForCaseWhen(
- getArgumentType(1), getArgumentType(2));
- } catch (Exception e) {
- SearchSignature.throwCanNotFoundFunctionException(this.getName(),
getArguments());
- return null;
- }
- if (commonType.isPresent()) {
- return FunctionSignature.ret(commonType.get())
- .args(BooleanType.INSTANCE, commonType.get(),
commonType.get());
- } else {
- SearchSignature.throwCanNotFoundFunctionException(this.getName(),
getArguments());
- return null;
- }
+ public List<FunctionSignature> getSignatures() {
+ return SIGNATURES;
+ }
+
+ @Override
+ public FunctionSignature searchSignature(List<FunctionSignature>
signatures) {
+
+ return ExplicitlyCastableSignature.super.searchSignature(signatures);
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/NullIf.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/NullIf.java
index 089478b76f8..fe6164dc085 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/NullIf.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/NullIf.java
@@ -20,23 +20,63 @@ package
org.apache.doris.nereids.trees.expressions.functions.scalar;
import org.apache.doris.catalog.FunctionSignature;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.functions.AlwaysNullable;
-import org.apache.doris.nereids.trees.expressions.functions.CustomSignature;
-import org.apache.doris.nereids.trees.expressions.functions.SearchSignature;
+import
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
-import org.apache.doris.nereids.types.DataType;
-import org.apache.doris.nereids.util.TypeCoercionUtils;
+import org.apache.doris.nereids.types.BigIntType;
+import org.apache.doris.nereids.types.BooleanType;
+import org.apache.doris.nereids.types.DateTimeType;
+import org.apache.doris.nereids.types.DateTimeV2Type;
+import org.apache.doris.nereids.types.DateType;
+import org.apache.doris.nereids.types.DateV2Type;
+import org.apache.doris.nereids.types.DecimalV2Type;
+import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
+import org.apache.doris.nereids.types.FloatType;
+import org.apache.doris.nereids.types.IntegerType;
+import org.apache.doris.nereids.types.LargeIntType;
+import org.apache.doris.nereids.types.SmallIntType;
+import org.apache.doris.nereids.types.StringType;
+import org.apache.doris.nereids.types.TimeType;
+import org.apache.doris.nereids.types.TimeV2Type;
+import org.apache.doris.nereids.types.TinyIntType;
+import org.apache.doris.nereids.types.VarcharType;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
import java.util.List;
-import java.util.Optional;
/**
* ScalarFunction 'nullif'. This class is generated by GenerateFunction.
*/
public class NullIf extends ScalarFunction
- implements BinaryExpression, CustomSignature, AlwaysNullable {
+ implements BinaryExpression, ExplicitlyCastableSignature,
AlwaysNullable {
+
+ public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
+
FunctionSignature.ret(BooleanType.INSTANCE).args(BooleanType.INSTANCE,
BooleanType.INSTANCE),
+
FunctionSignature.ret(TinyIntType.INSTANCE).args(TinyIntType.INSTANCE,
TinyIntType.INSTANCE),
+
FunctionSignature.ret(SmallIntType.INSTANCE).args(SmallIntType.INSTANCE,
SmallIntType.INSTANCE),
+
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(DateTimeType.INSTANCE).args(DateTimeType.INSTANCE,
DateTimeType.INSTANCE),
+ FunctionSignature.ret(DateType.INSTANCE).args(DateType.INSTANCE,
DateType.INSTANCE),
+ FunctionSignature.ret(DateTimeV2Type.SYSTEM_DEFAULT)
+ .args(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT),
+
FunctionSignature.ret(DateV2Type.INSTANCE).args(DateV2Type.INSTANCE,
DateV2Type.INSTANCE),
+ FunctionSignature.ret(TimeType.INSTANCE).args(TimeType.INSTANCE,
TimeType.INSTANCE),
+
FunctionSignature.ret(TimeV2Type.INSTANCE).args(TimeV2Type.INSTANCE,
TimeV2Type.INSTANCE),
+ FunctionSignature.ret(DecimalV2Type.SYSTEM_DEFAULT)
+ .args(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT),
+ FunctionSignature.ret(DecimalV3Type.WILDCARD)
+ .args(DecimalV3Type.WILDCARD, DecimalV3Type.WILDCARD),
+ FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT)
+ .args(VarcharType.SYSTEM_DEFAULT,
VarcharType.SYSTEM_DEFAULT),
+
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE,
StringType.INSTANCE)
+ );
/**
* constructor with 2 arguments.
@@ -55,21 +95,8 @@ public class NullIf extends ScalarFunction
}
@Override
- public FunctionSignature customSignature() {
- Optional<DataType> commonType;
- try {
- commonType = TypeCoercionUtils.findWiderTypeForTwoForCaseWhen(
- getArgumentType(0), getArgumentType(1));
- } catch (Exception e) {
- SearchSignature.throwCanNotFoundFunctionException(this.getName(),
getArguments());
- return null;
- }
- if (commonType.isPresent()) {
- return
FunctionSignature.ret(commonType.get()).varArgs(commonType.get());
- } else {
- SearchSignature.throwCanNotFoundFunctionException(this.getName(),
getArguments());
- return null;
- }
+ public List<FunctionSignature> getSignatures() {
+ return SIGNATURES;
}
@Override
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 52fdacb89e9..658e05f1148 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
@@ -19,23 +19,64 @@ package
org.apache.doris.nereids.trees.expressions.functions.scalar;
import org.apache.doris.catalog.FunctionSignature;
import org.apache.doris.nereids.trees.expressions.Expression;
-import org.apache.doris.nereids.trees.expressions.functions.CustomSignature;
-import org.apache.doris.nereids.trees.expressions.functions.SearchSignature;
+import
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
-import org.apache.doris.nereids.types.DataType;
-import org.apache.doris.nereids.util.TypeCoercionUtils;
+import org.apache.doris.nereids.types.BigIntType;
+import org.apache.doris.nereids.types.BitmapType;
+import org.apache.doris.nereids.types.BooleanType;
+import org.apache.doris.nereids.types.DateTimeType;
+import org.apache.doris.nereids.types.DateTimeV2Type;
+import org.apache.doris.nereids.types.DateType;
+import org.apache.doris.nereids.types.DateV2Type;
+import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
+import org.apache.doris.nereids.types.FloatType;
+import org.apache.doris.nereids.types.IntegerType;
+import org.apache.doris.nereids.types.LargeIntType;
+import org.apache.doris.nereids.types.SmallIntType;
+import org.apache.doris.nereids.types.StringType;
+import org.apache.doris.nereids.types.TimeType;
+import org.apache.doris.nereids.types.TimeV2Type;
+import org.apache.doris.nereids.types.TinyIntType;
+import org.apache.doris.nereids.types.VarcharType;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
import java.util.List;
-import java.util.Optional;
/**
* ScalarFunction 'nvl'. This class is generated by GenerateFunction.
*/
public class Nvl extends ScalarFunction
- implements BinaryExpression, CustomSignature {
+ implements BinaryExpression, ExplicitlyCastableSignature {
+
+ public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
+
FunctionSignature.ret(BooleanType.INSTANCE).args(BooleanType.INSTANCE,
BooleanType.INSTANCE),
+
FunctionSignature.ret(TinyIntType.INSTANCE).args(TinyIntType.INSTANCE,
TinyIntType.INSTANCE),
+
FunctionSignature.ret(SmallIntType.INSTANCE).args(SmallIntType.INSTANCE,
SmallIntType.INSTANCE),
+
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(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD,
DecimalV3Type.WILDCARD),
+
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(DateTimeV2Type.SYSTEM_DEFAULT)
+ .args(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT),
+ FunctionSignature.ret(DateV2Type.INSTANCE)
+ .args(DateV2Type.INSTANCE, DateV2Type.INSTANCE),
+ FunctionSignature.ret(TimeType.INSTANCE)
+ .args(TimeType.INSTANCE, TimeType.INSTANCE),
+ FunctionSignature.ret(TimeV2Type.INSTANCE)
+ .args(TimeV2Type.INSTANCE, TimeV2Type.INSTANCE),
+
FunctionSignature.ret(BitmapType.INSTANCE).args(BitmapType.INSTANCE,
BitmapType.INSTANCE),
+ FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT)
+ .args(VarcharType.SYSTEM_DEFAULT,
VarcharType.SYSTEM_DEFAULT),
+
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE,
StringType.INSTANCE)
+ );
/**
* constructor with 2 arguments.
@@ -62,21 +103,8 @@ public class Nvl extends ScalarFunction
}
@Override
- public FunctionSignature customSignature() {
- Optional<DataType> commonType;
- try {
- commonType = TypeCoercionUtils.findWiderTypeForTwoForCaseWhen(
- getArgumentType(0), getArgumentType(1));
- } catch (Exception e) {
- SearchSignature.throwCanNotFoundFunctionException(this.getName(),
getArguments());
- return null;
- }
- if (commonType.isPresent()) {
- return
FunctionSignature.ret(commonType.get()).varArgs(commonType.get());
- } else {
- SearchSignature.throwCanNotFoundFunctionException(this.getName(),
getArguments());
- return null;
- }
+ public List<FunctionSignature> getSignatures() {
+ return SIGNATURES;
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java
index 26af1aaef17..0efaca36630 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java
@@ -1511,7 +1511,7 @@ public class TypeCoercionUtils {
* find wider common type for two data type.
*/
@Developing
- public static Optional<DataType> findWiderTypeForTwoForCaseWhen(DataType
left, DataType right) {
+ private static Optional<DataType> findWiderTypeForTwoForCaseWhen(DataType
left, DataType right) {
// TODO: need to rethink how to handle char and varchar to return char
or varchar as much as possible.
Optional<DataType> commonType = findCommonComplexTypeForCaseWhen(left,
right);
if (commonType.isPresent()) {
@@ -1677,9 +1677,6 @@ public class TypeCoercionUtils {
if (otherType.isIntegerType() || otherType.isBigIntType() ||
otherType.isLargeIntType()) {
return Optional.of(otherType);
}
- if (otherType.isTinyIntType() || otherType.isSmallIntType()) {
- return Optional.of(IntegerType.INSTANCE);
- }
}
if (dateType.isDateTimeType() || dateType.isDateTimeV2Type()) {
if (otherType.isLargeIntType() || otherType.isDoubleType()) {
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rules/SimplifyConditionalFunctionTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rules/SimplifyConditionalFunctionTest.java
index cb1e9e44d50..152c0f542e3 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rules/SimplifyConditionalFunctionTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rules/SimplifyConditionalFunctionTest.java
@@ -29,6 +29,7 @@ import
org.apache.doris.nereids.trees.expressions.literal.NullLiteral;
import org.apache.doris.nereids.types.BooleanType;
import org.apache.doris.nereids.types.DateTimeV2Type;
import org.apache.doris.nereids.types.StringType;
+import org.apache.doris.nereids.types.VarcharType;
import com.google.common.collect.ImmutableList;
import org.junit.jupiter.api.Test;
@@ -104,7 +105,7 @@ public class SimplifyConditionalFunctionTest extends
ExpressionRewriteTestHelper
assertRewrite(new Nvl(nonNullableSlot, NullLiteral.INSTANCE),
nonNullableSlot);
// nvl(null, null) -> null
- assertRewrite(new Nvl(NullLiteral.INSTANCE, NullLiteral.INSTANCE),
NullLiteral.INSTANCE);
+ assertRewrite(new Nvl(NullLiteral.INSTANCE, NullLiteral.INSTANCE), new
NullLiteral(BooleanType.INSTANCE));
SlotReference datetimeSlot = new SlotReference("dt",
DateTimeV2Type.of(0), false);
// nvl(null_datetime(0), non-nullable_slot_datetime(6))
@@ -126,7 +127,7 @@ public class SimplifyConditionalFunctionTest extends
ExpressionRewriteTestHelper
SlotReference nonNullableSlot = new SlotReference("b",
StringType.INSTANCE, false);
// nullif(null, slot) -> null
assertRewrite(new NullIf(NullLiteral.INSTANCE, slot),
- new Nullable(new NullLiteral(StringType.INSTANCE)));
+ new Nullable(new NullLiteral(VarcharType.SYSTEM_DEFAULT)));
// nullif(nullable_slot, null) -> slot
assertRewrite(new NullIf(slot, NullLiteral.INSTANCE), new
Nullable(slot));
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionMatrixTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionMatrixTest.java
deleted file mode 100644
index 5a833d1283c..00000000000
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionMatrixTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.nereids.util;
-
-import org.apache.doris.nereids.types.AggStateType;
-import org.apache.doris.nereids.types.ArrayType;
-import org.apache.doris.nereids.types.BigIntType;
-import org.apache.doris.nereids.types.BitmapType;
-import org.apache.doris.nereids.types.BooleanType;
-import org.apache.doris.nereids.types.CharType;
-import org.apache.doris.nereids.types.DataType;
-import org.apache.doris.nereids.types.DateTimeType;
-import org.apache.doris.nereids.types.DateTimeV2Type;
-import org.apache.doris.nereids.types.DateType;
-import org.apache.doris.nereids.types.DateV2Type;
-import org.apache.doris.nereids.types.DecimalV2Type;
-import org.apache.doris.nereids.types.DecimalV3Type;
-import org.apache.doris.nereids.types.DoubleType;
-import org.apache.doris.nereids.types.FloatType;
-import org.apache.doris.nereids.types.HllType;
-import org.apache.doris.nereids.types.IPv4Type;
-import org.apache.doris.nereids.types.IPv6Type;
-import org.apache.doris.nereids.types.IntegerType;
-import org.apache.doris.nereids.types.JsonType;
-import org.apache.doris.nereids.types.LargeIntType;
-import org.apache.doris.nereids.types.MapType;
-import org.apache.doris.nereids.types.NullType;
-import org.apache.doris.nereids.types.QuantileStateType;
-import org.apache.doris.nereids.types.SmallIntType;
-import org.apache.doris.nereids.types.StringType;
-import org.apache.doris.nereids.types.StructField;
-import org.apache.doris.nereids.types.StructType;
-import org.apache.doris.nereids.types.TimeV2Type;
-import org.apache.doris.nereids.types.TinyIntType;
-import org.apache.doris.nereids.types.VarcharType;
-import org.apache.doris.nereids.types.VariantType;
-
-import com.google.common.collect.ImmutableList;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-import java.util.Optional;
-
-public class TypeCoercionMatrixTest {
- @Test
- public void testProcessComparisonPredicateForNullType() {
- testProcessComparisonPredicate(NullType.INSTANCE, NullType.INSTANCE,
NullType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
BooleanType.INSTANCE, BooleanType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
TinyIntType.INSTANCE, TinyIntType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
SmallIntType.INSTANCE, SmallIntType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
IntegerType.INSTANCE, IntegerType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, BigIntType.INSTANCE,
BigIntType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
LargeIntType.INSTANCE, LargeIntType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT, DecimalV2Type.SYSTEM_DEFAULT);
- testProcessComparisonPredicate(NullType.INSTANCE,
DecimalV2Type.CATALOG_DEFAULT, DecimalV2Type.CATALOG_DEFAULT);
- testProcessComparisonPredicate(NullType.INSTANCE,
DecimalV3Type.createDecimalV3Type(23, 3),
- DecimalV3Type.createDecimalV3Type(23, 3));
- testProcessComparisonPredicate(NullType.INSTANCE,
DecimalV3Type.createDecimalV3Type(38, 30),
- DecimalV3Type.createDecimalV3Type(38, 30));
- testProcessComparisonPredicate(NullType.INSTANCE, FloatType.INSTANCE,
FloatType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, DoubleType.INSTANCE,
DoubleType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, DateType.INSTANCE,
DateType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, DateV2Type.INSTANCE,
DateV2Type.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
DateTimeType.INSTANCE, DateTimeType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
DateTimeV2Type.of(0), DateTimeV2Type.of(0));
- testProcessComparisonPredicate(NullType.INSTANCE,
DateTimeV2Type.of(3), DateTimeV2Type.of(3));
- testProcessComparisonPredicate(NullType.INSTANCE,
DateTimeV2Type.of(6), DateTimeV2Type.of(6));
- testProcessComparisonPredicate(NullType.INSTANCE, TimeV2Type.of(0),
TimeV2Type.of(0));
- testProcessComparisonPredicate(NullType.INSTANCE, TimeV2Type.of(3),
TimeV2Type.of(3));
- testProcessComparisonPredicate(NullType.INSTANCE, TimeV2Type.of(6),
TimeV2Type.of(6));
- testProcessComparisonPredicate(NullType.INSTANCE, IPv4Type.INSTANCE,
IPv4Type.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, IPv6Type.INSTANCE,
IPv6Type.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, JsonType.INSTANCE,
JsonType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
CharType.createCharType(5), CharType.createCharType(5));
- testProcessComparisonPredicate(NullType.INSTANCE,
VarcharType.createVarcharType(5),
- VarcharType.createVarcharType(5));
- testProcessComparisonPredicate(NullType.INSTANCE, StringType.INSTANCE,
StringType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
ArrayType.of(StringType.INSTANCE),
- ArrayType.of(StringType.INSTANCE));
- testProcessComparisonPredicate(NullType.INSTANCE,
ArrayType.of(ArrayType.of(StringType.INSTANCE)),
- ArrayType.of(ArrayType.of(StringType.INSTANCE)));
- testProcessComparisonPredicate(NullType.INSTANCE,
MapType.of(StringType.INSTANCE, StringType.INSTANCE),
- MapType.of(StringType.INSTANCE, StringType.INSTANCE));
- testProcessComparisonPredicate(NullType.INSTANCE,
- new StructType(ImmutableList.of(new StructField("c1",
StringType.INSTANCE, true, ""))),
- new StructType(ImmutableList.of(new StructField("c1",
StringType.INSTANCE, true, ""))));
- testProcessComparisonPredicate(NullType.INSTANCE,
VariantType.INSTANCE, VariantType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, HllType.INSTANCE,
HllType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE, BitmapType.INSTANCE,
BitmapType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
QuantileStateType.INSTANCE, QuantileStateType.INSTANCE);
- testProcessComparisonPredicate(NullType.INSTANCE,
- new AggStateType("sum",
ImmutableList.of(IntegerType.INSTANCE), ImmutableList.of(true)),
- new AggStateType("sum",
ImmutableList.of(IntegerType.INSTANCE), ImmutableList.of(true)));
- }
-
- private void testProcessComparisonPredicate(DataType leftType, DataType
rightType, DataType commonType) {
- // SlotReference c1 = new SlotReference("c1", leftType);
- // SlotReference c2 = new SlotReference("c2", rightType);
- // EqualTo equalTo = new EqualTo(c1, c2);
- // GreaterThan greaterThan = new GreaterThan(c1, c2);
- // equalTo = (EqualTo)
TypeCoercionUtils.processComparisonPredicate(equalTo);
- // greaterThan = (GreaterThan)
TypeCoercionUtils.processComparisonPredicate(greaterThan);
- Optional<DataType> result =
TypeCoercionUtils.findWiderTypeForTwoForCaseWhen(leftType, rightType);
- Assertions.assertEquals(Optional.ofNullable(commonType), result);
- }
-}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
index 17468be7b6c..9060e8d87df 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
@@ -36,9 +36,12 @@ import
org.apache.doris.nereids.trees.expressions.literal.DecimalV3Literal;
import org.apache.doris.nereids.trees.expressions.literal.DoubleLiteral;
import org.apache.doris.nereids.trees.expressions.literal.StringLiteral;
import org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral;
+import org.apache.doris.nereids.types.ArrayType;
import org.apache.doris.nereids.types.BigIntType;
+import org.apache.doris.nereids.types.BitmapType;
import org.apache.doris.nereids.types.BooleanType;
import org.apache.doris.nereids.types.CharType;
+import org.apache.doris.nereids.types.DataType;
import org.apache.doris.nereids.types.DateTimeType;
import org.apache.doris.nereids.types.DateTimeV2Type;
import org.apache.doris.nereids.types.DateType;
@@ -47,11 +50,15 @@ import org.apache.doris.nereids.types.DecimalV2Type;
import org.apache.doris.nereids.types.DecimalV3Type;
import org.apache.doris.nereids.types.DoubleType;
import org.apache.doris.nereids.types.FloatType;
+import org.apache.doris.nereids.types.HllType;
import org.apache.doris.nereids.types.IntegerType;
import org.apache.doris.nereids.types.LargeIntType;
import org.apache.doris.nereids.types.NullType;
+import org.apache.doris.nereids.types.QuantileStateType;
import org.apache.doris.nereids.types.SmallIntType;
import org.apache.doris.nereids.types.StringType;
+import org.apache.doris.nereids.types.TimeType;
+import org.apache.doris.nereids.types.TimeV2Type;
import org.apache.doris.nereids.types.TinyIntType;
import org.apache.doris.nereids.types.VarcharType;
import org.apache.doris.nereids.types.coercion.IntegralType;
@@ -61,6 +68,7 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
+import java.util.Optional;
public class TypeCoercionUtilsTest {
@Test
@@ -133,6 +141,565 @@ public class TypeCoercionUtilsTest {
Assertions.assertFalse(TypeCoercionUtils.hasCharacterType(DateType.INSTANCE));
}
+ @Test
+ public void testFindCommonPrimitiveTypeForCaseWhen() {
+ testFindCommonPrimitiveTypeForCaseWhen(null, ArrayType.SYSTEM_DEFAULT,
NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, NullType.INSTANCE,
ArrayType.SYSTEM_DEFAULT);
+
+ testFindCommonPrimitiveTypeForCaseWhen(NullType.INSTANCE,
NullType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BooleanType.INSTANCE,
NullType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TinyIntType.INSTANCE,
NullType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(SmallIntType.INSTANCE,
NullType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
NullType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
NullType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
NullType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
NullType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
NullType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
NullType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
NullType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(CharType.SYSTEM_DEFAULT,
NullType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(VarcharType.SYSTEM_DEFAULT,
NullType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
NullType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateType.INSTANCE,
NullType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeType.INSTANCE,
NullType.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateV2Type.INSTANCE,
NullType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
NullType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeType.INSTANCE,
NullType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeV2Type.INSTANCE,
NullType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(HllType.INSTANCE,
NullType.INSTANCE, HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BitmapType.INSTANCE,
NullType.INSTANCE, BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(QuantileStateType.INSTANCE,
NullType.INSTANCE, QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BooleanType.INSTANCE,
BooleanType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BooleanType.INSTANCE,
BooleanType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TinyIntType.INSTANCE,
BooleanType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(SmallIntType.INSTANCE,
BooleanType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
BooleanType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BooleanType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
BooleanType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
BooleanType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
BooleanType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
BooleanType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
BooleanType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
BooleanType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
BooleanType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
BooleanType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BooleanType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BooleanType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BooleanType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BooleanType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
BooleanType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
BooleanType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BooleanType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BooleanType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BooleanType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TinyIntType.INSTANCE,
TinyIntType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TinyIntType.INSTANCE,
TinyIntType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TinyIntType.INSTANCE,
TinyIntType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(SmallIntType.INSTANCE,
TinyIntType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
TinyIntType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
TinyIntType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
TinyIntType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
TinyIntType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
TinyIntType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
TinyIntType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TinyIntType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TinyIntType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TinyIntType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TinyIntType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TinyIntType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TinyIntType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TinyIntType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TinyIntType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TinyIntType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TinyIntType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TinyIntType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TinyIntType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TinyIntType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(SmallIntType.INSTANCE,
SmallIntType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(SmallIntType.INSTANCE,
SmallIntType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(SmallIntType.INSTANCE,
SmallIntType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(SmallIntType.INSTANCE,
SmallIntType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
SmallIntType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
SmallIntType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
SmallIntType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
SmallIntType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
SmallIntType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
SmallIntType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
SmallIntType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
SmallIntType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
SmallIntType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
SmallIntType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, SmallIntType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, SmallIntType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, SmallIntType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, SmallIntType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
SmallIntType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
SmallIntType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, SmallIntType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, SmallIntType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, SmallIntType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
IntegerType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
IntegerType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
IntegerType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
IntegerType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
IntegerType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
IntegerType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
IntegerType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
IntegerType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
IntegerType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
IntegerType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
IntegerType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
IntegerType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
IntegerType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
IntegerType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
IntegerType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, IntegerType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
IntegerType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, IntegerType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
IntegerType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
IntegerType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, IntegerType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, IntegerType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, IntegerType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
BigIntType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
BigIntType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
BigIntType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
BigIntType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
BigIntType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
BigIntType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
BigIntType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
BigIntType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BigIntType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
BigIntType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BigIntType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
BigIntType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
BigIntType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BigIntType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BigIntType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BigIntType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
LargeIntType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+
testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.createDecimalV3Type(38),
LargeIntType.INSTANCE, DecimalV3Type.createDecimalV3Type(38));
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
LargeIntType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
LargeIntType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
LargeIntType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
LargeIntType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
LargeIntType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
LargeIntType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
LargeIntType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
LargeIntType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, LargeIntType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, LargeIntType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, LargeIntType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT,
+ DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT,
+ DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV2Type.SYSTEM_DEFAULT, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV2Type.SYSTEM_DEFAULT, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT,
+ DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DecimalV2Type.SYSTEM_DEFAULT, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV2Type.SYSTEM_DEFAULT, HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV2Type.SYSTEM_DEFAULT, BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV2Type.SYSTEM_DEFAULT, QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, BigIntType.INSTANCE);
+
testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.createDecimalV3Type(38),
DecimalV3Type.createDecimalV3Type(38), LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT,
+ DecimalV2Type.createDecimalV2Type(27, 0));
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT,
+ DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT,
+ DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV3Type.SYSTEM_DEFAULT, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV3Type.SYSTEM_DEFAULT, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT,
+ DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DecimalV3Type.SYSTEM_DEFAULT, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV3Type.SYSTEM_DEFAULT, HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV3Type.SYSTEM_DEFAULT, BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DecimalV3Type.SYSTEM_DEFAULT, QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
FloatType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
FloatType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
FloatType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
FloatType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
FloatType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
FloatType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
FloatType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
FloatType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
FloatType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(FloatType.INSTANCE,
FloatType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
FloatType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
FloatType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
FloatType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
FloatType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, FloatType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, FloatType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, FloatType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, FloatType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
FloatType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
FloatType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, FloatType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, FloatType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, FloatType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DoubleType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DoubleType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DoubleType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DoubleType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DoubleType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DoubleType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DoubleType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DoubleType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DoubleType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(CharType.SYSTEM_DEFAULT,
CharType.SYSTEM_DEFAULT, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(CharType.SYSTEM_DEFAULT,
CharType.SYSTEM_DEFAULT, CharType.SYSTEM_DEFAULT);
+
testFindCommonPrimitiveTypeForCaseWhen(VarcharType.createVarcharType(10),
CharType.createCharType(5),
+ CharType.createCharType(10));
+ testFindCommonPrimitiveTypeForCaseWhen(VarcharType.SYSTEM_DEFAULT,
CharType.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
CharType.SYSTEM_DEFAULT, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, CharType.SYSTEM_DEFAULT,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, CharType.SYSTEM_DEFAULT,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, CharType.SYSTEM_DEFAULT,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(VarcharType.SYSTEM_DEFAULT,
VarcharType.SYSTEM_DEFAULT, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(VarcharType.SYSTEM_DEFAULT,
VarcharType.SYSTEM_DEFAULT, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(VarcharType.SYSTEM_DEFAULT,
VarcharType.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT);
+
testFindCommonPrimitiveTypeForCaseWhen(VarcharType.createVarcharType(10),
VarcharType.createVarcharType(5),
+ VarcharType.createVarcharType(10));
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
VarcharType.SYSTEM_DEFAULT, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
VarcharType.SYSTEM_DEFAULT, HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
VarcharType.SYSTEM_DEFAULT, BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
VarcharType.SYSTEM_DEFAULT, QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
StringType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, StringType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, StringType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, StringType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateType.INSTANCE,
DateType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
DateType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
DateType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
DateType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateType.INSTANCE,
DateType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeType.INSTANCE,
DateType.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateV2Type.INSTANCE,
DateType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeType.INSTANCE,
DateTimeType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
DateTimeType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DateTimeType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DateTimeType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DateTimeType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateTimeType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateTimeType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateTimeType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeType.INSTANCE,
DateTimeType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeType.INSTANCE,
DateTimeType.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeType.INSTANCE,
+ DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateTimeType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateV2Type.INSTANCE,
DateV2Type.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(IntegerType.INSTANCE,
DateV2Type.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BigIntType.INSTANCE,
DateV2Type.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
DateV2Type.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateV2Type.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateV2Type.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateV2Type.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateV2Type.INSTANCE,
DateV2Type.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateV2Type.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateV2Type.INSTANCE,
DateV2Type.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateV2Type.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, DateV2Type.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(LargeIntType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT,
+ DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT,
+ DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT,
+ DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DateTimeV2Type.SYSTEM_DEFAULT,
DateTimeV2Type.SYSTEM_DEFAULT,
+ DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
DateTimeV2Type.SYSTEM_DEFAULT, QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeType.INSTANCE,
TimeType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
TimeType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
TimeType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TimeType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TimeType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TimeType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeType.INSTANCE,
TimeType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeV2Type.INSTANCE,
TimeType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeV2Type.INSTANCE,
TimeV2Type.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV2Type.SYSTEM_DEFAULT,
TimeV2Type.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DecimalV3Type.SYSTEM_DEFAULT,
TimeV2Type.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(DoubleType.INSTANCE,
TimeV2Type.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TimeV2Type.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TimeV2Type.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(StringType.INSTANCE,
TimeV2Type.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeV2Type.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeV2Type.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeV2Type.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeV2Type.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeV2Type.INSTANCE,
TimeV2Type.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(TimeV2Type.INSTANCE,
TimeV2Type.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeV2Type.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeV2Type.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, TimeV2Type.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(HllType.INSTANCE,
HllType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(HllType.INSTANCE,
HllType.INSTANCE, HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, HllType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BitmapType.INSTANCE,
BitmapType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(BitmapType.INSTANCE,
BitmapType.INSTANCE, BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null, BitmapType.INSTANCE,
QuantileStateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(QuantileStateType.INSTANCE,
QuantileStateType.INSTANCE, NullType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, BooleanType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, TinyIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, SmallIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, IntegerType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, BigIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, LargeIntType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, DecimalV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, DecimalV3Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, FloatType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, DoubleType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, CharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, VarcharType.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, StringType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, DateType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, DateTimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, DateV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, TimeType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, TimeV2Type.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, HllType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(null,
QuantileStateType.INSTANCE, BitmapType.INSTANCE);
+ testFindCommonPrimitiveTypeForCaseWhen(QuantileStateType.INSTANCE,
QuantileStateType.INSTANCE, QuantileStateType.INSTANCE);
+ }
+
+ private void testFindCommonPrimitiveTypeForCaseWhen(DataType commonType,
DataType left, DataType right) {
+ Assertions.assertEquals(Optional.ofNullable(commonType),
+ TypeCoercionUtils.findCommonPrimitiveTypeForCaseWhen(left,
right),
+ "left: " + left + ", right: " + right);
+ }
+
@Test
public void testCastIfNotSameType() {
Assertions.assertEquals(new DoubleLiteral(5L),
diff --git
a/regression-test/data/query_p0/sql_functions/conditional_functions/test_ifnull_array.out
b/regression-test/data/query_p0/sql_functions/conditional_functions/test_ifnull_array.out
deleted file mode 100644
index 1978168745f..00000000000
---
a/regression-test/data/query_p0/sql_functions/conditional_functions/test_ifnull_array.out
+++ /dev/null
@@ -1,4 +0,0 @@
--- This file is automatically generated. You should know what you did if you
want to edit this
--- !select --
-["1"]
-
diff --git
a/regression-test/suites/nereids_p0/datatype/test_date_implicit_cast.groovy
b/regression-test/suites/nereids_p0/datatype/test_date_implicit_cast.groovy
index e7f52410785..2880b0634a0 100644
--- a/regression-test/suites/nereids_p0/datatype/test_date_implicit_cast.groovy
+++ b/regression-test/suites/nereids_p0/datatype/test_date_implicit_cast.groovy
@@ -38,7 +38,7 @@ suite("test_date_implicit_cast") {
if (value.contains("col=k1, colUniqueId=0, type=datetimev2(4)")) {
contain0 = true;
}
- if (value.contains("col=null, colUniqueId=null, type=text")) {
+ if (value.contains("col=null, colUniqueId=null, type=datetimev2(4)")) {
contain1 = true;
}
}
@@ -61,7 +61,7 @@ suite("test_date_implicit_cast") {
if (value.contains("col=k1, colUniqueId=0, type=datetimev2(4)")) {
contain0 = true;
}
- if (value.contains("col=null, colUniqueId=null, type=text")) {
+ if (value.contains("col=null, colUniqueId=null, type=datetimev2(5)")) {
contain1 = true;
}
}
@@ -80,7 +80,7 @@ suite("test_date_implicit_cast") {
if (value.contains("col=k1, colUniqueId=0, type=datetimev2(6)")) {
contain0 = true;
}
- if (value.contains("col=null, colUniqueId=null, type=text")) {
+ if (value.contains("col=null, colUniqueId=null, type=datetimev2(6)")) {
contain1 = true;
}
}
diff --git
a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_ifnull_array.groovy
b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_ifnull_array.groovy
deleted file mode 100644
index 26e0402b6a4..00000000000
---
a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_ifnull_array.groovy
+++ /dev/null
@@ -1,41 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_ifnull_array") {
- String suiteName = "test_ifnull_array"
- String tableName = "${suiteName}_table"
-
- sql """drop table if exists `${tableName}`"""
-
- sql """
- CREATE TABLE ${tableName} (
- `class_code` varchar(50) NULL,
- `student_code` varchar(50) NULL,
- `adviser_code` varchar(50) NULL
- ) ENGINE=OLAP
- DUPLICATE KEY(`class_code`)
- DISTRIBUTED BY HASH(`class_code`) BUCKETS 10
- PROPERTIES (
- 'replication_num' = '1'
- );
- """
- sql """
- insert into ${tableName} values ('1','1','1');
- """
- qt_select "select (select array_distinct(array_agg(br.class_code)) from
${tableName} br where br.student_code = brv.student_code) as all_class_codes
from ${tableName} brv;"
- sql """drop table if exists `${tableName}`"""
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]