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

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

commit a736232b49b2ca47996108b0c27d7d00eabf3da6
Author: lancelly <[email protected]>
AuthorDate: Mon May 27 14:50:59 2024 +0800

    fix last/first value with BLOB
---
 .../db/it/aggregation/IoTDBAggregationIT.java      | 14 ++++-----
 .../protocol/thrift/impl/ClientRPCServiceImpl.java | 10 ++++--
 .../AbstractSeriesAggregationScanOperator.java     | 13 +++++---
 .../AlignedSeriesAggregationScanOperator.java      | 12 +++++---
 .../source/SeriesAggregationScanOperator.java      | 12 +++++---
 .../plan/planner/OperatorTreeGenerator.java        | 36 ++++++++++++++++++----
 .../operator/AggregationOperatorTest.java          |  6 ++--
 .../AlignedSeriesAggregationScanOperatorTest.java  |  3 +-
 .../operator/HorizontallyConcatOperatorTest.java   |  6 ++--
 .../execution/operator/LastQueryOperatorTest.java  | 12 +++++---
 .../operator/LastQuerySortOperatorTest.java        | 12 +++++---
 .../execution/operator/OperatorMemoryTest.java     |  3 +-
 .../SeriesAggregationScanOperatorTest.java         |  3 +-
 .../SlidingWindowAggregationOperatorTest.java      |  3 +-
 .../operator/UpdateLastCacheOperatorTest.java      |  3 +-
 15 files changed, 104 insertions(+), 44 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationIT.java
