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());