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";

Reply via email to