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

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new bf4fb32487 [minor](catalog) remove useless compatibilityMatrix in 
catalog PrimitiveType (#24999)
bf4fb32487 is described below

commit bf4fb324875ae4366baaf07695f90292de1d55c0
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Thu Sep 28 15:57:59 2023 +0800

    [minor](catalog) remove useless compatibilityMatrix in catalog 
PrimitiveType (#24999)
---
 .../org/apache/doris/catalog/PrimitiveType.java    | 407 +--------------------
 1 file changed, 6 insertions(+), 401 deletions(-)

diff --git 
a/fe/fe-common/src/main/java/org/apache/doris/catalog/PrimitiveType.java 
b/fe/fe-common/src/main/java/org/apache/doris/catalog/PrimitiveType.java
index 5f34bb65c9..78a60239f2 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/catalog/PrimitiveType.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/PrimitiveType.java
@@ -20,7 +20,6 @@ package org.apache.doris.catalog;
 import org.apache.doris.common.Config;
 import org.apache.doris.thrift.TPrimitiveType;
 
-import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.ImmutableSetMultimap;
 import com.google.common.collect.Lists;
@@ -88,7 +87,7 @@ public enum PrimitiveType {
     private static final int STRING_INDEX_LEN = 20;
     private static final int DECIMAL_INDEX_LEN = 12;
 
-    public static ImmutableSet<PrimitiveType> typeWithPrecision;
+    public static final ImmutableSet<PrimitiveType> typeWithPrecision;
 
     static {
         ImmutableSet.Builder<PrimitiveType> builder = ImmutableSet.builder();
@@ -99,7 +98,7 @@ public enum PrimitiveType {
         typeWithPrecision = builder.build();
     }
 
-    private static ImmutableSetMultimap<PrimitiveType, PrimitiveType> 
implicitCastMap;
+    private static final ImmutableSetMultimap<PrimitiveType, PrimitiveType> 
implicitCastMap;
 
     public static ImmutableSetMultimap<PrimitiveType, PrimitiveType> 
getImplicitCastMap() {
         return implicitCastMap;
@@ -552,9 +551,9 @@ public enum PrimitiveType {
         implicitCastMap = builder.build();
     }
 
-    private static ArrayList<PrimitiveType> integerTypes;
-    private static ArrayList<PrimitiveType> numericTypes;
-    private static ArrayList<PrimitiveType> supportedTypes;
+    private static final ArrayList<PrimitiveType> integerTypes;
+    private static final ArrayList<PrimitiveType> numericTypes;
+    private static final ArrayList<PrimitiveType> supportedTypes;
 
     static {
         integerTypes = Lists.newArrayList();
@@ -627,379 +626,13 @@ public enum PrimitiveType {
         return implicitCastMap.get(type).contains(target);
     }
 
-    /**
-     * Matrix that records "smallest" assignment-compatible type of two types
-     * (INVALID_TYPE if no such type exists, ie, if the input types are 
fundamentally
-     * incompatible). A value of any of the two types could be assigned to a 
slot
-     * of the assignment-compatible type without loss of precision.
-     * <p/>
-     * We chose not to follow MySQL's type casting behavior as described here:
-     * http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html
-     * for the following reasons:
-     * conservative casting in arithmetic exprs: TINYINT + TINYINT -> BIGINT
-     * comparison of many types as double: INT < FLOAT -> comparison as DOUBLE
-     * special cases when dealing with dates and timestamps
-     */
-    private static PrimitiveType[][] compatibilityMatrix;
-
-    static {
-        compatibilityMatrix = new 
PrimitiveType[PrimitiveType.values().length][PrimitiveType.values().length];
-
-        // NULL_TYPE is compatible with any type and results in the non-null 
type.
-        compatibilityMatrix[NULL_TYPE.ordinal()][NULL_TYPE.ordinal()] = 
NULL_TYPE;
-        compatibilityMatrix[NULL_TYPE.ordinal()][BOOLEAN.ordinal()] = BOOLEAN;
-        compatibilityMatrix[NULL_TYPE.ordinal()][TINYINT.ordinal()] = TINYINT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][SMALLINT.ordinal()] = 
SMALLINT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][INT.ordinal()] = INT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][BIGINT.ordinal()] = BIGINT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][LARGEINT.ordinal()] = 
LARGEINT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][FLOAT.ordinal()] = FLOAT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DATE.ordinal()] = DATE;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DATETIME.ordinal()] = 
DATETIME;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DATEV2.ordinal()] = DATEV2;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DATETIMEV2.ordinal()] = 
DATETIMEV2;
-        compatibilityMatrix[NULL_TYPE.ordinal()][CHAR.ordinal()] = CHAR;
-        compatibilityMatrix[NULL_TYPE.ordinal()][VARCHAR.ordinal()] = VARCHAR;
-        compatibilityMatrix[NULL_TYPE.ordinal()][JSONB.ordinal()] = JSONB;
-        compatibilityMatrix[NULL_TYPE.ordinal()][VARIANT.ordinal()] = VARIANT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][STRING.ordinal()] = STRING;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL32;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[NULL_TYPE.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[NULL_TYPE.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[NULL_TYPE.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-        compatibilityMatrix[NULL_TYPE.ordinal()][BITMAP.ordinal()] = BITMAP;
-        compatibilityMatrix[NULL_TYPE.ordinal()][QUANTILE_STATE.ordinal()] = 
QUANTILE_STATE;
-        compatibilityMatrix[NULL_TYPE.ordinal()][AGG_STATE.ordinal()] = 
AGG_STATE;
-
-        compatibilityMatrix[BOOLEAN.ordinal()][BOOLEAN.ordinal()] = BOOLEAN;
-        compatibilityMatrix[BOOLEAN.ordinal()][TINYINT.ordinal()] = TINYINT;
-        compatibilityMatrix[BOOLEAN.ordinal()][SMALLINT.ordinal()] = SMALLINT;
-        compatibilityMatrix[BOOLEAN.ordinal()][INT.ordinal()] = INT;
-        compatibilityMatrix[BOOLEAN.ordinal()][BIGINT.ordinal()] = BIGINT;
-        compatibilityMatrix[BOOLEAN.ordinal()][LARGEINT.ordinal()] = LARGEINT;
-        compatibilityMatrix[BOOLEAN.ordinal()][FLOAT.ordinal()] = FLOAT;
-        compatibilityMatrix[BOOLEAN.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[BOOLEAN.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][DATETIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][DATEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][JSONB.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][VARIANT.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][STRING.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BOOLEAN.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[BOOLEAN.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL32;
-        compatibilityMatrix[BOOLEAN.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[BOOLEAN.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[BOOLEAN.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[BOOLEAN.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[TINYINT.ordinal()][TINYINT.ordinal()] = TINYINT;
-        compatibilityMatrix[TINYINT.ordinal()][SMALLINT.ordinal()] = SMALLINT;
-        compatibilityMatrix[TINYINT.ordinal()][INT.ordinal()] = INT;
-        compatibilityMatrix[TINYINT.ordinal()][BIGINT.ordinal()] = BIGINT;
-        compatibilityMatrix[TINYINT.ordinal()][LARGEINT.ordinal()] = LARGEINT;
-        compatibilityMatrix[TINYINT.ordinal()][FLOAT.ordinal()] = FLOAT;
-        compatibilityMatrix[TINYINT.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[TINYINT.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][DATETIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][DATEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][JSONB.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][VARIANT.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][STRING.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[TINYINT.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[TINYINT.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL32;
-        compatibilityMatrix[TINYINT.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[TINYINT.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[TINYINT.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[TINYINT.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[SMALLINT.ordinal()][SMALLINT.ordinal()] = SMALLINT;
-        compatibilityMatrix[SMALLINT.ordinal()][INT.ordinal()] = INT;
-        compatibilityMatrix[SMALLINT.ordinal()][BIGINT.ordinal()] = BIGINT;
-        compatibilityMatrix[SMALLINT.ordinal()][LARGEINT.ordinal()] = LARGEINT;
-        compatibilityMatrix[SMALLINT.ordinal()][FLOAT.ordinal()] = FLOAT;
-        compatibilityMatrix[SMALLINT.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[SMALLINT.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][DATETIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][DATEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][JSONB.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][VARIANT.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][STRING.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[SMALLINT.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[SMALLINT.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL32;
-        compatibilityMatrix[SMALLINT.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[SMALLINT.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[SMALLINT.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[SMALLINT.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[INT.ordinal()][INT.ordinal()] = INT;
-        compatibilityMatrix[INT.ordinal()][BIGINT.ordinal()] = BIGINT;
-        compatibilityMatrix[INT.ordinal()][LARGEINT.ordinal()] = LARGEINT;
-        compatibilityMatrix[INT.ordinal()][FLOAT.ordinal()] = FLOAT;
-        compatibilityMatrix[INT.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[INT.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][DATEV2.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][JSONB.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][VARIANT.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][STRING.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[INT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
-        compatibilityMatrix[INT.ordinal()][DECIMAL32.ordinal()] = DECIMAL32;
-        compatibilityMatrix[INT.ordinal()][DECIMAL64.ordinal()] = DECIMAL64;
-        compatibilityMatrix[INT.ordinal()][DECIMAL128.ordinal()] = DECIMAL128;
-        compatibilityMatrix[INT.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[INT.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[BIGINT.ordinal()][BIGINT.ordinal()] = BIGINT;
-        compatibilityMatrix[BIGINT.ordinal()][LARGEINT.ordinal()] = LARGEINT;
-        compatibilityMatrix[BIGINT.ordinal()][FLOAT.ordinal()] = DOUBLE;
-        compatibilityMatrix[BIGINT.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[BIGINT.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][DATETIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][DATEV2.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][JSONB.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][VARIANT.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][STRING.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[BIGINT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
-        compatibilityMatrix[BIGINT.ordinal()][DECIMAL32.ordinal()] = DECIMAL32;
-        compatibilityMatrix[BIGINT.ordinal()][DECIMAL64.ordinal()] = DECIMAL64;
-        compatibilityMatrix[BIGINT.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[BIGINT.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[BIGINT.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[LARGEINT.ordinal()][LARGEINT.ordinal()] = LARGEINT;
-        compatibilityMatrix[LARGEINT.ordinal()][FLOAT.ordinal()] = DOUBLE;
-        compatibilityMatrix[LARGEINT.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[LARGEINT.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][DATETIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][DATEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][JSONB.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][VARIANT.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][STRING.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[LARGEINT.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[LARGEINT.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL32;
-        compatibilityMatrix[LARGEINT.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[LARGEINT.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[LARGEINT.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[LARGEINT.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[FLOAT.ordinal()][FLOAT.ordinal()] = FLOAT;
-        compatibilityMatrix[FLOAT.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[FLOAT.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][DATETIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][DATEV2.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][JSONB.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][VARIANT.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][STRING.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[FLOAT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
-        compatibilityMatrix[FLOAT.ordinal()][DECIMAL32.ordinal()] = DECIMAL32;
-        compatibilityMatrix[FLOAT.ordinal()][DECIMAL64.ordinal()] = DECIMAL64;
-        compatibilityMatrix[FLOAT.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[FLOAT.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[FLOAT.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[DOUBLE.ordinal()][DOUBLE.ordinal()] = DOUBLE;
-        compatibilityMatrix[DOUBLE.ordinal()][DATE.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][DATETIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][DATEV2.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][DATETIMEV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][JSONB.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][VARIANT.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][STRING.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DOUBLE.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
-        compatibilityMatrix[DOUBLE.ordinal()][DECIMAL32.ordinal()] = DECIMAL32;
-        compatibilityMatrix[DOUBLE.ordinal()][DECIMAL64.ordinal()] = DECIMAL64;
-        compatibilityMatrix[DOUBLE.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DOUBLE.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[DOUBLE.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[DATE.ordinal()][DATE.ordinal()] = DATE;
-        compatibilityMatrix[DATE.ordinal()][DATETIME.ordinal()] = DATETIME;
-        compatibilityMatrix[DATE.ordinal()][DATEV2.ordinal()] = DATEV2;
-        compatibilityMatrix[DATE.ordinal()][DATETIMEV2.ordinal()] = DATETIMEV2;
-        compatibilityMatrix[DATE.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][STRING.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][JSONB.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][VARIANT.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][DECIMALV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][DECIMAL32.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][DECIMAL64.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][DECIMAL128.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][TIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATE.ordinal()][TIMEV2.ordinal()] = INVALID_TYPE;
-
-        compatibilityMatrix[DATEV2.ordinal()][DATE.ordinal()] = DATEV2;
-        compatibilityMatrix[DATEV2.ordinal()][DATETIME.ordinal()] = DATETIMEV2;
-        compatibilityMatrix[DATEV2.ordinal()][DATEV2.ordinal()] = DATEV2;
-        compatibilityMatrix[DATEV2.ordinal()][DATETIMEV2.ordinal()] = 
DATETIMEV2;
-        compatibilityMatrix[DATEV2.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][STRING.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][DECIMALV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][DECIMAL32.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][DECIMAL64.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][DECIMAL128.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][TIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATEV2.ordinal()][TIMEV2.ordinal()] = INVALID_TYPE;
-
-        compatibilityMatrix[DATETIME.ordinal()][DATETIME.ordinal()] = DATETIME;
-        compatibilityMatrix[DATETIME.ordinal()][DATETIMEV2.ordinal()] = 
DATETIMEV2;
-        compatibilityMatrix[DATETIME.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][JSONB.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][VARIANT.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][STRING.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][DECIMALV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][DECIMAL32.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][DECIMAL64.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][DECIMAL128.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][TIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[DATETIME.ordinal()][TIMEV2.ordinal()] = 
INVALID_TYPE;
-
-        compatibilityMatrix[DATETIMEV2.ordinal()][DATETIME.ordinal()] = 
DATETIMEV2;
-        compatibilityMatrix[DATETIMEV2.ordinal()][DATETIMEV2.ordinal()] = 
DATETIMEV2;
-        compatibilityMatrix[DATETIMEV2.ordinal()][CHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][VARCHAR.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][STRING.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][DECIMALV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][DECIMAL32.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][DECIMAL64.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][DECIMAL128.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][TIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DATETIMEV2.ordinal()][TIMEV2.ordinal()] = 
INVALID_TYPE;
-
-        compatibilityMatrix[CHAR.ordinal()][CHAR.ordinal()] = CHAR;
-        compatibilityMatrix[CHAR.ordinal()][VARCHAR.ordinal()] = VARCHAR;
-        compatibilityMatrix[CHAR.ordinal()][JSONB.ordinal()] = CHAR;
-        compatibilityMatrix[CHAR.ordinal()][VARIANT.ordinal()] = CHAR;
-        compatibilityMatrix[CHAR.ordinal()][STRING.ordinal()] = STRING;
-        compatibilityMatrix[CHAR.ordinal()][DECIMALV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[CHAR.ordinal()][DECIMAL32.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[CHAR.ordinal()][DECIMAL64.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[CHAR.ordinal()][DECIMAL128.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[CHAR.ordinal()][TIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[CHAR.ordinal()][TIMEV2.ordinal()] = INVALID_TYPE;
-
-        compatibilityMatrix[VARCHAR.ordinal()][VARCHAR.ordinal()] = VARCHAR;
-        compatibilityMatrix[VARCHAR.ordinal()][STRING.ordinal()] = STRING;
-        compatibilityMatrix[VARCHAR.ordinal()][JSONB.ordinal()] = VARCHAR;
-        compatibilityMatrix[VARCHAR.ordinal()][VARIANT.ordinal()] = VARCHAR;
-        compatibilityMatrix[VARCHAR.ordinal()][DECIMALV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[VARCHAR.ordinal()][DECIMAL32.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[VARCHAR.ordinal()][DECIMAL64.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[VARCHAR.ordinal()][DECIMAL128.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[VARCHAR.ordinal()][TIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[VARCHAR.ordinal()][TIMEV2.ordinal()] = 
INVALID_TYPE;
-
-        compatibilityMatrix[STRING.ordinal()][STRING.ordinal()] = STRING;
-        compatibilityMatrix[STRING.ordinal()][DECIMALV2.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[STRING.ordinal()][DECIMAL32.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[STRING.ordinal()][DECIMAL64.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[STRING.ordinal()][DECIMAL128.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[STRING.ordinal()][JSONB.ordinal()] = STRING;
-        compatibilityMatrix[STRING.ordinal()][VARIANT.ordinal()] = STRING;
-        compatibilityMatrix[STRING.ordinal()][TIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[STRING.ordinal()][TIMEV2.ordinal()] = INVALID_TYPE;
-
-        compatibilityMatrix[JSONB.ordinal()][JSONB.ordinal()] = JSONB;
-        compatibilityMatrix[JSONB.ordinal()][STRING.ordinal()] = STRING;
-        compatibilityMatrix[JSONB.ordinal()][VARCHAR.ordinal()] = VARCHAR;
-        compatibilityMatrix[JSONB.ordinal()][CHAR.ordinal()] = CHAR;
-        compatibilityMatrix[JSONB.ordinal()][VARIANT.ordinal()] = VARIANT;
-
-        compatibilityMatrix[VARIANT.ordinal()][VARIANT.ordinal()] = VARIANT;
-        compatibilityMatrix[VARIANT.ordinal()][STRING.ordinal()] = STRING;
-        compatibilityMatrix[VARIANT.ordinal()][VARCHAR.ordinal()] = VARCHAR;
-        compatibilityMatrix[VARIANT.ordinal()][CHAR.ordinal()] = CHAR;
-        compatibilityMatrix[VARIANT.ordinal()][JSONB.ordinal()] = JSONB;
-
-        compatibilityMatrix[DECIMALV2.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[DECIMALV2.ordinal()][DECIMAL32.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[DECIMALV2.ordinal()][DECIMAL64.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[DECIMALV2.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DECIMALV2.ordinal()][TIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DECIMALV2.ordinal()][TIMEV2.ordinal()] = 
INVALID_TYPE;
-
-        compatibilityMatrix[DECIMAL32.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[DECIMAL32.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL32;
-        compatibilityMatrix[DECIMAL32.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[DECIMAL32.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DECIMAL32.ordinal()][TIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DECIMAL32.ordinal()][TIMEV2.ordinal()] = 
INVALID_TYPE;
-
-        compatibilityMatrix[DECIMAL64.ordinal()][DECIMALV2.ordinal()] = 
DECIMALV2;
-        compatibilityMatrix[DECIMAL64.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[DECIMAL64.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL64;
-        compatibilityMatrix[DECIMAL64.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DECIMAL64.ordinal()][TIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DECIMAL64.ordinal()][TIMEV2.ordinal()] = 
INVALID_TYPE;
-
-        compatibilityMatrix[DECIMAL128.ordinal()][DECIMALV2.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DECIMAL128.ordinal()][DECIMAL32.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DECIMAL128.ordinal()][DECIMAL64.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DECIMAL128.ordinal()][DECIMAL128.ordinal()] = 
DECIMAL128;
-        compatibilityMatrix[DECIMAL128.ordinal()][TIME.ordinal()] = 
INVALID_TYPE;
-        compatibilityMatrix[DECIMAL128.ordinal()][TIMEV2.ordinal()] = 
INVALID_TYPE;
-
-        compatibilityMatrix[HLL.ordinal()][HLL.ordinal()] = HLL;
-        compatibilityMatrix[HLL.ordinal()][TIME.ordinal()] = INVALID_TYPE;
-        compatibilityMatrix[HLL.ordinal()][TIMEV2.ordinal()] = INVALID_TYPE;
-
-        compatibilityMatrix[BITMAP.ordinal()][BITMAP.ordinal()] = BITMAP;
-
-        compatibilityMatrix[TIME.ordinal()][TIME.ordinal()] = TIME;
-        compatibilityMatrix[TIME.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        compatibilityMatrix[TIMEV2.ordinal()][TIME.ordinal()] = TIMEV2;
-        compatibilityMatrix[TIMEV2.ordinal()][TIMEV2.ordinal()] = TIMEV2;
-
-        
compatibilityMatrix[QUANTILE_STATE.ordinal()][QUANTILE_STATE.ordinal()] = 
QUANTILE_STATE;
-
-        compatibilityMatrix[AGG_STATE.ordinal()][AGG_STATE.ordinal()] = 
INVALID_TYPE;
-    }
-
-    static {
-        // NULL_TYPE is compatible with any type and results in the non-null 
type.
-        compatibilityMatrix[NULL_TYPE.ordinal()][NULL_TYPE.ordinal()] = 
NULL_TYPE;
-        compatibilityMatrix[NULL_TYPE.ordinal()][BOOLEAN.ordinal()] = BOOLEAN;
-        compatibilityMatrix[NULL_TYPE.ordinal()][TINYINT.ordinal()] = TINYINT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][SMALLINT.ordinal()] = 
SMALLINT;
-        compatibilityMatrix[NULL_TYPE.ordinal()][INT.ordinal()] = INT;
-    }
-
     private final String description;
     private final int slotSize;  // size of tuple slot for this type
     private final TPrimitiveType thriftType;
     private final boolean availableInDdl;
     private boolean isTimeType = false;
 
-    private PrimitiveType(String description, int slotSize, TPrimitiveType 
thriftType, boolean availableInDdl) {
+    PrimitiveType(String description, int slotSize, TPrimitiveType thriftType, 
boolean availableInDdl) {
         this.description = description;
         this.slotSize = slotSize;
         this.thriftType = thriftType;
@@ -1010,9 +643,6 @@ public enum PrimitiveType {
         isTimeType = true;
     }
 
-    /**
-     * @return
-     */
     public boolean isTimeType() {
         return isTimeType;
     }
@@ -1102,31 +732,6 @@ public enum PrimitiveType {
         return ARRAY.slotSize;
     }
 
-    /**
-     * Return type t such that values from both t1 and t2 can be assigned to t
-     * without loss of precision. Returns INVALID_TYPE if there is no such type
-     * or if any of t1 and t2 is INVALID_TYPE.
-     */
-    public static PrimitiveType getAssignmentCompatibleType(PrimitiveType t1, 
PrimitiveType t2) {
-        if (!t1.isValid() || !t2.isValid()) {
-            return INVALID_TYPE;
-        }
-
-        PrimitiveType smallerType = (t1.ordinal() < t2.ordinal() ? t1 : t2);
-        PrimitiveType largerType = (t1.ordinal() > t2.ordinal() ? t1 : t2);
-        PrimitiveType result = 
compatibilityMatrix[smallerType.ordinal()][largerType.ordinal()];
-        Preconditions.checkNotNull(result);
-        return result;
-    }
-
-    /**
-     * Returns if it is compatible to implicitly cast from t1 to t2 (casting 
from
-     * t1 to t2 results in no loss of precision.
-     */
-    public static boolean isImplicitlyCastable(PrimitiveType t1, PrimitiveType 
t2) {
-        return getAssignmentCompatibleType(t1, t2) == t2;
-    }
-
     @Override
     public String toString() {
         return description;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to