This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/FixGroupByMonth in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 1728b0c233ea38fc8153173e92da64a9fa33ecf1 Author: liuminghui233 <[email protected]> AuthorDate: Mon Nov 21 15:19:08 2022 +0800 copy timeFilter when initQueryDataSource & initOperator --- .../iotdb/db/mpp/execution/driver/DataDriver.java | 2 +- .../db/mpp/plan/planner/OperatorTreeGenerator.java | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java index ba6909e4fa..4aec571d48 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java @@ -136,7 +136,7 @@ public class DataDriver extends Driver { pathList, selectedDeviceIdSet.size() == 1 ? selectedDeviceIdSet.iterator().next() : null, driverContext.getFragmentInstanceContext(), - context.getTimeFilter()); + context.getTimeFilter().copy()); // used files should be added before mergeLock is unlocked, or they may be deleted by // running merge diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/OperatorTreeGenerator.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/OperatorTreeGenerator.java index c7964ae828..484a342715 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/OperatorTreeGenerator.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/OperatorTreeGenerator.java @@ -177,6 +177,7 @@ import org.apache.iotdb.db.utils.datastructure.TimeSelector; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.read.TimeValuePair; import org.apache.iotdb.tsfile.read.common.block.TsBlockBuilder; +import org.apache.iotdb.tsfile.read.filter.basic.Filter; import org.apache.iotdb.tsfile.read.filter.operator.Gt; import org.apache.iotdb.tsfile.read.filter.operator.GtEq; import org.apache.iotdb.tsfile.utils.Binary; @@ -243,6 +244,8 @@ public class OperatorTreeGenerator extends PlanVisitor<Operator, LocalExecutionP node.getPlanNodeId(), SeriesScanOperator.class.getSimpleName()); + Filter timeFilter = node.getTimeFilter(); + Filter valueFilter = node.getValueFilter(); SeriesScanOperator seriesScanOperator = new SeriesScanOperator( node.getPlanNodeId(), @@ -250,8 +253,8 @@ public class OperatorTreeGenerator extends PlanVisitor<Operator, LocalExecutionP context.getAllSensors(seriesPath.getDevice(), seriesPath.getMeasurement()), seriesPath.getSeriesType(), operatorContext, - node.getTimeFilter(), - node.getValueFilter(), + timeFilter != null ? timeFilter.copy() : null, + valueFilter != null ? valueFilter.copy() : null, ascending); context.addSourceOperator(seriesScanOperator); @@ -273,13 +276,15 @@ public class OperatorTreeGenerator extends PlanVisitor<Operator, LocalExecutionP node.getPlanNodeId(), AlignedSeriesScanOperator.class.getSimpleName()); + Filter timeFilter = node.getTimeFilter(); + Filter valueFilter = node.getValueFilter(); AlignedSeriesScanOperator seriesScanOperator = new AlignedSeriesScanOperator( node.getPlanNodeId(), seriesPath, operatorContext, - node.getTimeFilter(), - node.getValueFilter(), + timeFilter != null ? timeFilter.copy() : null, + valueFilter != null ? valueFilter.copy() : null, ascending); context.addSourceOperator(seriesScanOperator); @@ -320,6 +325,7 @@ public class OperatorTreeGenerator extends PlanVisitor<Operator, LocalExecutionP AggregationUtil.calculateMaxAggregationResultSize( node.getAggregationDescriptorList(), timeRangeIterator, context.getTypeProvider()); + Filter timeFilter = node.getTimeFilter(); SeriesAggregationScanOperator aggregateScanOperator = new SeriesAggregationScanOperator( node.getPlanNodeId(), @@ -328,7 +334,7 @@ public class OperatorTreeGenerator extends PlanVisitor<Operator, LocalExecutionP operatorContext, aggregators, timeRangeIterator, - node.getTimeFilter(), + timeFilter != null ? timeFilter.copy() : null, ascending, node.getGroupByTimeParameter(), maxReturnSize); @@ -381,6 +387,7 @@ public class OperatorTreeGenerator extends PlanVisitor<Operator, LocalExecutionP AggregationUtil.calculateMaxAggregationResultSize( node.getAggregationDescriptorList(), timeRangeIterator, context.getTypeProvider()); + Filter timeFilter = node.getTimeFilter(); AlignedSeriesAggregationScanOperator seriesAggregationScanOperator = new AlignedSeriesAggregationScanOperator( node.getPlanNodeId(), @@ -388,7 +395,7 @@ public class OperatorTreeGenerator extends PlanVisitor<Operator, LocalExecutionP operatorContext, aggregators, timeRangeIterator, - node.getTimeFilter(), + timeFilter != null ? timeFilter.copy() : null, ascending, groupByTimeParameter, maxReturnSize);
