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

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


The following commit(s) were added to refs/heads/IOTDB-6115 by this push:
     new 862b9034db7 add queryAllSensors
862b9034db7 is described below

commit 862b9034db74cfff803c507d3fd9f680f2f07d42
Author: JackieTien97 <[email protected]>
AuthorDate: Wed Aug 16 18:02:11 2023 +0800

    add queryAllSensors
---
 .../operator/source/AlignedSeriesScanOperator.java |  9 +++-
 .../operator/source/AlignedSeriesScanUtil.java     | 50 ++++++++++++++++------
 .../db/queryengine/plan/analyze/Analysis.java      | 12 ++++++
 .../queryengine/plan/analyze/AnalyzeVisitor.java   |  1 +
 .../db/queryengine/plan/parser/ASTVisitor.java     |  8 ++++
 .../plan/planner/LogicalPlanBuilder.java           | 10 ++++-
 .../plan/planner/LogicalPlanVisitor.java           |  6 ++-
 .../plan/planner/OperatorTreeGenerator.java        |  3 +-
 .../plan/planner/plan/node/PlanGraphPrinter.java   |  1 +
 .../plan/node/source/AlignedSeriesScanNode.java    | 37 +++++++++++++---
 .../plan/statement/crud/QueryStatement.java        | 12 ++++++
 .../operator/AlignedSeriesScanOperatorTest.java    | 15 ++++---
 .../execution/operator/OperatorMemoryTest.java     |  3 +-
 13 files changed, 136 insertions(+), 31 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java
index fcf04159acb..06e7953b715 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java
@@ -46,12 +46,17 @@ public class AlignedSeriesScanOperator extends 
AbstractDataSourceOperator {
       PlanNodeId sourceId,
       AlignedPath seriesPath,
       Ordering scanOrder,
-      SeriesScanOptions seriesScanOptions) {
+      SeriesScanOptions seriesScanOptions,
+      boolean queryAllSensors) {
     this.sourceId = sourceId;
     this.operatorContext = context;
     this.seriesScanUtil =
         new AlignedSeriesScanUtil(
-            seriesPath, scanOrder, seriesScanOptions, 
context.getInstanceContext());
+            seriesPath,
+            scanOrder,
+            seriesScanOptions,
+            context.getInstanceContext(),
+            queryAllSensors);
     // time + all value columns
     this.builder = new TsBlockBuilder(seriesScanUtil.getTsDataTypeList());
     this.valueColumnCount = seriesPath.getColumnNum();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java
