You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2022/11/14 07:05:15 UTC
[iotdb] 02/05: add WindowConcatNode
This is an automated email from the ASF dual-hosted git repository.
hui pushed a commit to branch ml/windowSet
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 21df9f4ea8a1d2cdecb936e5fc9ad83c0ca28556
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Mon Nov 14 10:21:25 2022 +0800
add WindowConcatNode
---
.../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java | 16 +--
.../iotdb/db/mpp/plan/constant/StatementType.java | 2 +-
.../db/mpp/plan/parser/StatementGenerator.java | 4 +-
.../db/mpp/plan/planner/LogicalPlanBuilder.java | 16 +++
.../db/mpp/plan/planner/LogicalPlanVisitor.java | 13 +-
.../planner/distribution/DistributionPlanner.java | 4 +-
.../SimpleFragmentParallelPlanner.java | 4 +-
.../mpp/plan/planner/plan/node/PlanNodeType.java | 9 +-
.../db/mpp/plan/planner/plan/node/PlanVisitor.java | 5 +
.../plan/node/process/WindowConcatNode.java | 140 +++++++++++++++++++++
.../db/mpp/plan/statement/StatementVisitor.java | 6 +-
...atement.java => FetchWindowBatchStatement.java} | 15 +--
12 files changed, 200 insertions(+), 34 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
index ad46dbdfb1..76beb5b7ca 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
@@ -68,7 +68,7 @@ import org.apache.iotdb.db.mpp.plan.statement.component.SortItem;
import org.apache.iotdb.db.mpp.plan.statement.component.SortKey;
import org.apache.iotdb.db.mpp.plan.statement.component.WhereCondition;
import org.apache.iotdb.db.mpp.plan.statement.crud.DeleteDataStatement;
-import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowSetStatement;
+import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowBatchStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertMultiTabletsStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowsOfOneDeviceStatement;
@@ -1208,17 +1208,17 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext>
}
@Override
- public Analysis visitFetchWindowSet(
- FetchWindowSetStatement fetchWindowSetStatement, MPPQueryContext context) {
+ public Analysis visitFetchWindowBatch(
+ FetchWindowBatchStatement fetchWindowBatchStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setStatement(fetchWindowSetStatement);
+ analysis.setStatement(fetchWindowBatchStatement);
// check for semantic errors
- fetchWindowSetStatement.semanticCheck();
+ fetchWindowBatchStatement.semanticCheck();
// concat path and construct path pattern tree
PathPatternTree patternTree = new PathPatternTree();
- for (PartialPath path : fetchWindowSetStatement.getQueryPaths()) {
+ for (PartialPath path : fetchWindowBatchStatement.getQueryPaths()) {
patternTree.appendFullPath(path);
}
@@ -1237,8 +1237,8 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext>
analysis.setSourceExpressions(sourceExpressions);
// set transform
- if (fetchWindowSetStatement.getFunctionName() != null) {
- String functionName = fetchWindowSetStatement.getFunctionName();
+ if (fetchWindowBatchStatement.getFunctionName() != null) {
+ String functionName = fetchWindowBatchStatement.getFunctionName();
Set<Expression> sourceTransformExpressions =
sourceExpressions.stream()
.map(
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java
index bb6f9d9d64..ee2eb65edc 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java
@@ -153,5 +153,5 @@ public enum StatementType {
DEACTIVATE_TEMPLATE,
- FETCH_WINDOW_SET
+ FETCH_WINDOW_BATCH
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
index d0b5f5167b..3825bb2af2 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
@@ -37,7 +37,7 @@ import org.apache.iotdb.db.mpp.plan.statement.component.ResultColumn;
import org.apache.iotdb.db.mpp.plan.statement.component.SelectComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.WhereCondition;
import org.apache.iotdb.db.mpp.plan.statement.crud.DeleteDataStatement;
-import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowSetStatement;
+import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowBatchStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertMultiTabletsStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowsOfOneDeviceStatement;
@@ -181,7 +181,7 @@ public class StatementGenerator {
public static Statement createStatement(TSFetchWindowBatchReq fetchWindowSetReq)
throws IllegalPathException {
- FetchWindowSetStatement statement = new FetchWindowSetStatement();
+ FetchWindowBatchStatement statement = new FetchWindowBatchStatement();
// set queryPaths
List<PartialPath> queryPaths = new ArrayList<>();
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java
index a212cb6326..9d362fa306 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java
@@ -64,6 +64,7 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.OffsetNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.SlidingWindowAggregationNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TimeJoinNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TransformNode;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.WindowConcatNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.WindowSplitNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.last.LastQueryNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.source.AlignedLastQueryScanNode;
@@ -900,6 +901,21 @@ public class LogicalPlanBuilder {
return this;
}
+ public LogicalPlanBuilder planWindowConcat(
+ GroupByTimeParameter groupByTimeParameter, List<Integer> samplingIndexes) {
+ if (!groupByTimeParameter.hasOverlap()) {
+ return this;
+ }
+
+ this.root =
+ new WindowConcatNode(
+ context.getQueryId().genPlanNodeId(),
+ this.getRoot(),
+ groupByTimeParameter,
+ samplingIndexes);
+ return this;
+ }
+
/** Meta Query* */
public LogicalPlanBuilder planTimeSeriesSchemaSource(
PartialPath pathPattern,
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java
index ef1d9b8502..3d3c02b2e8 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java
@@ -43,7 +43,7 @@ import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
import org.apache.iotdb.db.mpp.plan.statement.component.Ordering;
import org.apache.iotdb.db.mpp.plan.statement.crud.DeleteDataStatement;
-import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowSetStatement;
+import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowBatchStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertMultiTabletsStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowsOfOneDeviceStatement;
@@ -291,16 +291,19 @@ public class LogicalPlanVisitor extends StatementVisitor<PlanNode, MPPQueryConte
}
@Override
- public PlanNode visitFetchWindowSet(
- FetchWindowSetStatement fetchWindowSetStatement, MPPQueryContext context) {
+ public PlanNode visitFetchWindowBatch(
+ FetchWindowBatchStatement fetchWindowBatchStatement, MPPQueryContext context) {
LogicalPlanBuilder planBuilder = new LogicalPlanBuilder(analysis, context);
planBuilder
.planRawDataSource(analysis.getSourceExpressions(), Ordering.ASC, null)
.planTransform(
analysis.getSourceTransformExpressions(), true, ZoneId.systemDefault(), Ordering.ASC)
.planWindowSplit(
- fetchWindowSetStatement.getGroupByTimeParameter(),
- fetchWindowSetStatement.getSamplingIndexes());
+ fetchWindowBatchStatement.getGroupByTimeParameter(),
+ fetchWindowBatchStatement.getSamplingIndexes())
+ .planWindowConcat(
+ fetchWindowBatchStatement.getGroupByTimeParameter(),
+ fetchWindowBatchStatement.getSamplingIndexes());
return planBuilder.getRoot();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/DistributionPlanner.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/DistributionPlanner.java
index 8a6267353b..6307310f17 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/DistributionPlanner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/DistributionPlanner.java
@@ -32,7 +32,7 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.WritePlanNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.ExchangeNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.sink.FragmentSinkNode;
-import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowSetStatement;
+import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowBatchStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
import java.util.List;
@@ -69,7 +69,7 @@ public class DistributionPlanner {
PlanNode rootAfterRewrite = rewriteSource();
PlanNode rootWithExchange = addExchangeNode(rootAfterRewrite);
if (analysis.getStatement() instanceof QueryStatement
- || analysis.getStatement() instanceof FetchWindowSetStatement) {
+ || analysis.getStatement() instanceof FetchWindowBatchStatement) {
analysis
.getRespDatasetHeader()
.setColumnToTsBlockIndexMap(rootWithExchange.getOutputColumnNames());
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SimpleFragmentParallelPlanner.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SimpleFragmentParallelPlanner.java
index 03341cf2be..3b79ad4748 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SimpleFragmentParallelPlanner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SimpleFragmentParallelPlanner.java
@@ -34,7 +34,7 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeUtil;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.ExchangeNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.sink.FragmentSinkNode;
-import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowSetStatement;
+import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowBatchStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
@@ -116,7 +116,7 @@ public class SimpleFragmentParallelPlanner implements IFragmentParallelPlaner {
fragmentInstance.setHostDataNode(selectTargetDataNode(regionReplicaSet));
if (analysis.getStatement() instanceof QueryStatement
- || analysis.getStatement() instanceof FetchWindowSetStatement) {
+ || analysis.getStatement() instanceof FetchWindowBatchStatement) {
fragmentInstance.getFragment().generateTypeProvider(queryContext.getTypeProvider());
}
instanceMap.putIfAbsent(fragment.getId(), fragmentInstance);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanNodeType.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanNodeType.java
index 800459849b..7588c8f4e8 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanNodeType.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanNodeType.java
@@ -64,6 +64,8 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.SlidingWindowAggre
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.SortNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TimeJoinNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TransformNode;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.WindowConcatNode;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.WindowSplitNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.last.LastQueryCollectNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.last.LastQueryMergeNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.last.LastQueryNode;
@@ -151,7 +153,8 @@ public enum PlanNodeType {
DEACTIVATE_TEMPLATE_NODE((short) 61),
INTO((short) 62),
DEVICE_VIEW_INTO((short) 63),
- WINDOW_SPLIT((short) 64);
+ WINDOW_SPLIT((short) 64),
+ WINDOW_CONCAT((short) 65);
public static final int BYTES = Short.BYTES;
@@ -328,6 +331,10 @@ public enum PlanNodeType {
return IntoNode.deserialize(buffer);
case 63:
return DeviceViewIntoNode.deserialize(buffer);
+ case 64:
+ return WindowSplitNode.deserialize(buffer);
+ case 65:
+ return WindowConcatNode.deserialize(buffer);
default:
throw new IllegalArgumentException("Invalid node type: " + nodeType);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java
index 6a064cd90d..7d3fa1dc19 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java
@@ -62,6 +62,7 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.SlidingWindowAggre
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.SortNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TimeJoinNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TransformNode;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.WindowConcatNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.WindowSplitNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.last.LastQueryCollectNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.last.LastQueryMergeNode;
@@ -331,4 +332,8 @@ public abstract class PlanVisitor<R, C> {
public R visitWindowSplit(WindowSplitNode node, C context) {
return visitPlan(node, context);
}
+
+ public R visitWindowConcat(WindowConcatNode node, C context) {
+ return visitPlan(node, context);
+ }
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/WindowConcatNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/WindowConcatNode.java
new file mode 100644
index 0000000000..4cf16d88d0
--- /dev/null
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/WindowConcatNode.java
@@ -0,0 +1,140 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.mpp.plan.planner.plan.node.process;
+
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeType;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanVisitor;
+import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
+import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+public class WindowConcatNode extends SingleChildProcessNode {
+
+ private final GroupByTimeParameter groupByTimeParameter;
+ private final List<Integer> samplingIndexes;
+
+ public WindowConcatNode(
+ PlanNodeId id,
+ PlanNode child,
+ GroupByTimeParameter groupByTimeParameter,
+ List<Integer> samplingIndexes) {
+ super(id, child);
+ this.groupByTimeParameter = groupByTimeParameter;
+ this.samplingIndexes = samplingIndexes;
+ }
+
+ public WindowConcatNode(
+ PlanNodeId id, GroupByTimeParameter groupByTimeParameter, List<Integer> samplingIndexes) {
+ super(id);
+ this.groupByTimeParameter = groupByTimeParameter;
+ this.samplingIndexes = samplingIndexes;
+ }
+
+ public GroupByTimeParameter getGroupByTimeParameter() {
+ return groupByTimeParameter;
+ }
+
+ public List<Integer> getSamplingIndexes() {
+ return samplingIndexes;
+ }
+
+ @Override
+ public PlanNode clone() {
+ return new WindowConcatNode(getPlanNodeId(), groupByTimeParameter, samplingIndexes);
+ }
+
+ @Override
+ public List<String> getOutputColumnNames() {
+ return child.getOutputColumnNames();
+ }
+
+ @Override
+ protected void serializeAttributes(ByteBuffer byteBuffer) {
+ PlanNodeType.WINDOW_CONCAT.serialize(byteBuffer);
+ groupByTimeParameter.serialize(byteBuffer);
+ ReadWriteIOUtils.write(samplingIndexes.size(), byteBuffer);
+ for (Integer index : samplingIndexes) {
+ ReadWriteIOUtils.write(index, byteBuffer);
+ }
+ }
+
+ @Override
+ protected void serializeAttributes(DataOutputStream stream) throws IOException {
+ PlanNodeType.WINDOW_CONCAT.serialize(stream);
+ groupByTimeParameter.serialize(stream);
+ ReadWriteIOUtils.write(samplingIndexes.size(), stream);
+ for (Integer index : samplingIndexes) {
+ ReadWriteIOUtils.write(index, stream);
+ }
+ }
+
+ public static WindowConcatNode deserialize(ByteBuffer byteBuffer) {
+ GroupByTimeParameter groupByTimeParameter = GroupByTimeParameter.deserialize(byteBuffer);
+
+ int listSize = ReadWriteIOUtils.readInt(byteBuffer);
+ List<Integer> samplingIndexes = new ArrayList<>(listSize);
+ while (listSize > 0) {
+ samplingIndexes.add(ReadWriteIOUtils.readInt(byteBuffer));
+ listSize--;
+ }
+
+ PlanNodeId planNodeId = PlanNodeId.deserialize(byteBuffer);
+ return new WindowConcatNode(planNodeId, groupByTimeParameter, samplingIndexes);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ if (!super.equals(o)) {
+ return false;
+ }
+ WindowConcatNode that = (WindowConcatNode) o;
+ return groupByTimeParameter.equals(that.groupByTimeParameter)
+ && samplingIndexes.equals(that.samplingIndexes);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), groupByTimeParameter, samplingIndexes);
+ }
+
+ @Override
+ public String toString() {
+ return String.format("WindowConcatNode-%s", getPlanNodeId());
+ }
+
+ @Override
+ public <R, C> R accept(PlanVisitor<R, C> visitor, C context) {
+ return visitor.visitWindowConcat(this, context);
+ }
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
index be03262f80..7d83e3fc01 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
@@ -20,7 +20,7 @@
package org.apache.iotdb.db.mpp.plan.statement;
import org.apache.iotdb.db.mpp.plan.statement.crud.DeleteDataStatement;
-import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowSetStatement;
+import org.apache.iotdb.db.mpp.plan.statement.crud.FetchWindowBatchStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertMultiTabletsStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowStatement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowsOfOneDeviceStatement;
@@ -208,8 +208,8 @@ public abstract class StatementVisitor<R, C> {
return visitStatement(queryStatement, context);
}
- public R visitFetchWindowSet(FetchWindowSetStatement fetchWindowSetStatement, C context) {
- return visitStatement(fetchWindowSetStatement, context);
+ public R visitFetchWindowBatch(FetchWindowBatchStatement fetchWindowBatchStatement, C context) {
+ return visitStatement(fetchWindowBatchStatement, context);
}
// Insert Statement
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FetchWindowSetStatement.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FetchWindowBatchStatement.java
similarity index 85%
rename from server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FetchWindowSetStatement.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FetchWindowBatchStatement.java
index fa1b815cda..756c5cc86d 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FetchWindowSetStatement.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FetchWindowBatchStatement.java
@@ -20,7 +20,6 @@
package org.apache.iotdb.db.mpp.plan.statement.crud;
import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.mpp.plan.constant.StatementType;
import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
@@ -28,16 +27,16 @@ import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
import java.util.List;
-public class FetchWindowSetStatement extends Statement {
+public class FetchWindowBatchStatement extends Statement {
private List<PartialPath> queryPaths;
private String functionName;
private GroupByTimeParameter groupByTimeParameter;
private List<Integer> samplingIndexes;
- public FetchWindowSetStatement() {
+ public FetchWindowBatchStatement() {
super();
- statementType = StatementType.FETCH_WINDOW_SET;
+ statementType = StatementType.FETCH_WINDOW_BATCH;
}
public List<PartialPath> getQueryPaths() {
@@ -79,12 +78,8 @@ public class FetchWindowSetStatement extends Statement {
@Override
public <R, C> R accept(StatementVisitor<R, C> visitor, C context) {
- return visitor.visitFetchWindowSet(this, context);
+ return visitor.visitFetchWindowBatch(this, context);
}
- public void semanticCheck() {
- if (groupByTimeParameter.hasOverlap()) {
- throw new SemanticException("");
- }
- }
+ public void semanticCheck() {}
}