This is an automated email from the ASF dual-hosted git repository. caogaofei pushed a commit to branch agg_table_scan in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 0c80c71fdb8d7f64ddb00a5ee81ec9b7ff8a6587 Author: Beyyes <[email protected]> AuthorDate: Mon Sep 23 16:02:08 2024 +0800 fix first, last --- .../metadata/TableBuiltinAggregationFunction.java | 20 +++++++++++--------- .../plan/relational/metadata/TableMetadataImpl.java | 4 ++++ .../apache/iotdb/db/utils/constant/SqlConstant.java | 3 +++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableBuiltinAggregationFunction.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableBuiltinAggregationFunction.java index 8435938771a..0964702ed4b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableBuiltinAggregationFunction.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableBuiltinAggregationFunction.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata; +import org.apache.iotdb.db.utils.constant.SqlConstant; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.Type; @@ -79,15 +81,15 @@ public enum TableBuiltinAggregationFunction { public static boolean canUseStatistics(String name) { final String functionName = name.toLowerCase(); switch (functionName) { - case "sum": - case "count": - case "avg": - case "extreme": - case "max": - case "min": - case "first": - case "last": - case "time_duration": + case SqlConstant.SUM: + case SqlConstant.COUNT: + case SqlConstant.AVG: + case SqlConstant.EXTREME: + case SqlConstant.MIN: + case SqlConstant.MAX: + case SqlConstant.FIRST: + case SqlConstant.LAST: + case SqlConstant.TIME_DURATION: return true; case "first_by": case "last_by": 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 7902b37d68e..9e8e5dfe70d 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 @@ -549,6 +549,8 @@ public class TableMetadataImpl implements Metadata { case SqlConstant.LAST_VALUE: case SqlConstant.TIME_DURATION: case SqlConstant.MODE: + case SqlConstant.FIRST: + case SqlConstant.LAST: if (argumentTypes.size() != 1) { throw new SemanticException( String.format( @@ -581,6 +583,8 @@ public class TableMetadataImpl implements Metadata { case SqlConstant.COUNT: case SqlConstant.TIME_DURATION: return INT64; + case SqlConstant.FIRST: + case SqlConstant.LAST: case SqlConstant.MIN_VALUE: case SqlConstant.LAST_VALUE: case SqlConstant.FIRST_VALUE: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/constant/SqlConstant.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/constant/SqlConstant.java index ba3a4d86d72..2772e1a2ee1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/constant/SqlConstant.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/constant/SqlConstant.java @@ -74,6 +74,9 @@ public class SqlConstant { // names of scalar functions public static final String DIFF = "diff"; + public static final String MAX = "max"; + public static final String MIN = "min"; + public static final String FIRST = "first"; public static final String LAST = "last"; public static final String CAST_FUNCTION = "CAST";
