This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new f6abf3d1da move columnToTsBlockIndexMap from LogicalPlanner to
DistributionPlanner (#5733)
f6abf3d1da is described below
commit f6abf3d1dae3aee00336606afc3d5abc30dbc3e4
Author: liuminghui233 <[email protected]>
AuthorDate: Mon May 2 14:10:57 2022 +0800
move columnToTsBlockIndexMap from LogicalPlanner to DistributionPlanner
(#5733)
---
.../apache/iotdb/db/mpp/sql/planner/DistributionPlanner.java | 10 +++++++++-
.../org/apache/iotdb/db/mpp/sql/planner/LogicalPlanner.java | 2 --
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/DistributionPlanner.java
b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/DistributionPlanner.java
index 0e15212224..e262e02dff 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/DistributionPlanner.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/DistributionPlanner.java
@@ -43,6 +43,7 @@ import
org.apache.iotdb.db.mpp.sql.planner.plan.node.process.TimeJoinNode;
import org.apache.iotdb.db.mpp.sql.planner.plan.node.sink.FragmentSinkNode;
import
org.apache.iotdb.db.mpp.sql.planner.plan.node.source.SeriesAggregationScanNode;
import org.apache.iotdb.db.mpp.sql.planner.plan.node.source.SeriesScanNode;
+import org.apache.iotdb.db.mpp.sql.statement.crud.QueryStatement;
import java.util.ArrayList;
import java.util.Collections;
@@ -88,6 +89,11 @@ public class DistributionPlanner {
public DistributedQueryPlan planFragments() {
PlanNode rootAfterRewrite = rewriteSource();
PlanNode rootWithExchange = addExchangeNode(rootAfterRewrite);
+ if (analysis.getStatement() instanceof QueryStatement) {
+ analysis
+ .getRespDatasetHeader()
+ .setColumnToTsBlockIndexMap(rootWithExchange.getOutputColumnNames());
+ }
SubPlan subPlan = splitFragment(rootWithExchange);
List<FragmentInstance> fragmentInstances = planFragmentInstances(subPlan);
// Only execute this step for READ operation
@@ -350,7 +356,8 @@ public class DistributionPlanner {
context.getNodeDistribution(child.getPlanNodeId()).region)) {
ExchangeNode exchangeNode =
new
ExchangeNode(context.queryContext.getQueryId().genPlanNodeId());
- exchangeNode.addChild(child);
+ exchangeNode.setChild(child);
+
exchangeNode.setOutputColumnNames(child.getOutputColumnNames());
newNode.addChild(exchangeNode);
} else {
newNode.addChild(child);
@@ -425,6 +432,7 @@ public class DistributionPlanner {
ExchangeNode exchangeNode =
new
ExchangeNode(context.queryContext.getQueryId().genPlanNodeId());
exchangeNode.setChild(child);
+ exchangeNode.setOutputColumnNames(child.getOutputColumnNames());
newNode.addChild(exchangeNode);
} else {
newNode.addChild(child);
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/LogicalPlanner.java
b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/LogicalPlanner.java
index e99fdb6eee..6cebe96180 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/LogicalPlanner.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/LogicalPlanner.java
@@ -78,8 +78,6 @@ public class LogicalPlanner {
for (PlanOptimizer optimizer : optimizers) {
rootNode = optimizer.optimize(rootNode, context);
}
-
-
analysis.getRespDatasetHeader().setColumnToTsBlockIndexMap(rootNode.getOutputColumnNames());
}
return new LogicalQueryPlan(context, rootNode);