diff --git a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl b/iotdb-core/datanode/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl index fbdf4303bf28..3ec6a9b432c5 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl +++ b/iotdb-core/datanode/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl @@ -88,34 +88,34 @@ public class ArithmeticColumnTransformerApi { switch (rightTransformer.getType().getTypeEnum()) { case INT32: return new ${firstType}${operator.name}IntColumnTransformer( - ${operator.name}Resolver.checkConditions(argumentTypes), + ${operator.name}Resolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer); case INT64: return new ${firstType}${operator.name}LongColumnTransformer( - ${operator.name}Resolver.checkConditions(argumentTypes), + ${operator.name}Resolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer); case FLOAT: return new ${firstType}${operator.name}FloatColumnTransformer( - ${operator.name}Resolver.checkConditions(argumentTypes), + ${operator.name}Resolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer); case DOUBLE: return new ${firstType}${operator.name}DoubleColumnTransformer( - ${operator.name}Resolver.checkConditions(argumentTypes), + ${operator.name}Resolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer); <#if operator.name == "Addition" && (firstType == "Int" || firstType == "Long")> case DATE: return new ${firstType}${operator.name}DateColumnTransformer( - ${operator.name}Resolver.checkConditions(argumentTypes), + ${operator.name}Resolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); case TIMESTAMP: return new ${firstType}${operator.name}TimestampColumnTransformer( - ${operator.name}Resolver.checkConditions(argumentTypes), + ${operator.name}Resolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); @@ -135,13 +135,13 @@ public class ArithmeticColumnTransformerApi { switch (rightTransformer.getType().getTypeEnum()) { case INT32: return new DateAdditionIntColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); case INT64: return new DateAdditionLongColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); @@ -157,13 +157,13 @@ public class ArithmeticColumnTransformerApi { switch (rightTransformer.getType().getTypeEnum()) { case INT32: return new TimestampAdditionIntColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); case INT64: return new TimestampAdditionLongColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); @@ -179,13 +179,13 @@ public class ArithmeticColumnTransformerApi { switch (rightTransformer.getType().getTypeEnum()) { case INT32: return new DateSubtractionIntColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); case INT64: return new DateSubtractionLongColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); @@ -201,13 +201,13 @@ public class ArithmeticColumnTransformerApi { switch (rightTransformer.getType().getTypeEnum()) { case INT32: return new TimestampSubtractionIntColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); case INT64: return new TimestampSubtractionLongColumnTransformer( - AdditionResolver.checkConditions(argumentTypes), + AdditionResolver.checkConditions(argumentTypes).get(), leftTransformer, rightTransformer, zoneId); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/AdditionResolver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/AdditionResolver.java index 4afa7fb8c5be..7ec5ef8fe24f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/AdditionResolver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/AdditionResolver.java @@ -16,9 +16,11 @@ import org.apache.tsfile.read.common.type.Type; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import static org.apache.tsfile.read.common.type.DateType.DATE; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; @@ -68,8 +70,8 @@ private static void addCondition(Type condition1, Type condition2, Type result) } public static Optional checkConditions(List argumentTypes) { - return CONDITION_MAP - .getOrDefault(argumentTypes.get(0), Collections.empty_map()) - .getOrDefault(argumentTypes.get(1), null); + return Optional.ofNullable(CONDITION_MAP + .getOrDefault(argumentTypes.get(0), Collections.emptyMap()) + .getOrDefault(argumentTypes.get(1), null)); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/DivisionResolver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/DivisionResolver.java index a4e77c69878b..8b7d01d0d152 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/DivisionResolver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/DivisionResolver.java @@ -16,9 +16,11 @@ import org.apache.tsfile.read.common.type.Type; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; import static org.apache.tsfile.read.common.type.FloatType.FLOAT; @@ -55,9 +57,9 @@ private static void addCondition(Type condition1, Type condition2, Type result) CONDITION_MAP.computeIfAbsent(condition1, k -> new HashMap<>()).put(condition2, result); } - public static Type checkConditions(List argumentTypes) { - return CONDITION_MAP - .getOrDefault(argumentTypes.get(0), new HashMap<>()) - .getOrDefault(argumentTypes.get(1), null); + public static Optional checkConditions(List argumentTypes) { + return Optional.ofNullable(CONDITION_MAP + .getOrDefault(argumentTypes.get(0), Collections.emptyMap()) + .getOrDefault(argumentTypes.get(1), null)); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/ModulusResolver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/ModulusResolver.java index 5991b658abdb..c0e777655206 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/ModulusResolver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/ModulusResolver.java @@ -16,9 +16,11 @@ import org.apache.tsfile.read.common.type.Type; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; import static org.apache.tsfile.read.common.type.FloatType.FLOAT; @@ -55,9 +57,10 @@ private static void addCondition(Type condition1, Type condition2, Type result) CONDITION_MAP.computeIfAbsent(condition1, k -> new HashMap<>()).put(condition2, result); } - public static Type checkConditions(List argumentTypes) { - return CONDITION_MAP - .getOrDefault(argumentTypes.get(0), new HashMap<>()) - .getOrDefault(argumentTypes.get(1), null); + public static Optional checkConditions(List argumentTypes) { + return Optional.ofNullable( + CONDITION_MAP + .getOrDefault(argumentTypes.get(0), Collections.emptyMap()) + .getOrDefault(argumentTypes.get(1), null)); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java index faa76e0ca875..bcf5c35d1459 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java @@ -16,9 +16,11 @@ import org.apache.tsfile.read.common.type.Type; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; import static org.apache.tsfile.read.common.type.FloatType.FLOAT; @@ -55,9 +57,9 @@ private static void addCondition(Type condition1, Type condition2, Type result) CONDITION_MAP.computeIfAbsent(condition1, k -> new HashMap<>()).put(condition2, result); } - public static Type checkConditions(List argumentTypes) { - return CONDITION_MAP - .getOrDefault(argumentTypes.get(0), new HashMap<>()) - .getOrDefault(argumentTypes.get(1), null); + public static Optional checkConditions(List argumentTypes) { + return Optional.ofNullable(CONDITION_MAP + .getOrDefault(argumentTypes.get(0), Collections.emptyMap()) + .getOrDefault(argumentTypes.get(1), null)); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java index 1487fbeac7ff..dcc8cefa1e27 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java @@ -16,9 +16,11 @@ import org.apache.tsfile.read.common.type.Type; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import static org.apache.tsfile.read.common.type.DateType.DATE; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; @@ -63,9 +65,9 @@ private static void addCondition(Type condition1, Type condition2, Type result) CONDITION_MAP.computeIfAbsent(condition1, k -> new HashMap<>()).put(condition2, result); } - public static Type checkConditions(List argumentTypes) { - return CONDITION_MAP - .getOrDefault(argumentTypes.get(0), new HashMap<>()) - .getOrDefault(argumentTypes.get(1), null); + public static Optional checkConditions(List argumentTypes) { + return Optional.ofNullable(CONDITION_MAP + .getOrDefault(argumentTypes.get(0), Collections.emptyMap()) + .getOrDefault(argumentTypes.get(1), null)); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java index 555d97ba32f6..dbb0f86cc6c8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java @@ -111,49 +111,49 @@ public Type getOperatorReturnType(OperatorType operatorType, List