You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/12/05 02:24:40 UTC
[iotdb] branch rel/1.0 updated: [To rel/1.0] [IOTDB-5114] Redundant planNode after distribution plan in raw data query with align by device
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.0 by this push:
new 235f663310 [To rel/1.0] [IOTDB-5114] Redundant planNode after distribution plan in raw data query with align by device
235f663310 is described below
commit 235f663310eb5747511e6083e759152bb1da66fa
Author: YangCaiyin <yc...@gmail.com>
AuthorDate: Mon Dec 5 10:24:34 2022 +0800
[To rel/1.0] [IOTDB-5114] Redundant planNode after distribution plan in raw data query with align by device
---
.../plan/planner/distribution/SourceRewriter.java | 23 +++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java
index b8f3f8fcb9..8224d931a4 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java
@@ -108,13 +108,8 @@ public class SourceRewriter extends SimplePlanNodeRewriter<DistributionPlanConte
relatedDataRegions.addAll(regionReplicaSets);
}
- DeviceMergeNode deviceMergeNode =
- new DeviceMergeNode(
- context.queryContext.getQueryId().genPlanNodeId(),
- node.getMergeOrderParameter(),
- node.getDevices());
-
// Step 2: Iterate all partition and create DeviceViewNode for each region
+ List<DeviceViewNode> deviceViewNodeList = new ArrayList<>();
for (TRegionReplicaSet regionReplicaSet : relatedDataRegions) {
List<String> devices = new ArrayList<>();
List<PlanNode> children = new ArrayList<>();
@@ -128,7 +123,21 @@ public class SourceRewriter extends SimplePlanNodeRewriter<DistributionPlanConte
for (int i = 0; i < devices.size(); i++) {
regionDeviceViewNode.addChildDeviceNode(devices.get(i), children.get(i));
}
- deviceMergeNode.addChild(regionDeviceViewNode);
+ deviceViewNodeList.add(regionDeviceViewNode);
+ }
+
+ if (deviceViewNodeList.size() == 1) {
+ return deviceViewNodeList.get(0);
+ }
+
+ DeviceMergeNode deviceMergeNode =
+ new DeviceMergeNode(
+ context.queryContext.getQueryId().genPlanNodeId(),
+ node.getMergeOrderParameter(),
+ node.getDevices());
+
+ for (DeviceViewNode deviceViewNode : deviceViewNodeList) {
+ deviceMergeNode.addChild(deviceViewNode);
}
return deviceMergeNode;