TAJO-1352: Improve the join order algorithm to consider missed cases of associative join operators. (jihoon)
Closes #593 Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/bedce3aa Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/bedce3aa Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/bedce3aa Branch: refs/heads/master Commit: bedce3aa0ef3a3d337e7c054c9db0e3af2e15cf4 Parents: a1a9d62 Author: Jihoon Son <[email protected]> Authored: Mon Jul 20 10:03:39 2015 +0900 Committer: Jihoon Son <[email protected]> Committed: Mon Jul 20 10:03:39 2015 +0900 ---------------------------------------------------------------------- CHANGES | 3 + .../org/apache/tajo/catalog/SchemaUtil.java | 60 +++ .../main/java/org/apache/tajo/util/Pair.java | 5 + tajo-core/pom.xml | 1 - .../apache/tajo/master/exec/DDLExecutor.java | 5 +- .../exec/ExplainPlanPreprocessorForTest.java | 87 +--- .../tajo/engine/query/TestInnerJoinQuery.java | 4 +- .../tajo/engine/query/TestOuterJoinQuery.java | 4 - .../tajo/querymaster/TestTaskStatusUpdate.java | 10 +- .../testBroadcastSubquery2.sql | 2 +- .../TestOuterJoinQuery/testLeftOuterJoin2.sql | 2 +- .../testBroadcastTwoPartJoin.Hash.plan | 16 +- ...stBroadcastTwoPartJoin.Hash_NoBroadcast.plan | 38 +- .../testBroadcastTwoPartJoin.Sort.plan | 16 +- ...stBroadcastTwoPartJoin.Sort_NoBroadcast.plan | 38 +- .../testComplexJoinCondition1.Hash.plan | 16 +- ...tComplexJoinCondition1.Hash_NoBroadcast.plan | 38 +- .../testComplexJoinCondition1.Sort.plan | 16 +- ...tComplexJoinCondition1.Sort_NoBroadcast.plan | 38 +- .../testComplexJoinCondition2.Hash.plan | 16 +- ...tComplexJoinCondition2.Hash_NoBroadcast.plan | 38 +- .../testComplexJoinCondition2.Sort.plan | 16 +- ...tComplexJoinCondition2.Sort_NoBroadcast.plan | 38 +- .../testComplexJoinCondition3.Hash.plan | 16 +- ...tComplexJoinCondition3.Hash_NoBroadcast.plan | 38 +- .../testComplexJoinCondition3.Sort.plan | 16 +- ...tComplexJoinCondition3.Sort_NoBroadcast.plan | 38 +- .../testComplexJoinCondition4.Hash.plan | 16 +- ...tComplexJoinCondition4.Hash_NoBroadcast.plan | 38 +- .../testComplexJoinCondition4.Sort.plan | 16 +- ...tComplexJoinCondition4.Sort_NoBroadcast.plan | 38 +- .../testCrossJoin.2.Hash.plan | 16 +- .../testCrossJoin.2.Hash_NoBroadcast.plan | 30 +- .../testCrossJoin.2.Sort.plan | 16 +- .../testCrossJoin.2.Sort_NoBroadcast.plan | 30 +- .../TestInnerJoinQuery/testCrossJoin.3.result | 32 +- .../TestInnerJoinQuery/testCrossJoin.5.result | 36 +- .../testCrossJoinAndCaseWhen.Hash.plan | 16 +- ...stCrossJoinAndCaseWhen.Hash_NoBroadcast.plan | 38 +- .../testCrossJoinAndCaseWhen.Sort.plan | 16 +- ...stCrossJoinAndCaseWhen.Sort_NoBroadcast.plan | 38 +- .../testCrossJoinWithAsterisk1.Hash.plan | 16 +- ...CrossJoinWithAsterisk1.Hash_NoBroadcast.plan | 30 +- .../testCrossJoinWithAsterisk1.Sort.plan | 16 +- ...CrossJoinWithAsterisk1.Sort_NoBroadcast.plan | 30 +- .../testCrossJoinWithEmptyTable1.Hash.plan | 16 +- ...ossJoinWithEmptyTable1.Hash_NoBroadcast.plan | 38 +- .../testCrossJoinWithEmptyTable1.Sort.plan | 16 +- ...ossJoinWithEmptyTable1.Sort_NoBroadcast.plan | 38 +- ...sJoinWithThetaJoinConditionInWhere.Hash.plan | 16 +- ...taJoinConditionInWhere.Hash_NoBroadcast.plan | 30 +- ...sJoinWithThetaJoinConditionInWhere.Sort.plan | 16 +- ...taJoinConditionInWhere.Sort_NoBroadcast.plan | 30 +- .../testInnerJoinAndCaseWhen.Hash.plan | 16 +- ...stInnerJoinAndCaseWhen.Hash_NoBroadcast.plan | 38 +- .../testInnerJoinAndCaseWhen.Sort.plan | 16 +- ...stInnerJoinAndCaseWhen.Sort_NoBroadcast.plan | 38 +- .../testInnerJoinWithEmptyTable.Hash.plan | 16 +- ...nnerJoinWithEmptyTable.Hash_NoBroadcast.plan | 38 +- .../testInnerJoinWithEmptyTable.Sort.plan | 16 +- ...nnerJoinWithEmptyTable.Sort_NoBroadcast.plan | 38 +- .../testJoinAsterisk.Hash.plan | 16 +- .../testJoinAsterisk.Hash_NoBroadcast.plan | 38 +- .../testJoinAsterisk.Sort.plan | 16 +- .../testJoinAsterisk.Sort_NoBroadcast.plan | 38 +- .../testJoinCoReferredEvals1.Hash.plan | 16 +- ...stJoinCoReferredEvals1.Hash_NoBroadcast.plan | 38 +- .../testJoinCoReferredEvals1.Sort.plan | 16 +- ...stJoinCoReferredEvals1.Sort_NoBroadcast.plan | 38 +- .../testJoinOnMultipleDatabases.Hash.plan | 110 ++-- ...oinOnMultipleDatabases.Hash_NoBroadcast.plan | 182 +++---- .../testJoinOnMultipleDatabases.Sort.plan | 110 ++-- ...oinOnMultipleDatabases.Sort_NoBroadcast.plan | 182 +++---- .../testJoinWithMultipleJoinQual1.Hash.plan | 16 +- ...nWithMultipleJoinQual1.Hash_NoBroadcast.plan | 38 +- .../testJoinWithMultipleJoinQual1.Sort.plan | 16 +- ...nWithMultipleJoinQual1.Sort_NoBroadcast.plan | 38 +- .../TestInnerJoinQuery/testTPCHQ2Join.Hash.plan | 16 +- .../testTPCHQ2Join.Hash_NoBroadcast.plan | 38 +- .../TestInnerJoinQuery/testTPCHQ2Join.Sort.plan | 16 +- .../testTPCHQ2Join.Sort_NoBroadcast.plan | 38 +- .../testWhereClauseJoin1.Hash.plan | 16 +- .../testWhereClauseJoin1.Hash_NoBroadcast.plan | 38 +- .../testWhereClauseJoin1.Sort.plan | 16 +- .../testWhereClauseJoin1.Sort_NoBroadcast.plan | 38 +- .../testWhereClauseJoin2.Hash.plan | 16 +- .../testWhereClauseJoin2.Hash_NoBroadcast.plan | 38 +- .../testWhereClauseJoin2.Sort.plan | 16 +- .../testWhereClauseJoin2.Sort_NoBroadcast.plan | 38 +- .../testWhereClauseJoin3.Hash.plan | 16 +- .../testWhereClauseJoin3.Hash_NoBroadcast.plan | 38 +- .../testWhereClauseJoin3.Sort.plan | 16 +- .../testWhereClauseJoin3.Sort_NoBroadcast.plan | 38 +- .../testWhereClauseJoin5.Hash.plan | 18 +- .../testWhereClauseJoin5.Hash_NoBroadcast.plan | 38 +- .../testWhereClauseJoin5.Sort.plan | 18 +- .../testWhereClauseJoin5.Sort_NoBroadcast.plan | 38 +- .../testWhereClauseJoin6.Hash.plan | 16 +- .../testWhereClauseJoin6.Hash_NoBroadcast.plan | 38 +- .../testWhereClauseJoin6.Sort.plan | 16 +- .../testWhereClauseJoin6.Sort_NoBroadcast.plan | 38 +- .../testBroadcastSubquery.Hash.plan | 84 +-- .../testBroadcastSubquery.Hash_NoBroadcast.plan | 118 ++--- .../testBroadcastSubquery.Sort.plan | 84 +-- .../testBroadcastSubquery.Sort_NoBroadcast.plan | 118 ++--- .../testBroadcastSubquery2.Hash.plan | 158 +++--- ...testBroadcastSubquery2.Hash_NoBroadcast.plan | 276 +++++----- .../testBroadcastSubquery2.Sort.plan | 158 +++--- ...testBroadcastSubquery2.Sort_NoBroadcast.plan | 276 +++++----- .../testJoinWithMultipleJoinQual3.Hash.plan | 58 +-- ...nWithMultipleJoinQual3.Hash_NoBroadcast.plan | 134 ++--- .../testJoinWithMultipleJoinQual3.Sort.plan | 58 +-- ...nWithMultipleJoinQual3.Sort_NoBroadcast.plan | 134 ++--- .../testJoinWithMultipleJoinQual4.Hash.plan | 58 +-- ...nWithMultipleJoinQual4.Hash_NoBroadcast.plan | 134 ++--- .../testJoinWithMultipleJoinQual4.Sort.plan | 58 +-- ...nWithMultipleJoinQual4.Sort_NoBroadcast.plan | 134 ++--- .../TestJoinQuery/testWhereClauseJoin6.result | 5 + .../testComplexJoinsWithCaseWhen.Hash.plan | 16 +- ...mplexJoinsWithCaseWhen.Hash_NoBroadcast.plan | 38 +- .../testComplexJoinsWithCaseWhen.Sort.plan | 16 +- ...mplexJoinsWithCaseWhen.Sort_NoBroadcast.plan | 38 +- .../testInnerAndOuterWithEmpty.1.Hash.plan | 16 +- ...nerAndOuterWithEmpty.1.Hash_NoBroadcast.plan | 38 +- .../testInnerAndOuterWithEmpty.1.Sort.plan | 16 +- ...nerAndOuterWithEmpty.1.Sort_NoBroadcast.plan | 38 +- .../testFullOuterJoin1.Hash.plan | 38 +- .../testFullOuterJoin1.Hash_NoBroadcast.plan | 38 +- .../testFullOuterJoin1.Sort.plan | 38 +- .../testFullOuterJoin1.Sort_NoBroadcast.plan | 38 +- ...lOuterJoinPredicationCaseByCase1.1.Hash.plan | 72 +-- ...edicationCaseByCase1.1.Hash_NoBroadcast.plan | 72 +-- ...lOuterJoinPredicationCaseByCase1.1.Sort.plan | 72 +-- ...edicationCaseByCase1.1.Sort_NoBroadcast.plan | 72 +-- .../testFullOuterJoinWithEmptyTable1.Hash.plan | 38 +- ...terJoinWithEmptyTable1.Hash_NoBroadcast.plan | 38 +- .../testFullOuterJoinWithEmptyTable1.Sort.plan | 38 +- ...terJoinWithEmptyTable1.Sort_NoBroadcast.plan | 38 +- .../testLeftOuterJoin3.Hash.plan | 109 ++-- .../testLeftOuterJoin3.Hash_NoBroadcast.plan | 118 ++--- .../testLeftOuterJoin3.Sort.plan | 109 ++-- .../testLeftOuterJoin3.Sort_NoBroadcast.plan | 118 ++--- ...tOuterJoinPredicationCaseByCase2.1.Hash.plan | 103 ++-- ...edicationCaseByCase2.1.Hash_NoBroadcast.plan | 114 ++-- ...tOuterJoinPredicationCaseByCase2.1.Sort.plan | 103 ++-- ...edicationCaseByCase2.1.Sort_NoBroadcast.plan | 114 ++-- .../testOuterJoinAndCaseWhen1.Hash.plan | 109 ++-- ...tOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan | 118 ++--- .../testOuterJoinAndCaseWhen1.Sort.plan | 109 ++-- ...tOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan | 118 ++--- ...terJoinWithEmptyIntermediateData.1.Hash.plan | 56 +- ...mptyIntermediateData.1.Hash_NoBroadcast.plan | 56 +- ...terJoinWithEmptyIntermediateData.1.Sort.plan | 56 +- ...mptyIntermediateData.1.Sort_NoBroadcast.plan | 56 +- .../testExplainSelectPhysical.2.result | 32 +- .../results/TestTPCH/testQ2FourJoins.plan | 38 +- .../resources/results/TestTPCH/testTPCHQ5.plan | 142 ++--- .../results/TestUnionQuery/testUnion12.result | 3 +- .../results/TestUnionQuery/testUnion13.result | 3 +- .../TestUnionQuery/testUnionAll12.result | 3 +- .../TestUnionQuery/testUnionAll13.result | 3 +- tajo-core/src/test/tpch/part.tbl | 7 +- .../org/apache/tajo/plan/LogicalOptimizer.java | 270 ++++++++-- .../org/apache/tajo/plan/LogicalPlanner.java | 2 +- .../GreedyHeuristicJoinOrderAlgorithm.java | 518 +++++++++++-------- .../apache/tajo/plan/joinorder/JoinEdge.java | 70 +-- .../apache/tajo/plan/joinorder/JoinGraph.java | 150 +----- .../tajo/plan/joinorder/JoinGraphContext.java | 137 +++++ .../tajo/plan/joinorder/JoinOrderAlgorithm.java | 14 +- .../tajo/plan/joinorder/JoinOrderingUtil.java | 313 +++++++++++ .../apache/tajo/plan/joinorder/JoinVertex.java | 32 ++ .../plan/joinorder/JoinedRelationsVertex.java | 125 +++++ .../tajo/plan/joinorder/RelationVertex.java | 76 +++ .../org/apache/tajo/plan/logical/JoinNode.java | 37 +- .../org/apache/tajo/plan/logical/JoinSpec.java | 132 +++++ .../org/apache/tajo/plan/logical/ScanNode.java | 1 + .../plan/rewrite/rules/FilterPushDownRule.java | 2 +- .../org/apache/tajo/plan/util/PlannerUtil.java | 9 +- .../plan/visitor/BasicLogicalPlanVisitor.java | 2 + 179 files changed, 5387 insertions(+), 4212 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 9d3fbe2..890aecf 100644 --- a/CHANGES +++ b/CHANGES @@ -29,6 +29,9 @@ Release 0.11.0 - unreleased IMPROVEMENT + TAJO-1352: Improve the join order algorithm to consider missed cases of + associative join operators. (jihoon) + TAJO-1677: Remove unnecessary messages for the Travis CI build. (jaehwa) TAJO-1672: Removing rest api to create table http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java index c6b2f69..44973db 100644 --- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java +++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java @@ -161,4 +161,64 @@ public class SchemaUtil { DDLBuilder.buildSchema(sb, schema); return sb.toString(); } + + /** + * Calculate the row size from the given schema. + * + * @param schema input schema + * @return estimated row size in bytes + */ + public static int estimateRowByteSizeWithSchema(Schema schema) { + int size = 0; + for (Column column : schema.fields) { + size += getColByteSize(column); + } + return size; + } + + /** + * Return the size of the given column. For the variable-length columns, it returns a prefixed value. + * + * @param col input column + * @return column length in bytes + */ + public static int getColByteSize(Column col) { + if (col.getDataType().getLength() > 0) { + return col.getDataType().getLength(); + } + switch (col.getDataType().getType()) { + case BOOLEAN: + return 1; + case CHAR: + return 1; + case BIT: + return 1; + case INT2: + return 2; + case INT4: + return 4; + case INT8: + return 8; + case FLOAT4: + return 4; + case FLOAT8: + return 8; + case INET4: + return 4; + case INET6: + return 32; + case TEXT: + return 256; + case BLOB: + return 256; + case DATE: + return 4; + case TIME: + return 8; + case TIMESTAMP: + return 8; + default: + return 0; + } + } } http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-common/src/main/java/org/apache/tajo/util/Pair.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/util/Pair.java b/tajo-common/src/main/java/org/apache/tajo/util/Pair.java index e8852df..b78e5cf 100644 --- a/tajo-common/src/main/java/org/apache/tajo/util/Pair.java +++ b/tajo-common/src/main/java/org/apache/tajo/util/Pair.java @@ -29,6 +29,11 @@ public class Pair<T1, T2> { this.second = second; } + public void set(T1 first, T2 second) { + this.first = first; + this.second = second; + } + public T1 getFirst() { return first; } http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/pom.xml ---------------------------------------------------------------------- diff --git a/tajo-core/pom.xml b/tajo-core/pom.xml index 4b3936e..33e37b6 100644 --- a/tajo-core/pom.xml +++ b/tajo-core/pom.xml @@ -78,7 +78,6 @@ <exclude>src/test/resources/dataset/**</exclude> <exclude>src/test/resources/queries/**</exclude> <exclude>src/test/resources/results/**</exclude> - <exclude>src/test/resources/results/**</exclude> <exclude>src/main/resources/META-INF/services/*</exclude> <exclude>src/main/resources/webapps/static/js/*</exclude> </excludes> http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java index af8d796..b9814eb 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java @@ -39,9 +39,9 @@ import org.apache.tajo.master.TajoMaster; import org.apache.tajo.plan.LogicalPlan; import org.apache.tajo.plan.logical.*; import org.apache.tajo.plan.util.PlannerUtil; -import org.apache.tajo.storage.TablespaceManager; -import org.apache.tajo.storage.Tablespace; import org.apache.tajo.storage.StorageUtil; +import org.apache.tajo.storage.Tablespace; +import org.apache.tajo.storage.TablespaceManager; import org.apache.tajo.util.Pair; import java.io.IOException; @@ -288,7 +288,6 @@ public class DDLExecutor { * @param purge Remove all data if purge is true. */ public boolean dropTable(QueryContext queryContext, String tableName, boolean ifExists, boolean purge) { - CatalogService catalog = context.getCatalog(); String databaseName; String simpleTableName; http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java index b8574fe..bba5c0b 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java @@ -27,11 +27,11 @@ import org.apache.tajo.plan.Target; import org.apache.tajo.plan.expr.AlgebraicUtil; import org.apache.tajo.plan.expr.EvalNode; import org.apache.tajo.plan.logical.*; -import org.apache.tajo.plan.util.PlannerUtil; import org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor; -import org.apache.tajo.util.TUtil; -import java.util.*; +import java.util.Arrays; +import java.util.Comparator; +import java.util.Stack; /** * Tajo's logical planner can generate different shapes of logical plans for the same query, @@ -41,26 +41,11 @@ import java.util.*; public class ExplainPlanPreprocessorForTest { private static final PlanShapeFixerContext shapeFixerContext = new PlanShapeFixerContext(); private static final PlanShapeFixer shapeFixer = new PlanShapeFixer(); - private static final PidCollectorContext collectorContext = new PidCollectorContext(); - private static final JoinPidCollector joinPidCollector = new JoinPidCollector(); - private static final PidReseterContext resetContext = new PidReseterContext(); - private static final JoinPidReseter joinPidReseter = new JoinPidReseter(); public void prepareTest(LogicalPlan plan) throws PlanningException { // Plan shape fixer shapeFixerContext.reset(); shapeFixer.visit(shapeFixerContext, plan, plan.getRootBlock()); - - /* - * During join order optimization, new join nodes are created based on the chosen join order. - * So, they have different pids for each query execution. - * JoinPidCollector and JoinPidReseter reset the pids of join nodes. - */ - collectorContext.reset(); - joinPidCollector.visit(collectorContext, plan, plan.getRootBlock()); - - resetContext.reset(collectorContext.joinPids); - joinPidReseter.visit(resetContext, plan, plan.getRootBlock()); } private static class PlanShapeFixerContext { @@ -150,18 +135,6 @@ public class ExplainPlanPreprocessorForTest { int rightChildNum = context.childNumbers.pop(); int leftChildNum = context.childNumbers.pop(); - if (PlannerUtil.isCommutativeJoin(node.getJoinType())) { - - if (leftChildNum < rightChildNum) { - swapChildren(node); - } else if (leftChildNum == rightChildNum) { - if (node.getLeftChild().getOutSchema().toString().compareTo(node.getRightChild().getOutSchema().toString()) < - 0) { - swapChildren(node); - } - } - } - if (node.hasTargets()) { node.setTargets(sortTargets(node.getTargets())); } @@ -200,12 +173,6 @@ public class ExplainPlanPreprocessorForTest { Arrays.sort(targets, targetComparator); return targets; } - - private static void swapChildren(JoinNode node) { - LogicalNode tmpChild = node.getLeftChild(); - node.setLeftChild(node.getRightChild()); - node.setRightChild(tmpChild); - } } public static class ColumnComparator implements Comparator<Column> { @@ -232,52 +199,4 @@ public class ExplainPlanPreprocessorForTest { } } - private static class PidCollectorContext { - List<Integer> joinPids = TUtil.newList(); - public void reset() { - joinPids.clear(); - } - } - - /** - * {@link JoinPidCollector} collects the pids of all join - * nodes. - */ - private static class JoinPidCollector extends BasicLogicalPlanVisitor<PidCollectorContext, LogicalNode> { - - @Override - public LogicalNode visitJoin(PidCollectorContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, - JoinNode node, Stack<LogicalNode> stack) throws PlanningException { - context.joinPids.add(node.getPID()); - super.visitJoin(context, plan, block, node, stack); - - return null; - } - } - - private static class PidReseterContext { - List<Integer> joinPids; - - public void reset(List<Integer> joinPids) { - this.joinPids = joinPids; - Collections.sort(this.joinPids); - } - } - - /** - * {@link JoinPidReseter} resets pids of join nodes with the pids collected by {@link JoinPidCollector} in ascending - * order while traversing the query plan. - */ - private static class JoinPidReseter extends BasicLogicalPlanVisitor<PidReseterContext, LogicalNode> { - - @Override - public LogicalNode visitJoin(PidReseterContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, - JoinNode node, Stack<LogicalNode> stack) throws PlanningException { - super.visitJoin(context, plan, block, node, stack); - node.setPID(context.joinPids.remove(0)); - - return null; - } - } - } http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java index 6eedb42..a0b5d9a 100644 --- a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java +++ b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java @@ -50,7 +50,7 @@ public class TestInnerJoinQuery extends TestJoinQuery { } @Test - @Option(withExplain = true, withExplainGlobal = true, parameterized = true) + @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true) @SimpleTest(queries = { @QuerySpec("select n_name, r_name, n_regionkey, r_regionkey from nation, region order by n_name, r_name"), // testCrossJoinWithAsterisk @@ -64,7 +64,7 @@ public class TestInnerJoinQuery extends TestJoinQuery { } @Test - @Option(withExplain = true, withExplainGlobal = true, parameterized = true) + @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true) @SimpleTest() public final void testCrossJoinWithThetaJoinConditionInWhere() throws Exception { runSimpleTests(); http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java index 9d0e0bc..53dce3c 100644 --- a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java +++ b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java @@ -348,7 +348,6 @@ public class TestOuterJoinQuery extends TestJoinQuery { runSimpleTests(); } - // TODO: this test is disabled due to a bug in broadcast join. It will be enabled after TAJO-1553 @Test @Option(withExplain = true, withExplainGlobal = true, parameterized = true) @SimpleTest(queries = { @@ -363,7 +362,6 @@ public class TestOuterJoinQuery extends TestJoinQuery { runSimpleTests(); } - // TODO: this test is disabled due to a bug in broadcast join. It will be enabled after TAJO-1553 @Test @Option(withExplain = true, withExplainGlobal = true, parameterized = true) @SimpleTest(queries = { @@ -382,7 +380,6 @@ public class TestOuterJoinQuery extends TestJoinQuery { runSimpleTests(); } - // TODO: this test is disabled due to a bug in broadcast join. It will be enabled after TAJO-1553 @Test @Option(withExplain = true, withExplainGlobal = true, parameterized = true) @SimpleTest(queries = { @@ -397,7 +394,6 @@ public class TestOuterJoinQuery extends TestJoinQuery { runSimpleTests(); } - // TODO: this test is disabled due to a bug in broadcast join. It will be enabled after TAJO-1553 @Test @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true) @SimpleTest(queries = { http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/java/org/apache/tajo/querymaster/TestTaskStatusUpdate.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/java/org/apache/tajo/querymaster/TestTaskStatusUpdate.java b/tajo-core/src/test/java/org/apache/tajo/querymaster/TestTaskStatusUpdate.java index e237139..b468e37 100644 --- a/tajo-core/src/test/java/org/apache/tajo/querymaster/TestTaskStatusUpdate.java +++ b/tajo-core/src/test/java/org/apache/tajo/querymaster/TestTaskStatusUpdate.java @@ -95,15 +95,15 @@ public class TestTaskStatusUpdate extends QueryTestCaseBase { |-eb_1404143727281_0002_000005 |-eb_1404143727281_0002_000004 (order by) |-eb_1404143727281_0002_000003 (join) - |-eb_1404143727281_0002_000002 (scan) - |-eb_1404143727281_0002_000001 (scan, filter) + |-eb_1404143727281_0002_000002 (scan, filter) + |-eb_1404143727281_0002_000001 (scan) */ res = executeQuery(); // in/out * stage(4) - long[] expectedNumRows = new long[]{2, 2, 5, 5, 7, 2, 2, 2}; - long[] expectedNumBytes = new long[]{8, 34, 20, 75, 109, 34, 34, 18}; - long[] expectedReadBytes = new long[]{8, 8, 20, 20, 109, 0, 34, 0}; + long[] expectedNumRows = new long[]{5, 5, 2, 2, 7, 2, 2, 2}; + long[] expectedNumBytes = new long[]{20, 75, 8, 34, 109, 34, 34, 18}; + long[] expectedReadBytes = new long[]{20, 20, 8, 8, 109, 0, 34, 0}; assertStatus(4, expectedNumRows, expectedNumBytes, expectedReadBytes); } finally { http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql b/tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql index ae85bdd..f3b0995 100644 --- a/tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql +++ b/tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql @@ -1,6 +1,6 @@ select sum(b.l_quantity) from ( - select a.l_orderkey, a.l_quantity + select a.l_orderkey, a.l_quantity, a.l_linenumber from lineitem a join part on a.l_partkey = p_partkey) b join orders c on c.o_orderkey = b.l_orderkey http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql b/tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql index 54090b2..6c2d66a 100644 --- a/tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql +++ b/tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql @@ -2,4 +2,4 @@ select a.l_orderkey, b.c_custkey, b.c_name, b.c_nationkey, d.n_name from lineitem a left outer join customer b on a.l_orderkey = b.c_custkey left outer join orders c on b.c_custkey = c.o_custkey -left outer join nation d on a.l_orderkey = d.n_nationkey +left outer join nation d on a.l_orderkey = d.n_nationkey \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan index fa8c71e..bd3ba1a 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} SCAN(1) on default.orders => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -105,14 +105,14 @@ SORT(26) => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} SCAN(1) on default.orders => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan index cf69c4a..fc5e3e3 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} SCAN(1) on default.orders => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,32 +79,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) -SCAN(1) on default.orders - => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) - => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} +SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} +SCAN(1) on default.orders + => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) + => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} + => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) @@ -115,11 +115,11 @@ JOIN(13)(INNER) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan index fa8c71e..bd3ba1a 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} SCAN(1) on default.orders => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -105,14 +105,14 @@ SORT(26) => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} SCAN(1) on default.orders => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan index cf69c4a..fc5e3e3 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} SCAN(1) on default.orders => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,32 +79,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) -SCAN(1) on default.orders - => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) - => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} - => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} +SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -SCAN(0) on default.lineitem - => target list: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(16) default.lineitem.l_comment (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_linenumber (INT4), default.lineitem.l_linestatus (TEXT), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_returnflag (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_suppkey (INT4), default.lineitem.l_tax (FLOAT8)} +SCAN(1) on default.orders + => target list: default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4) + => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} + => in schema: {(9) default.orders.o_clerk (TEXT), default.orders.o_comment (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderpriority (TEXT), default.orders.o_orderstatus (TEXT), default.orders.o_shippriority (INT4), default.orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) @@ -115,11 +115,11 @@ JOIN(13)(INNER) => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)} => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => in schema: {(2) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash.plan index e5b8455..ae3d2c2 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(10) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash_NoBroadcast.plan index 79b3cab..7705f67 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) -SCAN(0) on default.nation as n1 - => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) - => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} - => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} +SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) -SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} +SCAN(0) on default.nation as n1 + => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) + => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.n1.n_nationkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort.plan index e5b8455..ae3d2c2 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(10) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort_NoBroadcast.plan index 79b3cab..7705f67 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) -SCAN(0) on default.nation as n1 - => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) - => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} - => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} +SCAN(1) on default.nation as n2 + => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) -SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), upper(default.n2.n_name (TEXT)) as ?upper_1 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} +SCAN(0) on default.nation as n1 + => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) + => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?upper_1 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.n1.n_nationkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} => in schema: {(4) ?upper_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n2.n_name (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(2) ?upper_1 (TEXT), default.n2.n_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash.plan index 7c88933..9f69697 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} => in schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: upper(default.n2.n_name (TEXT)) as name - => out schema: {(1) name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: upper(default.n2.n_name (TEXT)) as name + => out schema: {(1) name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(10) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} => in schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: upper(default.n2.n_name (TEXT)) as name - => out schema: {(1) name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: upper(default.n2.n_name (TEXT)) as name + => out schema: {(1) name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash_NoBroadcast.plan index dad9ec2..53b6430 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} => in schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} - SCAN(1) on default.nation as n2 - => target list: upper(default.n2.n_name (TEXT)) as name - => out schema: {(1) name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} SCAN(0) on default.nation as n1 => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} + SCAN(1) on default.nation as n2 + => target list: upper(default.n2.n_name (TEXT)) as name + => out schema: {(1) name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=name (TEXT), num=32) -SCAN(0) on default.nation as n1 - => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) - => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} - => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} +SCAN(1) on default.nation as n2 + => target list: upper(default.n2.n_name (TEXT)) as name + => out schema: {(1) name (TEXT)} + => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) -SCAN(1) on default.nation as n2 - => target list: upper(default.n2.n_name (TEXT)) as name - => out schema: {(1) name (TEXT)} - => in schema: {(4) default.n2.n_comment (TEXT), default.n2.n_name (TEXT), default.n2.n_nationkey (INT4), default.n2.n_regionkey (INT4)} +SCAN(0) on default.nation as n1 + => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4) + => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + => in schema: {(4) default.n1.n_comment (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), default.n1.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=name (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.n1.n_name (TEXT), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.n1.n_nationkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} => in schema: {(3) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), name (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) name (TEXT)} - => in schema: {(1) name (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(2) default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) name (TEXT)} + => in schema: {(1) name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT]
