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 <[email protected]> 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() {} }
