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/05/02 06:11:03 UTC

[iotdb] branch master updated: move columnToTsBlockIndexMap from LogicalPlanner to DistributionPlanner (#5733)

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 <36...@users.noreply.github.com>
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);