Try fix bug
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 db50a3c..cf811f9 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 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 @@ case STRING: case BLOB: case BOOLEAN: - case DATE: - case TIMESTAMP: default: throw new UnSupportedDataTypeException( String.format(UNSUPPORTED_DATA_TYPE, seriesDataType)); @@ -86,9 +86,11 @@ 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 @@ case STRING: case BLOB: case BOOLEAN: - case DATE: - case TIMESTAMP: default: throw new UnSupportedDataTypeException( String.format(UNSUPPORTED_DATA_TYPE, seriesDataType)); @@ -118,10 +118,12 @@ 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 @@ case STRING: case BLOB: case BOOLEAN: - case DATE: - case TIMESTAMP: default: throw new UnSupportedDataTypeException( String.format(UNSUPPORTED_DATA_TYPE, seriesDataType)); @@ -154,9 +154,11 @@ 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 @@ case STRING: case BLOB: case BOOLEAN: - case DATE: - case TIMESTAMP: default: throw new UnSupportedDataTypeException( String.format(UNSUPPORTED_DATA_TYPE, seriesDataType)); @@ -186,9 +186,11 @@ 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 @@ 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 4bfc981..b01349e 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 @@ 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 3691a13..63c87bc 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.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 @@ 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 2745ee1..14e652d 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 @@ 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 1e457c1..9428e83 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.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 @@ 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 2f5d761..e1a4b32 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 @@ 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 88b8cc8..67e84e9 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 @@ 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());