index 3857fd1d4b5..28998f057a4 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationIT.java
@@ -348,8 +348,8 @@ public class IoTDBAggregationIT {
   public void firstTest() {
     String[] retArray =
         new String[] {
-          
"0,2000,2000,2000.0,2000,2000,X2000,2000-01-01,1970-01-01T08:00:02.000+08:00",
-          "0,500,500,500.0,500,500,X0500,0500-01-01,500"
+          
"0,2000,2000,2000.0,2000,2000,0x2000,2000-01-01,1970-01-01T08:00:02.000+08:00",
+          
"0,500,500,500.0,500,500,0x0500,1500-01-01,1970-01-01T08:00:00.500+08:00"
         };
     try (Connection connection = EnvFactory.getEnv().getConnection();
         Statement statement = connection.createStatement()) {
@@ -454,9 +454,9 @@ public class IoTDBAggregationIT {
   public void lastTest() {
     String[] retArray =
         new String[] {
-          "0,8499,8499.0,8499,X8499,8499-01-01,1970-01-01T08:00:08.499+08:00",
-          "0,1499,1499.0,1499,X1499,1499-01-01,1499",
-          "0,2200,2200.0,2200,X2200,2200-01-01,2200"
+          "0,8499,8499.0,8499,0x8499,8499-01-01,1970-01-01T08:00:08.499+08:00",
+          "0,1499,1499.0,1499,0x1499,1499-01-01,1970-01-01T08:00:01.499+08:00",
+          "0,2200,2200.0,2200,0x2200,2200-01-01,1970-01-01T08:00:02.200+08:00"
         };
     try (Connection connection = EnvFactory.getEnv().getConnection();
         Statement statement = connection.createStatement()) {
@@ -599,7 +599,7 @@ public class IoTDBAggregationIT {
   @Test
   public void maxminTimeTest() {
     String[] retArray =
-        new String[] 
{"0,8499,500,8499,500,X8499,X0500,8499,1000,8499,500,8499,500", "0,2499,2000"};
+        new String[] {"0,8499,500,8499,500,8499,500,8499,500,8499,500", 
"0,2499,2000"};
     try (Connection connection = EnvFactory.getEnv().getConnection();
         Statement statement = connection.createStatement()) {
 
@@ -1123,7 +1123,7 @@ public class IoTDBAggregationIT {
                   "true",
                   "'" + i + "'",
                   "X'0" + i + "'",
-                  "'0" + i + "-01-01'",
+                  "'1" + i + "-01-01'",
                   i));
         } else {
           statement.addBatch(
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
index fb8fc40ba46..98c862f27b2 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
@@ -709,7 +709,10 @@ public class ClientRPCServiceImpl implements 
IClientRPCServiceWithHandler {
               Collections.singletonList(aggregator),
               initTimeRangeIterator(groupByTimeParameter, true, true),
               groupByTimeParameter,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              !TSDataType.BLOB.equals(dataType)
+                  || (!TAggregationType.LAST_VALUE.equals(aggregationType)
+                      && 
!TAggregationType.FIRST_VALUE.equals(aggregationType)));
     } else {
       path = new MeasurementPath(device, measurement, measurementSchema);
       operator =
@@ -722,7 +725,10 @@ public class ClientRPCServiceImpl implements 
IClientRPCServiceWithHandler {
               Collections.singletonList(aggregator),
               initTimeRangeIterator(groupByTimeParameter, true, true),
               groupByTimeParameter,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              !TSDataType.BLOB.equals(dataType)
+                  || (!TAggregationType.LAST_VALUE.equals(aggregationType)
+                      && 
!TAggregationType.FIRST_VALUE.equals(aggregationType)));
     }
 
     try {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java
index 30260d51b25..75fe64629e1 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java
@@ -68,6 +68,9 @@ public abstract class AbstractSeriesAggregationScanOperator 
extends AbstractData
   /** Time slice for one next call in total, shared by the inner methods of 
the next() method */
   private long leftRuntimeOfOneNextCall;
 
+  /** Some special data types(like BLOB) cannot use statistics. */
+  private final boolean canUseStatistics;
+
   @SuppressWarnings("squid:S107")
   protected AbstractSeriesAggregationScanOperator(
       PlanNodeId sourceId,
@@ -79,7 +82,8 @@ public abstract class AbstractSeriesAggregationScanOperator 
extends AbstractData
       boolean ascending,
       boolean outputEndTime,
       GroupByTimeParameter groupByTimeParameter,
-      long maxReturnSize) {
+      long maxReturnSize,
+      boolean canUseStatistics) {
     this.sourceId = sourceId;
     this.operatorContext = context;
     this.ascending = ascending;
@@ -93,6 +97,7 @@ public abstract class AbstractSeriesAggregationScanOperator 
extends AbstractData
         (1L + subSensorSize) * 
TSFileDescriptor.getInstance().getConfig().getPageSizeInByte() * 3;
     this.maxReturnSize = maxReturnSize;
     this.outputEndTime = outputEndTime;
+    this.canUseStatistics = canUseStatistics;
   }
 
   @Override
@@ -238,7 +243,7 @@ public abstract class AbstractSeriesAggregationScanOperator 
extends AbstractData
     // start stopwatch
     long start = System.nanoTime();
     while (System.nanoTime() - start < leftRuntimeOfOneNextCall && 
seriesScanUtil.hasNextFile()) {
-      if (seriesScanUtil.canUseCurrentFileStatistics()) {
+      if (canUseStatistics && seriesScanUtil.canUseCurrentFileStatistics()) {
         Statistics fileTimeStatistics = 
seriesScanUtil.currentFileTimeStatistics();
         if (fileTimeStatistics.getStartTime() > curTimeRange.getMax()) {
           if (ascending) {
@@ -279,7 +284,7 @@ public abstract class AbstractSeriesAggregationScanOperator 
extends AbstractData
     // start stopwatch
     long start = System.nanoTime();
     while (System.nanoTime() - start < leftRuntimeOfOneNextCall && 
seriesScanUtil.hasNextChunk()) {
-      if (seriesScanUtil.canUseCurrentChunkStatistics()) {
+      if (canUseStatistics && seriesScanUtil.canUseCurrentChunkStatistics()) {
         Statistics chunkTimeStatistics = 
seriesScanUtil.currentChunkTimeStatistics();
         if (chunkTimeStatistics.getStartTime() > curTimeRange.getMax()) {
           if (ascending) {
@@ -321,7 +326,7 @@ public abstract class AbstractSeriesAggregationScanOperator 
extends AbstractData
     long start = System.nanoTime();
     try {
       while (System.nanoTime() - start < leftRuntimeOfOneNextCall && 
seriesScanUtil.hasNextPage()) {
-        if (seriesScanUtil.canUseCurrentPageStatistics()) {
+        if (canUseStatistics && seriesScanUtil.canUseCurrentPageStatistics()) {
           Statistics pageTimeStatistics = 
seriesScanUtil.currentPageTimeStatistics();
           // There is no more eligible points in current time range
           if (pageTimeStatistics.getStartTime() > curTimeRange.getMax()) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java
index 0333f90da3e..01bd90ad9ab 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java
@@ -50,7 +50,8 @@ public class AlignedSeriesAggregationScanOperator extends 
AbstractSeriesAggregat
       List<Aggregator> aggregators,
       ITimeRangeIterator timeRangeIterator,
       GroupByTimeParameter groupByTimeParameter,
-      long maxReturnSize) {
+      long maxReturnSize,
+      boolean canUseStatistics) {
     super(
         sourceId,
         context,
@@ -61,7 +62,8 @@ public class AlignedSeriesAggregationScanOperator extends 
AbstractSeriesAggregat
         scanOrder.isAscending(),
         false,
         groupByTimeParameter,
-        maxReturnSize);
+        maxReturnSize,
+        canUseStatistics);
   }
 
   public AlignedSeriesAggregationScanOperator(
@@ -74,7 +76,8 @@ public class AlignedSeriesAggregationScanOperator extends 
AbstractSeriesAggregat
       List<Aggregator> aggregators,
       ITimeRangeIterator timeRangeIterator,
       GroupByTimeParameter groupByTimeParameter,
-      long maxReturnSize) {
+      long maxReturnSize,
+      boolean canUseStatistics) {
     super(
         sourceId,
         context,
@@ -85,7 +88,8 @@ public class AlignedSeriesAggregationScanOperator extends 
AbstractSeriesAggregat
         scanOrder.isAscending(),
         outputEndTime,
         groupByTimeParameter,
-        maxReturnSize);
+        maxReturnSize,
+        canUseStatistics);
   }
 
   @Override
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java
index 741a2d225ee..2cf2e851071 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java
@@ -57,7 +57,8 @@ public class SeriesAggregationScanOperator extends 
AbstractSeriesAggregationScan
       List<Aggregator> aggregators,
       ITimeRangeIterator timeRangeIterator,
       GroupByTimeParameter groupByTimeParameter,
-      long maxReturnSize) {
+      long maxReturnSize,
+      boolean canUseStatistics) {
     super(
         sourceId,
         context,
@@ -68,7 +69,8 @@ public class SeriesAggregationScanOperator extends 
AbstractSeriesAggregationScan
         scanOrder.isAscending(),
         false,
         groupByTimeParameter,
-        maxReturnSize);
+        maxReturnSize,
+        canUseStatistics);
   }
 
   public SeriesAggregationScanOperator(
@@ -81,7 +83,8 @@ public class SeriesAggregationScanOperator extends 
AbstractSeriesAggregationScan
       List<Aggregator> aggregators,
       ITimeRangeIterator timeRangeIterator,
       GroupByTimeParameter groupByTimeParameter,
-      long maxReturnSize) {
+      long maxReturnSize,
+      boolean canUseStatistics) {
     super(
         sourceId,
         context,
@@ -92,7 +95,8 @@ public class SeriesAggregationScanOperator extends 
AbstractSeriesAggregationScan
         scanOrder.isAscending(),
         outputEndTime,
         groupByTimeParameter,
-        maxReturnSize);
+        maxReturnSize,
+        canUseStatistics);
   }
 
   @Override
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
index 1c5e3f4ed5d..cc1da9b7ec4 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.queryengine.plan.planner;
 
+import org.apache.iotdb.common.rpc.thrift.TAggregationType;
 import org.apache.iotdb.common.rpc.thrift.TEndPoint;
 import org.apache.iotdb.commons.path.AlignedPath;
 import org.apache.iotdb.commons.path.MeasurementPath;
@@ -572,6 +573,10 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
                 context.getNextOperatorId(),
                 node.getPlanNodeId(),
                 SeriesAggregationScanOperator.class.getSimpleName());
+    boolean canUseStatistics =
+        !TSDataType.BLOB.equals(node.getSeriesPath().getSeriesType())
+            || (aggregationDescriptors.stream()
+                .noneMatch(o -> !judgeCanUseStatistics(o.getAggregationType(), 
TSDataType.BLOB)));
     SeriesAggregationScanOperator aggregateScanOperator =
         new SeriesAggregationScanOperator(
             node.getPlanNodeId(),
@@ -583,7 +588,8 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
             aggregators,
             timeRangeIterator,
             node.getGroupByTimeParameter(),
-            maxReturnSize);
+            maxReturnSize,
+            canUseStatistics);
 
     ((DataDriverContext) 
context.getDriverContext()).addSourceOperator(aggregateScanOperator);
     ((DataDriverContext) context.getDriverContext()).addPath(seriesPath);
@@ -597,6 +603,7 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
     AlignedPath seriesPath = node.getAlignedPath();
     boolean ascending = node.getScanOrder() == Ordering.ASC;
     List<Aggregator> aggregators = new ArrayList<>();
+    boolean canUseStatistics = true;
     for (AggregationDescriptor descriptor : 
node.getAggregationDescriptorList()) {
       checkArgument(
           descriptor.getInputExpressions().size() == 1,
@@ -610,6 +617,9 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
         int seriesIndex = seriesPath.getMeasurementList().indexOf(inputSeries);
         TSDataType seriesDataType =
             
seriesPath.getMeasurementSchema().getSubMeasurementsTSDataTypeList().get(seriesIndex);
+        if (!judgeCanUseStatistics(descriptor.getAggregationType(), 
seriesDataType)) {
+          canUseStatistics = false;
+        }
         aggregators.add(
             new Aggregator(
                 AccumulatorFactory.createAccumulator(
@@ -683,7 +693,8 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
             aggregators,
             timeRangeIterator,
             groupByTimeParameter,
-            maxReturnSize);
+            maxReturnSize,
+            canUseStatistics);
 
     ((DataDriverContext) context.getDriverContext())
         .addSourceOperator(seriesAggregationScanOperator);
@@ -692,6 +703,13 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
     return seriesAggregationScanOperator;
   }
 
+  private boolean judgeCanUseStatistics(
+      final TAggregationType aggregationType, final TSDataType seriesType) {
+    return !TSDataType.BLOB.equals(seriesType)
+        || (!TAggregationType.LAST_VALUE.equals(aggregationType)
+            && !TAggregationType.FIRST_VALUE.equals(aggregationType));
+  }
+
   private SeriesScanOptions.Builder 
getSeriesScanOptionsBuilder(LocalExecutionPlanContext context) {
     SeriesScanOptions.Builder scanOptionsBuilder = new 
SeriesScanOptions.Builder();
 
@@ -2640,7 +2658,8 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
             aggregators,
             timeRangeIterator,
             null,
-            maxReturnSize);
+            maxReturnSize,
+            !TSDataType.BLOB.equals(seriesPath.getSeriesType()));
     ((DataDriverContext) context.getDriverContext())
         .addSourceOperator(seriesAggregationScanOperator);
     ((DataDriverContext) context.getDriverContext()).addPath(seriesPath);
@@ -2651,9 +2670,13 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
       AlignedLastQueryScanNode node, AlignedPath unCachedPath, 
LocalExecutionPlanContext context) {
     // last_time, last_value
     List<Aggregator> aggregators = new ArrayList<>();
+    boolean canUseStatistics = true;
     for (int i = 0; i < unCachedPath.getMeasurementList().size(); i++) {
-      aggregators.addAll(
-          
LastQueryUtil.createAggregators(unCachedPath.getSchemaList().get(i).getType(), 
i));
+      TSDataType dataType = unCachedPath.getSchemaList().get(i).getType();
+      aggregators.addAll(LastQueryUtil.createAggregators(dataType, i));
+      if (TSDataType.BLOB.equals(dataType)) {
+        canUseStatistics = false;
+      }
     }
     ITimeRangeIterator timeRangeIterator = initTimeRangeIterator(null, false, 
false);
     long maxReturnSize = 
calculateMaxAggregationResultSizeForLastQuery(aggregators);
@@ -2679,7 +2702,8 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
             aggregators,
             timeRangeIterator,
             null,
-            maxReturnSize);
+            maxReturnSize,
+            canUseStatistics);
     ((DataDriverContext) context.getDriverContext())
         .addSourceOperator(seriesAggregationScanOperator);
     ((DataDriverContext) context.getDriverContext()).addPath(unCachedPath);
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
index f7e24558be8..fc9fab2c79d 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
@@ -342,7 +342,8 @@ public class AggregationOperatorTest {
             aggregators,
             initTimeRangeIterator(groupByTimeParameter, true, true),
             groupByTimeParameter,
-            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+            true);
 
     List<TsFileResource> seqResources1 = new ArrayList<>();
     List<TsFileResource> unSeqResources1 = new ArrayList<>();
@@ -366,7 +367,8 @@ public class AggregationOperatorTest {
             aggregators,
             initTimeRangeIterator(groupByTimeParameter, true, true),
             groupByTimeParameter,
-            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+            true);
 
     List<TsFileResource> seqResources2 = new ArrayList<>();
     List<TsFileResource> unSeqResources2 = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
index 041621fd101..67f603f9746 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
@@ -745,7 +745,8 @@ public class AlignedSeriesAggregationScanOperatorTest {
             aggregators,
             initTimeRangeIterator(groupByTimeParameter, ascending, true),
             groupByTimeParameter,
-            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+            true);
     seriesAggregationScanOperator.initQueryDataSource(
         new QueryDataSource(seqResources, unSeqResources));
     return seriesAggregationScanOperator;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
index c06bf2ff434..d85a5c45bff 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
@@ -149,7 +149,8 @@ public class HorizontallyConcatOperatorTest {
               aggregators,
               initTimeRangeIterator(groupByTimeParameter, true, true),
               groupByTimeParameter,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator1.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
       seriesAggregationScanOperator1
@@ -169,7 +170,8 @@ public class HorizontallyConcatOperatorTest {
               aggregators,
               initTimeRangeIterator(groupByTimeParameter, true, true),
               groupByTimeParameter,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator2.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
       seriesAggregationScanOperator2
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
index 03c7402ab87..879585a033c 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
@@ -146,7 +146,8 @@ public class LastQueryOperatorTest {
               aggregators1,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
 
       seriesAggregationScanOperator1.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
@@ -171,7 +172,8 @@ public class LastQueryOperatorTest {
               aggregators2,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator2.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
 
@@ -273,7 +275,8 @@ public class LastQueryOperatorTest {
               aggregators1,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator1.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
 
@@ -297,7 +300,8 @@ public class LastQueryOperatorTest {
               aggregators2,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator2.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
 
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
index 6197254c4e5..4b1164b62a2 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
@@ -147,7 +147,8 @@ public class LastQuerySortOperatorTest {
               aggregators1,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator1.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
 
@@ -171,7 +172,8 @@ public class LastQuerySortOperatorTest {
               aggregators2,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator2.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
 
@@ -273,7 +275,8 @@ public class LastQuerySortOperatorTest {
               aggregators1,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator1.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
 
@@ -297,7 +300,8 @@ public class LastQuerySortOperatorTest {
               aggregators2,
               initTimeRangeIterator(null, false, true),
               null,
-              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+              DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+              true);
       seriesAggregationScanOperator2.initQueryDataSource(
           new QueryDataSource(seqResources, unSeqResources));
 
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java
index 94a98b19f90..52c5a71a46f 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java
@@ -1223,7 +1223,8 @@ public class OperatorMemoryTest {
         aggregators,
         timeRangeIterator,
         groupByTimeParameter,
-        maxReturnSize);
+        maxReturnSize,
+        true);
   }
 
   @Test
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
index e799847d2d5..84b64112beb 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
@@ -660,7 +660,8 @@ public class SeriesAggregationScanOperatorTest {
             aggregators,
             initTimeRangeIterator(groupByTimeParameter, ascending, true),
             groupByTimeParameter,
-            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+            true);
     seriesAggregationScanOperator.initQueryDataSource(
         new QueryDataSource(seqResources, unSeqResources));
     return seriesAggregationScanOperator;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
index 16cb6e0ab87..f894294104b 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
@@ -259,7 +259,8 @@ public class SlidingWindowAggregationOperatorTest {
             aggregators,
             initTimeRangeIterator(groupByTimeParameter, ascending, true),
             groupByTimeParameter,
-            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+            true);
     seriesAggregationScanOperator.initQueryDataSource(
         new QueryDataSource(seqResources, unSeqResources));
 
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
index c3b0ad8bbd0..f39d9157a51 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
@@ -225,7 +225,8 @@ public class UpdateLastCacheOperatorTest {
             aggregators,
             initTimeRangeIterator(groupByTimeParameter, ascending, true),
             groupByTimeParameter,
-            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES);
+            DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES,
+            true);
     seriesAggregationScanOperator.initQueryDataSource(
         new QueryDataSource(seqResources, unSeqResources));
 

Reply via email to