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

jackietien pushed a commit to branch tmp
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 335e25e3b038d87bdd25cf55482d82e404656300
Author: JackieTien97 <[email protected]>
AuthorDate: Thu Jul 17 16:20:34 2025 +0800

    Try fix bug
---
 .../relational/aggregation/ExtremeAccumulator.java   | 20 ++++++++++----------
 .../relational/aggregation/FirstAccumulator.java     |  4 +---
 .../relational/aggregation/FirstByAccumulator.java   |  6 ------
 .../relational/aggregation/LastAccumulator.java      |  4 +---
 .../relational/aggregation/LastByAccumulator.java    |  6 ------
 .../relational/aggregation/MaxAccumulator.java       |  4 +---
 .../relational/aggregation/MinAccumulator.java       |  4 +---
 7 files changed, 14 insertions(+), 34 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ExtremeAccumulator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ExtremeAccumulator.java
index db50a3cb7d7..cf811f9e76d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ExtremeAccumulator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ExtremeAccumulator.java
@@ -54,9 +54,11 @@ public class ExtremeAccumulator implements TableAccumulator {
   public void addInput(Column[] arguments, AggregationMask mask) {
     switch (seriesDataType) {
       case INT32:
+      case DATE:
         addIntInput(arguments[0], mask);
         return;
       case INT64:
+      case TIMESTAMP:
         addLongInput(arguments[0], mask);
         return;
       case FLOAT:
@@ -69,8 +71,6 @@ public class ExtremeAccumulator implements TableAccumulator {
       case STRING:
       case BLOB:
       case BOOLEAN:
-      case DATE:
-      case TIMESTAMP:
       default:
         throw new UnSupportedDataTypeException(
             String.format(UNSUPPORTED_DATA_TYPE, seriesDataType));
@@ -86,9 +86,11 @@ public class ExtremeAccumulator implements TableAccumulator {
 
       switch (seriesDataType) {
         case INT32:
+        case DATE:
           updateIntResult(argument.getInt(i));
           break;
         case INT64:
+        case TIMESTAMP:
           updateLongResult(argument.getLong(i));
           break;
         case FLOAT:
@@ -101,8 +103,6 @@ public class ExtremeAccumulator implements TableAccumulator 
{
         case STRING:
         case BLOB:
         case BOOLEAN:
-        case DATE:
-        case TIMESTAMP:
         default:
           throw new UnSupportedDataTypeException(
               String.format(UNSUPPORTED_DATA_TYPE, seriesDataType));
@@ -118,10 +118,12 @@ public class ExtremeAccumulator implements 
TableAccumulator {
 
     switch (seriesDataType) {
       case INT32:
+      case DATE:
         updateIntResult((int) statistics[0].getMaxValue());
         updateIntResult((int) statistics[0].getMinValue());
         break;
       case INT64:
+      case TIMESTAMP:
         updateLongResult((long) statistics[0].getMaxValue());
         updateLongResult((long) statistics[0].getMinValue());
         break;
@@ -137,8 +139,6 @@ public class ExtremeAccumulator implements TableAccumulator 
{
       case STRING:
       case BLOB:
       case BOOLEAN:
-      case DATE:
-      case TIMESTAMP:
       default:
         throw new UnSupportedDataTypeException(
             String.format(UNSUPPORTED_DATA_TYPE, seriesDataType));
@@ -154,9 +154,11 @@ public class ExtremeAccumulator implements 
TableAccumulator {
 
     switch (seriesDataType) {
       case INT32:
+      case DATE:
         columnBuilder.writeInt(extremeResult.getInt());
         break;
       case INT64:
+      case TIMESTAMP:
         columnBuilder.writeLong(extremeResult.getLong());
         break;
       case FLOAT:
@@ -169,8 +171,6 @@ public class ExtremeAccumulator implements TableAccumulator 
{
       case STRING:
       case BLOB:
       case BOOLEAN:
-      case DATE:
-      case TIMESTAMP:
       default:
         throw new UnSupportedDataTypeException(
             String.format(UNSUPPORTED_DATA_TYPE, seriesDataType));
@@ -186,9 +186,11 @@ public class ExtremeAccumulator implements 
TableAccumulator {
 
     switch (seriesDataType) {
       case INT32:
+      case DATE:
         columnBuilder.writeInt(extremeResult.getInt());
         break;
       case INT64:
+      case TIMESTAMP:
         columnBuilder.writeLong(extremeResult.getLong());
         break;
       case FLOAT:
@@ -201,8 +203,6 @@ public class ExtremeAccumulator implements TableAccumulator 
{
       case STRING:
       case BLOB:
       case BOOLEAN:
-      case DATE:
-      case TIMESTAMP:
       default:
         throw new UnSupportedDataTypeException(
             String.format(UNSUPPORTED_DATA_TYPE, seriesDataType));
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstAccumulator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstAccumulator.java
index 4bfc981c5a3..b01349e6082 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstAccumulator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstAccumulator.java
@@ -210,10 +210,8 @@ public class FirstAccumulator implements TableAccumulator {
         updateIntFirstValue((int) statistics[0].getFirstValue(), 
statistics[0].getStartTime());
         break;
       case INT64:
-        updateLongFirstValue((long) statistics[0].getFirstValue(), 
statistics[0].getStartTime());
-        break;
       case TIMESTAMP:
-        updateLongFirstValue(statistics[0].getStartTime(), 
statistics[0].getStartTime());
+        updateLongFirstValue((long) statistics[0].getFirstValue(), 
statistics[0].getStartTime());
         break;
       case FLOAT:
         updateFloatFirstValue((float) statistics[0].getFirstValue(), 
statistics[0].getStartTime());
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByAccumulator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByAccumulator.java
index 3691a13e5f6..63c87bc65d1 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByAccumulator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByAccumulator.java
@@ -23,7 +23,6 @@ import org.apache.tsfile.block.column.Column;
 import org.apache.tsfile.block.column.ColumnBuilder;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.statistics.Statistics;
-import org.apache.tsfile.file.metadata.statistics.TimeStatistics;
 import org.apache.tsfile.read.common.block.column.BinaryColumn;
 import org.apache.tsfile.read.common.block.column.BinaryColumnBuilder;
 import org.apache.tsfile.read.common.block.column.RunLengthEncodedColumn;
@@ -254,11 +253,6 @@ public class FirstByAccumulator implements 
TableAccumulator {
           yFirstTime = yStatistics.getStartTime();
           xIsNull = false;
 
-          if (xStatistics instanceof TimeStatistics) {
-            xResult.setLong(xStatistics.getStartTime());
-            return;
-          }
-
           switch (xDataType) {
             case INT32:
             case DATE:
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastAccumulator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastAccumulator.java
index 2745ee1dff9..14e652d675a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastAccumulator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastAccumulator.java
@@ -229,10 +229,8 @@ public class LastAccumulator implements TableAccumulator {
         updateIntLastValue((int) statistics[0].getLastValue(), 
statistics[0].getEndTime());
         break;
       case INT64:
-        updateLongLastValue((long) statistics[0].getLastValue(), 
statistics[0].getEndTime());
-        break;
       case TIMESTAMP:
-        updateLongLastValue(statistics[0].getEndTime(), 
statistics[0].getEndTime());
+        updateLongLastValue((long) statistics[0].getLastValue(), 
statistics[0].getEndTime());
         break;
       case FLOAT:
         updateFloatLastValue((float) statistics[0].getLastValue(), 
statistics[0].getEndTime());
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByAccumulator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByAccumulator.java
index 1e457c19afa..9428e83e8d3 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByAccumulator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByAccumulator.java
@@ -23,7 +23,6 @@ import org.apache.tsfile.block.column.Column;
 import org.apache.tsfile.block.column.ColumnBuilder;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.statistics.Statistics;
-import org.apache.tsfile.file.metadata.statistics.TimeStatistics;
 import org.apache.tsfile.read.common.block.column.BinaryColumn;
 import org.apache.tsfile.read.common.block.column.BinaryColumnBuilder;
 import org.apache.tsfile.read.common.block.column.RunLengthEncodedColumn;
@@ -278,11 +277,6 @@ public class LastByAccumulator implements TableAccumulator 
{
           yLastTime = yStatistics.getEndTime();
           xIsNull = false;
 
-          if (xStatistics instanceof TimeStatistics) {
-            xResult.setLong(xStatistics.getEndTime());
-            return;
-          }
-
           switch (xDataType) {
             case INT32:
             case DATE:
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaxAccumulator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaxAccumulator.java
index 2f5d7611355..e1a4b323694 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaxAccumulator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaxAccumulator.java
@@ -209,10 +209,8 @@ public class MaxAccumulator implements TableAccumulator {
         updateIntMaxValue((int) statistics[0].getMaxValue());
         break;
       case INT64:
-        updateLongMaxValue((long) statistics[0].getMaxValue());
-        break;
       case TIMESTAMP:
-        updateLongMaxValue(statistics[0].getEndTime());
+        updateLongMaxValue((long) statistics[0].getMaxValue());
         break;
       case FLOAT:
         updateFloatMaxValue((float) statistics[0].getMaxValue());
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MinAccumulator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MinAccumulator.java
index 88b8cc89267..67e84e94406 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MinAccumulator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MinAccumulator.java
@@ -209,10 +209,8 @@ public class MinAccumulator implements TableAccumulator {
         updateIntMinValue((int) statistics[0].getMinValue());
         break;
       case INT64:
-        updateLongMinValue((long) statistics[0].getMinValue());
-        break;
       case TIMESTAMP:
-        updateLongMinValue(statistics[0].getStartTime());
+        updateLongMinValue((long) statistics[0].getMinValue());
         break;
       case FLOAT:
         updateFloatMinValue((float) statistics[0].getMinValue());

Reply via email to