You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2025/12/01 07:56:03 UTC
(doris) branch branch-3.1 updated: branch-3.1: [opt](coercion) change the coercion behavior (#57961)
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 755909f0d36 branch-3.1: [opt](coercion) change the coercion behavior (#57961)
755909f0d36 is described below
commit 755909f0d36646d4d0dd595d21b6c0b0c9d161b5
Author: zhangdong <zh...@selectdb.com>
AuthorDate: Mon Dec 1 15:55:55 2025 +0800
branch-3.1: [opt](coercion) change the coercion behavior (#57961)
picked part of #55672, only pick: If, NullIf, Nvl
---
.../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, 238 insertions(+), 761 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 655649822c8..bded496e01b 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,101 +20,24 @@ 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.ExplicitlyCastableSignature;
+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.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.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.types.DataType;
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, 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)
- );
+ implements TernaryExpression, CustomSignature {
/**
* constructor with 3 arguments.
@@ -152,13 +75,21 @@ public class If extends ScalarFunction
}
@Override
- public List<FunctionSignature> getSignatures() {
- return SIGNATURES;
- }
-
- @Override
- public FunctionSignature searchSignature(List<FunctionSignature> signatures) {
-
- return ExplicitlyCastableSignature.super.searchSignature(signatures);
+ 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;
+ }
}
}
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 fe6164dc085..089478b76f8 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,63 +20,23 @@ 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.ExplicitlyCastableSignature;
+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.shape.BinaryExpression;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
-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 org.apache.doris.nereids.types.DataType;
+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 'nullif'. This class is generated by GenerateFunction.
*/
public class NullIf extends ScalarFunction
- 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)
- );
+ implements BinaryExpression, CustomSignature, AlwaysNullable {
/**
* constructor with 2 arguments.
@@ -95,8 +55,21 @@ public class NullIf extends ScalarFunction
}
@Override
- public List<FunctionSignature> getSignatures() {
- return SIGNATURES;
+ 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;
+ }
}
@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 658e05f1148..52fdacb89e9 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,64 +19,23 @@ 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.ExplicitlyCastableSignature;
+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.shape.BinaryExpression;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
-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 org.apache.doris.nereids.types.DataType;
+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 'nvl'. This class is generated by GenerateFunction.
*/
public class Nvl extends ScalarFunction
- 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)
- );
+ implements BinaryExpression, CustomSignature {
/**
* constructor with 2 arguments.
@@ -103,8 +62,21 @@ public class Nvl extends ScalarFunction
}
@Override
- public List<FunctionSignature> getSignatures() {
- return SIGNATURES;
+ 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;
+ }
}
@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 0efaca36630..26af1aaef17 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
- private static Optional<DataType> findWiderTypeForTwoForCaseWhen(DataType left, DataType right) {
+ public 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,6 +1677,9 @@ 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 152c0f542e3..cb1e9e44d50 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,7 +29,6 @@ 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;
@@ -105,7 +104,7 @@ public class SimplifyConditionalFunctionTest extends ExpressionRewriteTestHelper
assertRewrite(new Nvl(nonNullableSlot, NullLiteral.INSTANCE), nonNullableSlot);
// nvl(null, null) -> null
- assertRewrite(new Nvl(NullLiteral.INSTANCE, NullLiteral.INSTANCE), new NullLiteral(BooleanType.INSTANCE));
+ assertRewrite(new Nvl(NullLiteral.INSTANCE, NullLiteral.INSTANCE), NullLiteral.INSTANCE);
SlotReference datetimeSlot = new SlotReference("dt", DateTimeV2Type.of(0), false);
// nvl(null_datetime(0), non-nullable_slot_datetime(6))
@@ -127,7 +126,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(VarcharType.SYSTEM_DEFAULT)));
+ new Nullable(new NullLiteral(StringType.INSTANCE)));
// 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
new file mode 100644
index 00000000000..5a833d1283c
--- /dev/null
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionMatrixTest.java
@@ -0,0 +1,121 @@
+// 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 9060e8d87df..17468be7b6c 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,12 +36,9 @@ 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;
@@ -50,15 +47,11 @@ 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;
@@ -68,7 +61,6 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
-import java.util.Optional;
public class TypeCoercionUtilsTest {
@Test
@@ -141,565 +133,6 @@ 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
new file mode 100644
index 00000000000..1978168745f
--- /dev/null
+++ b/regression-test/data/query_p0/sql_functions/conditional_functions/test_ifnull_array.out
@@ -0,0 +1,4 @@
+-- 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 2880b0634a0..e7f52410785 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=datetimev2(4)")) {
+ if (value.contains("col=null, colUniqueId=null, type=text")) {
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=datetimev2(5)")) {
+ if (value.contains("col=null, colUniqueId=null, type=text")) {
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=datetimev2(6)")) {
+ if (value.contains("col=null, colUniqueId=null, type=text")) {
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
new file mode 100644
index 00000000000..26e0402b6a4
--- /dev/null
+++ b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_ifnull_array.groovy
@@ -0,0 +1,41 @@
+// 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: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org