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