You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2013/12/28 07:36:46 UTC
[49/50] [abbrv] git commit: DAG-execplan
DAG-execplan
Project: http://git-wip-us.apache.org/repos/asf/incubator-tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tajo/commit/8f3b8718
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tajo/tree/8f3b8718
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tajo/diff/8f3b8718
Branch: refs/heads/DAG-execplan
Commit: 8f3b8718c65c5a0b07fd54e496347efae3196134
Parents: ded3409
Author: Jihoon Son <ji...@apache.org>
Authored: Sat Dec 28 01:51:48 2013 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Sat Dec 28 01:51:48 2013 +0900
----------------------------------------------------------------------
.../org/apache/tajo/engine/planner/PhysicalPlannerImpl.java | 1 +
.../org/apache/tajo/engine/planner/global/GlobalPlanner.java | 7 +++++--
.../java/org/apache/tajo/master/querymaster/SubQuery.java | 2 ++
.../src/main/java/org/apache/tajo/worker/Task.java | 1 +
4 files changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/8f3b8718/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
index d1f34c8..b0b9025 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
@@ -143,6 +143,7 @@ public class PhysicalPlannerImpl implements PhysicalPlanner {
LogicalNode topNode = plan.getFirstPlanGroup().toLinkedLogicalNode();
storeTableNode.setChild(topNode);
plan.setPlan(storeTableNode);
+ plan.build();
channel.updateSrcPID(storeTableNode.getPID());
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/8f3b8718/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
index 2dbd1ed..0cceb80 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
@@ -111,11 +111,13 @@ public class GlobalPlanner {
ExecutionBlock childBlock = leftTable ? leftBlock : rightBlock;
DataChannel channel = new DataChannel(childBlock, parent, HASH_PARTITION, 32);
+ channel.setSchema(childBlock.getPlan().getFirstPlanGroup().getRootNode().getOutSchema());
channel.setStoreType(storeType);
if (join.getJoinType() != JoinType.CROSS) {
// Each block should have the only one output schema
Column [][] joinColumns = PlannerUtil.joinJoinKeyForEachTable(join.getJoinQual(),
- leftBlock.getPlan().getOutSchema(0), rightBlock.getPlan().getOutSchema(0));
+ leftBlock.getPlan().getFirstPlanGroup().getRootNode().getOutSchema(),
+ rightBlock.getPlan().getFirstPlanGroup().getRootNode().getOutSchema());
if (leftTable) {
channel.setPartitionKey(joinColumns[0]);
} else {
@@ -350,7 +352,7 @@ public class GlobalPlanner {
// if result table is not a partitioned table, directly store it
if(partitionDesc == null) {
currentNode.setChild(childBlock.getPlan().getFirstPlanGroup().toLinkedLogicalNode());
- currentNode.setInSchema(childBlock.getPlan().getOutSchema(0));
+ currentNode.setInSchema(childBlock.getPlan().getFirstPlanGroup().getRootNode().getOutSchema());
childBlock.setPlan(currentNode);
return childBlock;
}
@@ -563,6 +565,7 @@ public class GlobalPlanner {
for (ExecutionBlock childBlocks : queryBlockBlocks) {
DataChannel channel = new DataChannel(childBlocks, execBlock, NONE_PARTITION, 1);
+ channel.setSchema(childBlocks.getPlan().getFirstPlanGroup().getRootNode().getOutSchema());
channel.setStoreType(storeType);
if (childBlocks.getPlan().hasPlanGroup()) {
DataChannel.linkChannelAndPlanGroups(childBlocks.getPlan().getFirstPlanGroup(),
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/8f3b8718/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
index 147c6cf..e2cbd7b 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
@@ -595,10 +595,12 @@ public class SubQuery implements EventHandler<SubQueryEvent> {
// for inner
ExecutionBlock outer = childs.get(0);
+ outer.getPlan().build();
long outerVolume = getInputVolume(subQuery.masterPlan, subQuery.context, outer);
// for inner
ExecutionBlock inner = childs.get(1);
+ inner.getPlan().build();
long innerVolume = getInputVolume(subQuery.masterPlan, subQuery.context, inner);
LOG.info("Outer volume: " + Math.ceil((double) outerVolume / 1048576) + "MB, "
+ "Inner volume: " + Math.ceil((double) innerVolume / 1048576) + "MB");
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/8f3b8718/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
index 2b25bbb..de3edf3 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
@@ -159,6 +159,7 @@ public class Task {
this.context.setEnforcer(request.getEnforcer());
plan = CoreGsonHelper.fromJson(request.getSerializedData(), ExecutionPlan.class);
+ plan.build();
// TODO: add meta information to regenerate a table desc
InputContext srcContext = plan.getInputContext();