index d577023a5aa..7e20a1e4e82 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java
@@ -49,16 +49,32 @@ public class AlignedSeriesScanUtil extends SeriesScanUtil {
 
   private final List<TSDataType> dataTypes;
 
+  // only used for limit and offset push down optimizer, if we select all 
columns from aligned
+  // device, we
+  // can use statistics to skip.
+  // it's only exact while using limit & offset push down
+  private boolean queryAllSensors = false;
+
   public AlignedSeriesScanUtil(
       PartialPath seriesPath,
       Ordering scanOrder,
       SeriesScanOptions scanOptions,
       FragmentInstanceContext context) {
+    this(seriesPath, scanOrder, scanOptions, context, false);
+  }
+
+  public AlignedSeriesScanUtil(
+      PartialPath seriesPath,
+      Ordering scanOrder,
+      SeriesScanOptions scanOptions,
+      FragmentInstanceContext context,
+      boolean queryAllSensors) {
     super(seriesPath, scanOrder, scanOptions, context);
     dataTypes =
         ((AlignedPath) seriesPath)
             
.getSchemaList().stream().map(IMeasurementSchema::getType).collect(Collectors.toList());
     isAligned = true;
+    this.queryAllSensors = queryAllSensors;
   }
 
   @SuppressWarnings("squid:S3740")
@@ -160,14 +176,20 @@ public class AlignedSeriesScanUtil extends SeriesScanUtil 
{
     long rowCount =
         ((AlignedTimeSeriesMetadata) 
firstTimeSeriesMetadata).getTimeStatistics().getCount();
     boolean canUse =
-        ((AlignedTimeSeriesMetadata) 
firstTimeSeriesMetadata).getValueStatisticsList().isEmpty();
-    for (Statistics statistics :
-        ((AlignedTimeSeriesMetadata) 
firstTimeSeriesMetadata).getValueStatisticsList()) {
-      if (statistics != null && !statistics.hasNullValue(rowCount)) {
-        canUse = true;
-        break;
+        queryAllSensors
+            || ((AlignedTimeSeriesMetadata) firstTimeSeriesMetadata)
+                .getValueStatisticsList()
+                .isEmpty();
+    if (!canUse) {
+      for (Statistics statistics :
+          ((AlignedTimeSeriesMetadata) 
firstTimeSeriesMetadata).getValueStatisticsList()) {
+        if (statistics != null && !statistics.hasNullValue(rowCount)) {
+          canUse = true;
+          break;
+        }
       }
     }
+
     if (!canUse) {
       return;
     }
@@ -200,12 +222,16 @@ public class AlignedSeriesScanUtil extends SeriesScanUtil 
{
     // NOTE: if we change the query semantic in the future for aligned series, 
we need to remove
     // this check here.
     long rowCount = firstChunkMetadata.getStatistics().getCount();
-    boolean canUse = ((AlignedChunkMetadata) 
firstChunkMetadata).getValueStatisticsList().isEmpty();
-    for (Statistics statistics :
-        ((AlignedChunkMetadata) firstChunkMetadata).getValueStatisticsList()) {
-      if (statistics != null && !statistics.hasNullValue(rowCount)) {
-        canUse = true;
-        break;
+    boolean canUse =
+        queryAllSensors
+            || ((AlignedChunkMetadata) 
firstChunkMetadata).getValueStatisticsList().isEmpty();
+    if (!canUse) {
+      for (Statistics statistics :
+          ((AlignedChunkMetadata) 
firstChunkMetadata).getValueStatisticsList()) {
+        if (statistics != null && !statistics.hasNullValue(rowCount)) {
+          canUse = true;
+          break;
+        }
       }
     }
     if (!canUse) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
index 05329d849e2..1b900c0e425 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
@@ -255,6 +255,10 @@ public class Analysis {
   // extra message from config node, queries wll be sent to these Running 
DataNodes
   private List<TDataNodeLocation> runningDataNodeLocations;
 
+  // used for limit and offset push down optimizer, if we select all columns 
from aligned device, we
+  // can use statistics to skip
+  private boolean lastLevelUseWildcard = false;
+
   public Analysis() {
     this.finishQueryAfterAnalyze = false;
   }
@@ -732,4 +736,12 @@ public class Analysis {
   public Map<String, Set<Expression>> getDeviceToOutputExpressions() {
     return deviceToOutputExpressions;
   }
+
+  public boolean isLastLevelUseWildcard() {
+    return lastLevelUseWildcard;
+  }
+
+  public void setLastLevelUseWildcard(boolean lastLevelUseWildcard) {
+    this.lastLevelUseWildcard = lastLevelUseWildcard;
+  }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
index 50fa6b50988..5f56411ac91 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
@@ -226,6 +226,7 @@ public class AnalyzeVisitor extends 
StatementVisitor<Analysis, MPPQueryContext>
   @Override
   public Analysis visitQuery(QueryStatement queryStatement, MPPQueryContext 
context) {
     Analysis analysis = new Analysis();
+    analysis.setLastLevelUseWildcard(queryStatement.isLastLevelUseWildcard());
     try {
       // check for semantic errors
       queryStatement.semanticCheck();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
index ce9bd6b11f4..15d078f79b4 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
@@ -263,6 +263,8 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
 
   private boolean useWildcard = false;
 
+  private boolean lastLevelUseWildcard = false;
+
   public void setZoneId(ZoneId zoneId) {
     this.zoneId = zoneId;
   }
@@ -1390,6 +1392,7 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
     }
 
     queryStatement.setUseWildcard(useWildcard);
+    queryStatement.setLastLevelUseWildcard(lastLevelUseWildcard);
     return queryStatement;
   }
 
@@ -1938,6 +1941,11 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
         path[i] = parseNodeName(nodeNames.get(i));
       }
     }
+    if (!lastLevelUseWildcard
+        && !nodeNames.isEmpty()
+        && !nodeNames.get(nodeNames.size() - 1).wildcard().isEmpty()) {
+      lastLevelUseWildcard = true;
+    }
     return new PartialPath(path);
   }
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
index 8914c948fab..31684bf0915 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
@@ -168,7 +168,10 @@ public class LogicalPlanBuilder {
   }
 
   public LogicalPlanBuilder planRawDataSource(
-      Set<Expression> sourceExpressions, Ordering scanOrder, Filter 
timeFilter) {
+      Set<Expression> sourceExpressions,
+      Ordering scanOrder,
+      Filter timeFilter,
+      boolean lastLevelUseWildcard) {
     List<PlanNode> sourceNodeList = new ArrayList<>();
     List<PartialPath> selectedPaths =
         sourceExpressions.stream()
@@ -187,7 +190,10 @@ public class LogicalPlanBuilder {
       } else if (path instanceof AlignedPath) { // aligned series
         AlignedSeriesScanNode alignedSeriesScanNode =
             new AlignedSeriesScanNode(
-                context.getQueryId().genPlanNodeId(), (AlignedPath) path, 
scanOrder);
+                context.getQueryId().genPlanNodeId(),
+                (AlignedPath) path,
+                scanOrder,
+                lastLevelUseWildcard);
         alignedSeriesScanNode.setTimeFilter(timeFilter);
         // TODO: push down value filter
         alignedSeriesScanNode.setValueFilter(timeFilter);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
index 2ab1fac6bbc..86b98eda96a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
@@ -234,7 +234,8 @@ public class LogicalPlanVisitor extends 
StatementVisitor<PlanNode, MPPQueryConte
               .planRawDataSource(
                   sourceExpressions,
                   queryStatement.getResultTimeOrder(),
-                  analysis.getGlobalTimeFilter())
+                  analysis.getGlobalTimeFilter(),
+                  analysis.isLastLevelUseWildcard())
               .planWhereAndSourceTransform(
                   whereExpression,
                   sourceTransformExpressions,
@@ -255,7 +256,8 @@ public class LogicalPlanVisitor extends 
StatementVisitor<PlanNode, MPPQueryConte
                 .planRawDataSource(
                     sourceExpressions,
                     queryStatement.getResultTimeOrder(),
-                    analysis.getGlobalTimeFilter())
+                    analysis.getGlobalTimeFilter(),
+                    analysis.isLastLevelUseWildcard())
                 .planWhereAndSourceTransform(
                     whereExpression,
                     sourceTransformExpressions,
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 4dfec56a44e..48d2417f8a5 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
@@ -344,7 +344,8 @@ public class OperatorTreeGenerator extends 
PlanVisitor<Operator, LocalExecutionP
             node.getPlanNodeId(),
             seriesPath,
             node.getScanOrder(),
-            seriesScanOptionsBuilder.build());
+            seriesScanOptionsBuilder.build(),
+            node.isQueryAllSensors());
 
     ((DataDriverContext) 
context.getDriverContext()).addSourceOperator(seriesScanOperator);
     ((DataDriverContext) context.getDriverContext()).addPath(seriesPath);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
index 08607d09cff..ec63414d2f7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
@@ -125,6 +125,7 @@ public class PlanGraphPrinter extends 
PlanVisitor<List<String>, PlanGraphPrinter
     if (offset > 0) {
       boxValue.add(String.format("Offset: %s", offset));
     }
+    boxValue.add(String.format("QueryAllSensors: %s", 
node.isQueryAllSensors()));
     boxValue.add(printRegion(node.getRegionReplicaSet()));
     return render(node, boxValue, context);
   }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java
index 655aa15c7c4..28cecd5f4e1 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java
@@ -67,6 +67,10 @@ public class AlignedSeriesScanNode extends SeriesSourceNode {
   // offset for result set. The default value is 0
   private long offset;
 
+  // used for limit and offset push down optimizer, if we select all columns 
from aligned device, we
+  // can use statistics to skip
+  private boolean queryAllSensors = false;
+
   // The id of DataRegion where the node will run
   private TRegionReplicaSet regionReplicaSet;
 
@@ -75,9 +79,11 @@ public class AlignedSeriesScanNode extends SeriesSourceNode {
     this.alignedPath = alignedPath;
   }
 
-  public AlignedSeriesScanNode(PlanNodeId id, AlignedPath alignedPath, 
Ordering scanOrder) {
+  public AlignedSeriesScanNode(
+      PlanNodeId id, AlignedPath alignedPath, Ordering scanOrder, boolean 
lastLevelUseWildcard) {
     this(id, alignedPath);
     this.scanOrder = scanOrder;
+    this.queryAllSensors = lastLevelUseWildcard;
   }
 
   public AlignedSeriesScanNode(
@@ -88,8 +94,9 @@ public class AlignedSeriesScanNode extends SeriesSourceNode {
       @Nullable Filter valueFilter,
       long limit,
       long offset,
-      TRegionReplicaSet dataRegionReplicaSet) {
-    this(id, alignedPath, scanOrder);
+      TRegionReplicaSet dataRegionReplicaSet,
+      boolean lastLevelUseWildcard) {
+    this(id, alignedPath, scanOrder, lastLevelUseWildcard);
     this.timeFilter = timeFilter;
     this.valueFilter = valueFilter;
     this.limit = limit;
@@ -169,6 +176,10 @@ public class AlignedSeriesScanNode extends 
SeriesSourceNode {
     return NO_CHILD_ALLOWED;
   }
 
+  public boolean isQueryAllSensors() {
+    return queryAllSensors;
+  }
+
   @Override
   public void addChild(PlanNode child) {
     throw new UnsupportedOperationException("no child is allowed for 
AlignedSeriesScanNode");
@@ -184,7 +195,8 @@ public class AlignedSeriesScanNode extends SeriesSourceNode 
{
         getValueFilter(),
         getLimit(),
         getOffset(),
-        this.regionReplicaSet);
+        this.regionReplicaSet,
+        this.queryAllSensors);
   }
 
   @Override
@@ -221,6 +233,7 @@ public class AlignedSeriesScanNode extends SeriesSourceNode 
{
     }
     ReadWriteIOUtils.write(limit, byteBuffer);
     ReadWriteIOUtils.write(offset, byteBuffer);
+    ReadWriteIOUtils.write(queryAllSensors, byteBuffer);
   }
 
   @Override
@@ -242,6 +255,7 @@ public class AlignedSeriesScanNode extends SeriesSourceNode 
{
     }
     ReadWriteIOUtils.write(limit, stream);
     ReadWriteIOUtils.write(offset, stream);
+    ReadWriteIOUtils.write(queryAllSensors, stream);
   }
 
   public static AlignedSeriesScanNode deserialize(ByteBuffer byteBuffer) {
@@ -259,9 +273,18 @@ public class AlignedSeriesScanNode extends 
SeriesSourceNode {
     }
     long limit = ReadWriteIOUtils.readLong(byteBuffer);
     long offset = ReadWriteIOUtils.readLong(byteBuffer);
+    boolean queryAllSensors = ReadWriteIOUtils.readBool(byteBuffer);
     PlanNodeId planNodeId = PlanNodeId.deserialize(byteBuffer);
     return new AlignedSeriesScanNode(
-        planNodeId, alignedPath, scanOrder, timeFilter, valueFilter, limit, 
offset, null);
+        planNodeId,
+        alignedPath,
+        scanOrder,
+        timeFilter,
+        valueFilter,
+        limit,
+        offset,
+        null,
+        queryAllSensors);
   }
 
   @Override
@@ -282,6 +305,7 @@ public class AlignedSeriesScanNode extends SeriesSourceNode 
{
         && scanOrder == that.scanOrder
         && Objects.equals(timeFilter, that.timeFilter)
         && Objects.equals(valueFilter, that.valueFilter)
+        && Objects.equals(queryAllSensors, that.queryAllSensors)
         && Objects.equals(regionReplicaSet, that.regionReplicaSet);
   }
 
@@ -295,7 +319,8 @@ public class AlignedSeriesScanNode extends SeriesSourceNode 
{
         valueFilter,
         limit,
         offset,
-        regionReplicaSet);
+        regionReplicaSet,
+        queryAllSensors);
   }
 
   public String toString() {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java
index 973414be8e1..8179eda9fbd 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java
@@ -114,6 +114,10 @@ public class QueryStatement extends Statement {
 
   private boolean useWildcard = true;
 
+  // used for limit and offset push down optimizer, if we select all columns 
from aligned device, we
+  // can use statistics to skip
+  private boolean lastLevelUseWildcard = false;
+
   public QueryStatement() {
     this.statementType = StatementType.QUERY;
   }
@@ -465,6 +469,14 @@ public class QueryStatement extends Statement {
     return useWildcard;
   }
 
+  public boolean isLastLevelUseWildcard() {
+    return lastLevelUseWildcard;
+  }
+
+  public void setLastLevelUseWildcard(boolean lastLevelUseWildcard) {
+    this.lastLevelUseWildcard = lastLevelUseWildcard;
+  }
+
   public static final String RAW_AGGREGATION_HYBRID_QUERY_ERROR_MSG =
       "Raw data and aggregation hybrid query is not supported.";
 
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
index d01f187d40f..bc3dbe0cf90 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
@@ -127,7 +127,8 @@ public class AlignedSeriesScanOperatorTest {
               planNodeId,
               alignedPath,
               Ordering.ASC,
-              getDefaultSeriesScanOptions(alignedPath));
+              getDefaultSeriesScanOptions(alignedPath),
+              false);
       seriesScanOperator.initQueryDataSource(new QueryDataSource(seqResources, 
unSeqResources));
       seriesScanOperator
           .getOperatorContext()
@@ -220,7 +221,8 @@ public class AlignedSeriesScanOperatorTest {
               planNodeId1,
               alignedPath1,
               Ordering.ASC,
-              getDefaultSeriesScanOptions(alignedPath1));
+              getDefaultSeriesScanOptions(alignedPath1),
+              false);
       seriesScanOperator1.initQueryDataSource(new 
QueryDataSource(seqResources, unSeqResources));
       seriesScanOperator1
           .getOperatorContext()
@@ -241,7 +243,8 @@ public class AlignedSeriesScanOperatorTest {
               planNodeId2,
               alignedPath2,
               Ordering.ASC,
-              getDefaultSeriesScanOptions(alignedPath2));
+              getDefaultSeriesScanOptions(alignedPath2),
+              false);
       seriesScanOperator2.initQueryDataSource(new 
QueryDataSource(seqResources, unSeqResources));
       seriesScanOperator2
           .getOperatorContext()
@@ -509,7 +512,8 @@ public class AlignedSeriesScanOperatorTest {
               planNodeId1,
               alignedPath1,
               Ordering.DESC,
-              getDefaultSeriesScanOptions(alignedPath1));
+              getDefaultSeriesScanOptions(alignedPath1),
+              false);
       seriesScanOperator1.initQueryDataSource(new 
QueryDataSource(seqResources, unSeqResources));
       seriesScanOperator1
           .getOperatorContext()
@@ -530,7 +534,8 @@ public class AlignedSeriesScanOperatorTest {
               planNodeId2,
               alignedPath2,
               Ordering.DESC,
-              getDefaultSeriesScanOptions(alignedPath2));
+              getDefaultSeriesScanOptions(alignedPath2),
+              false);
       seriesScanOperator2.initQueryDataSource(new 
QueryDataSource(seqResources, unSeqResources));
       seriesScanOperator2
           .getOperatorContext()
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 ba76afd9f58..ad3065bc6ee 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
@@ -191,7 +191,8 @@ public class OperatorMemoryTest {
               planNodeId,
               alignedPath,
               Ordering.ASC,
-              SeriesScanOptions.getDefaultSeriesScanOptions(alignedPath));
+              SeriesScanOptions.getDefaultSeriesScanOptions(alignedPath),
+              false);
 
       long maxPeekMemory =
           Math.max(

Reply via email to