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 c6b2f69b2e..44973dbbc1 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 static String toDisplayString(Schema schema) { 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; + } + } } 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 e8852df438..b78e5cf8d5 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 Pair(T1 first, T2 second) { this.second = second; } + public void set(T1 first, T2 second) { + this.first = first; + this.second = second; + } + public T1 getFirst() { return first; } diff --git a/tajo-core/pom.xml b/tajo-core/pom.xml index 4b3936e2f6..33e37b60db 100644 --- a/tajo-core/pom.xml +++ b/tajo-core/pom.xml @@ -78,7 +78,6 @@ src/test/resources/dataset/** src/test/resources/queries/** src/test/resources/results/** - src/test/resources/results/** src/main/resources/META-INF/services/* src/main/resources/webapps/static/js/* 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 af8d796214..b9814ebe5d 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.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 TableDesc createTable(QueryContext queryContext, * @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; 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 b8574fe318..bba5c0b530 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.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 @@ 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 LogicalNode visitJoin(PlanShapeFixerContext context, LogicalPlan plan, Lo 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 @@ private Target[] sortTargets(Target[] targets) { 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 { @@ -232,52 +199,4 @@ public int compare(Target o1, Target o2) { } } - private static class PidCollectorContext { - List joinPids = TUtil.newList(); - public void reset() { - joinPids.clear(); - } - } - - /** - * {@link JoinPidCollector} collects the pids of all join - * nodes. - */ - private static class JoinPidCollector extends BasicLogicalPlanVisitor { - - @Override - public LogicalNode visitJoin(PidCollectorContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, - JoinNode node, Stack stack) throws PlanningException { - context.joinPids.add(node.getPID()); - super.visitJoin(context, plan, block, node, stack); - - return null; - } - } - - private static class PidReseterContext { - List joinPids; - - public void reset(List 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 { - - @Override - public LogicalNode visitJoin(PidReseterContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, - JoinNode node, Stack stack) throws PlanningException { - super.visitJoin(context, plan, block, node, stack); - node.setPID(context.joinPids.remove(0)); - - return null; - } - } - } 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 6eedb4223a..a0b5d9aa68 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 static void classTearDown() throws ServiceException { } @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 final void testCrossJoin() throws Exception { } @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(); 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 9d0e0bc27e..53dce3c9a5 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 final void testLeftOuterWithEmptyTable() throws Exception { 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 final void testRightOuterJoinPredicationCaseByCase1() throws Exception { 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 final void testRightOuterJoinPredicationCaseByCase2() throws Exception { 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 final void testRightOuterJoinPredicationCaseByCase3() throws Exception { 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 = { 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 e237139d09..b468e3745c 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 final void case3() throws Exception { |-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 { diff --git a/tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql b/tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql index ae85bdd7c8..f3b099596e 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 diff --git a/tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql b/tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql index 54090b204e..6c2d66a70a 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 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 fa8c71e9a5..bd3ba1abd4 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] 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 cf69c4a8df..fc5e3e3d47 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] 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 fa8c71e9a5..bd3ba1abd4 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] 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 cf69c4a8df..fc5e3e3d47 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] 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 e5b845568c..ae3d2c289e 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] 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 79b3cabed8..7705f67e8c 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] 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 e5b845568c..ae3d2c289e 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] 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 79b3cabed8..7705f67e8c 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] 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 7c889332ab..9f6969775b 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] 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 dad9ec2d7d..53b6430c32 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] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort.plan index 7c889332ab..9f6969775b 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort.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] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort_NoBroadcast.plan index dad9ec2d7d..53b6430c32 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort_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] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash.plan index f35d4862fb..2f639c2f10 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.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: {(5) ?lower_1 (TEXT), ?lower_2 (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), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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: {(5) ?lower_1 (TEXT), ?lower_2 (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), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash_NoBroadcast.plan index b7ed23b181..3f3e6327b0 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.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: {(5) ?lower_1 (TEXT), ?lower_2 (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), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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=?lower_1 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?lower_2 (TEXT), num=32) -SCAN(0) on default.nation as n1 - => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), lower(default.n1.n_name (TEXT)) as ?lower_1 - => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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=?lower_2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?lower_1 (TEXT), num=32) -SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 + => out schema: {(3) ?lower_1 (TEXT), 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=?lower_1 (TEXT), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?lower_2 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?lower_2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?lower_1 (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: {(5) ?lower_1 (TEXT), ?lower_2 (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) ?lower_2 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(2) ?lower_2 (TEXT), default.n2.n_name (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(3) ?lower_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(3) ?lower_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) ?lower_2 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(2) ?lower_2 (TEXT), default.n2.n_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort.plan index f35d4862fb..2f639c2f10 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.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: {(5) ?lower_1 (TEXT), ?lower_2 (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), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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: {(5) ?lower_1 (TEXT), ?lower_2 (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), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort_NoBroadcast.plan index b7ed23b181..3f3e6327b0 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.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: {(5) ?lower_1 (TEXT), ?lower_2 (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), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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=?lower_1 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?lower_2 (TEXT), num=32) -SCAN(0) on default.nation as n1 - => target list: default.n1.n_name (TEXT), default.n1.n_nationkey (INT4), lower(default.n1.n_name (TEXT)) as ?lower_1 - => out schema: {(3) ?lower_1 (TEXT), 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), lower(default.n2.n_name (TEXT)) as ?lower_2 + => out schema: {(2) ?lower_2 (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=?lower_2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?lower_1 (TEXT), num=32) -SCAN(1) on default.nation as n2 - => target list: default.n2.n_name (TEXT), lower(default.n2.n_name (TEXT)) as ?lower_2 - => out schema: {(2) ?lower_2 (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), lower(default.n1.n_name (TEXT)) as ?lower_1 + => out schema: {(3) ?lower_1 (TEXT), 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=?lower_1 (TEXT), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?lower_2 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?lower_2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=?lower_1 (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: {(5) ?lower_1 (TEXT), ?lower_2 (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) ?lower_2 (TEXT), default.n2.n_name (TEXT)} - => in schema: {(2) ?lower_2 (TEXT), default.n2.n_name (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(3) ?lower_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} => in schema: {(3) ?lower_1 (TEXT), default.n1.n_name (TEXT), default.n1.n_nationkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) ?lower_2 (TEXT), default.n2.n_name (TEXT)} + => in schema: {(2) ?lower_2 (TEXT), default.n2.n_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash.plan index fb73ee5b1b..1d0e9ff460 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT) => out schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} - SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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_nationkey (INT4), name1 (TEXT), name2 (TEXT) => out schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} - SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash_NoBroadcast.plan index c63039375e..feec5d9d47 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT) => out schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} - SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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=name1 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=name2 (TEXT), num=32) -SCAN(0) on default.nation as n1 - => target list: default.n1.n_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 - => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} - => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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=name2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name1 (TEXT), num=32) -SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 + => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} + => 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=name1 (TEXT), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name2 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=name2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name1 (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_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) name2 (TEXT)} - => in schema: {(1) name2 (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => in schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) name2 (TEXT)} + => in schema: {(1) name2 (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort.plan index fb73ee5b1b..1d0e9ff460 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT) => out schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} - SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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_nationkey (INT4), name1 (TEXT), name2 (TEXT) => out schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} - SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort_NoBroadcast.plan index c63039375e..feec5d9d47 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT) => out schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} - SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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=name1 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=name2 (TEXT), num=32) -SCAN(0) on default.nation as n1 - => target list: default.n1.n_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 - => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} - => 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: substr(default.n2.n_name (TEXT),1,4) as name2 + => out schema: {(1) name2 (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=name2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name1 (TEXT), num=32) -SCAN(1) on default.nation as n2 - => target list: substr(default.n2.n_name (TEXT),1,4) as name2 - => out schema: {(1) name2 (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_nationkey (INT4), substr(default.n1.n_name (TEXT),1,4) as name1 + => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} + => 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=name1 (TEXT), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name2 (TEXT), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=name2 (TEXT), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=name1 (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_nationkey (INT4), name1 (TEXT), name2 (TEXT)} => in schema: {(3) default.n1.n_nationkey (INT4), name1 (TEXT), name2 (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) name2 (TEXT)} - => in schema: {(1) name2 (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} => in schema: {(2) default.n1.n_nationkey (INT4), name1 (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) name2 (TEXT)} + => in schema: {(1) name2 (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash.plan index 453e12feb4..8bc07bfd84 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash.plan @@ -4,14 +4,14 @@ JOIN(5)(CROSS) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -37,14 +37,14 @@ JOIN(5)(CROSS) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash_NoBroadcast.plan index b430c88afe..5d0de2fb45 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash_NoBroadcast.plan @@ -4,14 +4,14 @@ JOIN(5)(CROSS) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -37,10 +37,10 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [Outgoing] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) -SCAN(0) on default.region - => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -49,10 +49,10 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] [Outgoing] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) -SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.region + => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [ROOT] @@ -67,11 +67,11 @@ JOIN(5)(CROSS) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(8) on eb_0000000000000_0000_000002 - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - SCAN(7) on eb_0000000000000_0000_000001 => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(7) on eb_0000000000000_0000_000001 + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort.plan index 453e12feb4..8bc07bfd84 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort.plan @@ -4,14 +4,14 @@ JOIN(5)(CROSS) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -37,14 +37,14 @@ JOIN(5)(CROSS) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort_NoBroadcast.plan index b430c88afe..5d0de2fb45 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort_NoBroadcast.plan @@ -4,14 +4,14 @@ JOIN(5)(CROSS) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -37,10 +37,10 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [Outgoing] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) -SCAN(0) on default.region - => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -49,10 +49,10 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] [Outgoing] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) -SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.region + => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [ROOT] @@ -67,11 +67,11 @@ JOIN(5)(CROSS) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(8) on eb_0000000000000_0000_000002 - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - SCAN(7) on eb_0000000000000_0000_000001 => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(7) on eb_0000000000000_0000_000001 + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.3.result b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.3.result index 799bc065c8..304b867f86 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.3.result +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.3.result @@ -1,27 +1,27 @@ r_regionkey,r_name,r_comment,c_custkey,c_name,c_address,c_nationkey,c_phone,c_acctbal,c_mktsegment,c_comment ------------------------------- 0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e -1,AMERICA,hs use ironic, even requests. s,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e -2,ASIA,ges. thinly even pinto beans ca,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e -3,EUROPE,ly final courts cajole furiously final excuse,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e -4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e 0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref -1,AMERICA,hs use ironic, even requests. s,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref -2,ASIA,ges. thinly even pinto beans ca,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref -3,EUROPE,ly final courts cajole furiously final excuse,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref -4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref 0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov -1,AMERICA,hs use ironic, even requests. s,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov -2,ASIA,ges. thinly even pinto beans ca,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov -3,EUROPE,ly final courts cajole furiously final excuse,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov -4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov 0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou -1,AMERICA,hs use ironic, even requests. s,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou -2,ASIA,ges. thinly even pinto beans ca,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou -3,EUROPE,ly final courts cajole furiously final excuse,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou -4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou 0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor +1,AMERICA,hs use ironic, even requests. s,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e +1,AMERICA,hs use ironic, even requests. s,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref +1,AMERICA,hs use ironic, even requests. s,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov +1,AMERICA,hs use ironic, even requests. s,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou 1,AMERICA,hs use ironic, even requests. s,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor +2,ASIA,ges. thinly even pinto beans ca,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e +2,ASIA,ges. thinly even pinto beans ca,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref +2,ASIA,ges. thinly even pinto beans ca,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov +2,ASIA,ges. thinly even pinto beans ca,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou 2,ASIA,ges. thinly even pinto beans ca,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor +3,EUROPE,ly final courts cajole furiously final excuse,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e +3,EUROPE,ly final courts cajole furiously final excuse,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref +3,EUROPE,ly final courts cajole furiously final excuse,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov +3,EUROPE,ly final courts cajole furiously final excuse,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou 3,EUROPE,ly final courts cajole furiously final excuse,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor +4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e +4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref +4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov +4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou 4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.5.result b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.5.result index 6f9847ffe3..89720e08b5 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.5.result +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.5.result @@ -1,27 +1,27 @@ len,c_custkey,c_name,c_address,c_nationkey,c_phone,c_acctbal,c_mktsegment,c_comment,r_regionkey,r_name,r_comment,?multiply ------------------------------- -31,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,1,AMERICA,hs use ironic, even requests. s,50 -31,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,1,AMERICA,hs use ironic, even requests. s,20 -31,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,1,AMERICA,hs use ironic, even requests. s,40 -31,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,1,AMERICA,hs use ironic, even requests. s,30 +108,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,10 +108,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,20 +108,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,30 +108,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,40 +108,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,50 +115,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,10 +115,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,20 +115,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,30 +115,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,40 +115,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,50 31,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,1,AMERICA,hs use ironic, even requests. s,10 +31,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,2,ASIA,ges. thinly even pinto beans ca,10 +31,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,1,AMERICA,hs use ironic, even requests. s,20 31,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,2,ASIA,ges. thinly even pinto beans ca,20 +31,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,1,AMERICA,hs use ironic, even requests. s,30 +31,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,2,ASIA,ges. thinly even pinto beans ca,30 +31,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,1,AMERICA,hs use ironic, even requests. s,40 31,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,2,ASIA,ges. thinly even pinto beans ca,40 -31,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,2,ASIA,ges. thinly even pinto beans ca,10 +31,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,1,AMERICA,hs use ironic, even requests. s,50 31,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,2,ASIA,ges. thinly even pinto beans ca,50 -31,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,2,ASIA,ges. thinly even pinto beans ca,30 +45,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,3,EUROPE,ly final courts cajole furiously final excuse,10 +45,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,3,EUROPE,ly final courts cajole furiously final excuse,20 45,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,3,EUROPE,ly final courts cajole furiously final excuse,30 45,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,3,EUROPE,ly final courts cajole furiously final excuse,40 45,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,3,EUROPE,ly final courts cajole furiously final excuse,50 -45,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,3,EUROPE,ly final courts cajole furiously final excuse,20 -45,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,3,EUROPE,ly final courts cajole furiously final excuse,10 -108,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,50 -108,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,10 -108,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,20 -108,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,30 -108,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,4,MIDDLE EAST,uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl,40 -115,5,Customer#000000005,KvpyuHCplrB84WgAiGV6sYpZq7Tj,3,13-750-942-6364,794.47,HOUSEHOLD,n accounts will have to unwind. foxes cajole accor,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,50 -115,4,Customer#000000004,XxVSJsLAGtn,4,14-128-190-5944,2866.83,MACHINERY, requests. final, regular ideas sleep final accou,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,40 -115,3,Customer#000000003,MG9kdTD2WBHm,1,11-719-748-3364,7498.12,AUTOMOBILE, deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,30 -115,2,Customer#000000002,XSTf4,NCwDVaWNe6tEgvwfmRchLXak,13,23-768-687-3665,121.65,AUTOMOBILE,l accounts. blithely ironic theodolites integrate boldly: caref,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,20 -115,1,Customer#000000001,IVhzIApeRb ot,c,E,15,25-989-741-2988,711.56,BUILDING,to the even, regular platelets. regular, ironic epitaphs nag e,0,AFRICA,lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to ,10 diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash.plan index af6c200226..de4fc4f9f5 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash_NoBroadcast.plan index 48ecb9133d..6153908b20 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) - => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(1) default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort.plan index af6c200226..de4fc4f9f5 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort_NoBroadcast.plan index 48ecb9133d..6153908b20 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) - => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(1) default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash.plan index b76c6e2544..78b074a4d2 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash.plan @@ -6,14 +6,14 @@ SORT(2) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -46,14 +46,14 @@ SORT(10) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash_NoBroadcast.plan index 26dc4d9416..214097c0d1 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash_NoBroadcast.plan @@ -6,14 +6,14 @@ SORT(2) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -41,10 +41,10 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [Outgoing] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) -SCAN(0) on default.region - => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -53,10 +53,10 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] [Outgoing] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) -SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.region + => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] @@ -76,11 +76,11 @@ SORT(10) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort.plan index b76c6e2544..78b074a4d2 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort.plan @@ -6,14 +6,14 @@ SORT(2) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -46,14 +46,14 @@ SORT(10) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort_NoBroadcast.plan index 26dc4d9416..214097c0d1 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort_NoBroadcast.plan @@ -6,14 +6,14 @@ SORT(2) => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.region => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -41,10 +41,10 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [Outgoing] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) -SCAN(0) on default.region - => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.customer + => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -53,10 +53,10 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] [Outgoing] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) -SCAN(1) on default.customer - => target list: default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT) - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.region + => target list: default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] @@ -76,11 +76,11 @@ SORT(10) => out schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(11) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash.plan index a684a0ca66..988980c691 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan index a71bd54453..742e346173 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(1) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan index a684a0ca66..988980c691 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan index a71bd54453..742e346173 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(1) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan index e3cbb61f7c..27de587124 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan @@ -10,14 +10,14 @@ PROJECTION(3) => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} - SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} SCAN(0) on default.region as a => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -49,14 +49,14 @@ PROJECTION(3) => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} - SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} SCAN(0) on default.region as a => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan index 6cf1244756..0048ac60e1 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan @@ -10,14 +10,14 @@ PROJECTION(3) => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} - SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} SCAN(0) on default.region as a => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -43,10 +43,10 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [Outgoing] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) -SCAN(0) on default.region as a - => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) - => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} - => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} +SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -55,10 +55,10 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] [Outgoing] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) -SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} +SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [ROOT] @@ -79,11 +79,11 @@ PROJECTION(3) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan index e3cbb61f7c..27de587124 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan @@ -10,14 +10,14 @@ PROJECTION(3) => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} - SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} SCAN(0) on default.region as a => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -49,14 +49,14 @@ PROJECTION(3) => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} - SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} SCAN(0) on default.region as a => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan index 6cf1244756..0048ac60e1 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan @@ -10,14 +10,14 @@ PROJECTION(3) => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} - SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} SCAN(0) on default.region as a => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -43,10 +43,10 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [Outgoing] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) -SCAN(0) on default.region as a - => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) - => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} - => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} +SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -55,10 +55,10 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] [Outgoing] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) -SCAN(1) on default.region as b - => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} +SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [ROOT] @@ -79,11 +79,11 @@ PROJECTION(3) => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - => in schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} => in schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan index af6c200226..de4fc4f9f5 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan index 48ecb9133d..6153908b20 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) - => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(1) default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan index af6c200226..de4fc4f9f5 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan index 48ecb9133d..6153908b20 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) - => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(1) default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash.plan index a684a0ca66..988980c691 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash_NoBroadcast.plan index a71bd54453..742e346173 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(1) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort.plan index a684a0ca66..988980c691 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort_NoBroadcast.plan index a71bd54453..742e346173 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(1) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(1) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(0) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan index 244bfa9bc7..0120a2bc11 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan @@ -5,14 +5,14 @@ JOIN(5)(INNER) => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(1) on default.customer as a => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -39,14 +39,14 @@ JOIN(5)(INNER) => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(1) on default.customer as a => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan index f5ee800fe9..afc6b062a6 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan @@ -5,14 +5,14 @@ JOIN(5)(INNER) => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(1) on default.customer as a => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -36,32 +36,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) -SCAN(1) on default.customer as a - => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) - => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} +SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) -SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} +SCAN(1) on default.customer as a + => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) + => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000003 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) JOIN(5)(INNER) => Join Cond: default.b.n_nationkey (INT4) = default.a.c_nationkey (INT4) @@ -69,11 +69,11 @@ JOIN(5)(INNER) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(8) on eb_0000000000000_0000_000002 - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(7) on eb_0000000000000_0000_000001 => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(7) on eb_0000000000000_0000_000001 + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan index 244bfa9bc7..0120a2bc11 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan @@ -5,14 +5,14 @@ JOIN(5)(INNER) => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(1) on default.customer as a => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -39,14 +39,14 @@ JOIN(5)(INNER) => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(1) on default.customer as a => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan index f5ee800fe9..afc6b062a6 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan @@ -5,14 +5,14 @@ JOIN(5)(INNER) => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(1) on default.customer as a => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -36,32 +36,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) -SCAN(1) on default.customer as a - => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) - => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} +SCAN(0) on default.nation as b + => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) -SCAN(0) on default.nation as b - => target list: default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4) - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} +SCAN(1) on default.customer as a + => target list: default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT) + => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000003 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.c_nationkey (INT4), num=32) JOIN(5)(INNER) => Join Cond: default.b.n_nationkey (INT4) = default.a.c_nationkey (INT4) @@ -69,11 +69,11 @@ JOIN(5)(INNER) => out schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} => in schema: {(12) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT), default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} SCAN(8) on eb_0000000000000_0000_000002 - => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} - SCAN(7) on eb_0000000000000_0000_000001 => out schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(7) on eb_0000000000000_0000_000001 + => out schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} + => in schema: {(4) default.b.n_comment (TEXT), default.b.n_name (TEXT), default.b.n_nationkey (INT4), default.b.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash.plan index d5e2b9b15a..21e765d3f8 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + default.nation.n_regionkey (INT4) as plus => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + default.nation.n_regionkey (INT4) as plus => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash_NoBroadcast.plan index ea4afb6e02..4250b5c3f4 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + default.nation.n_regionkey (INT4) as plus => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: default.region.r_regionkey (INT4) - => out schema: {(1) default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: default.region.r_regionkey (INT4) + => out schema: {(1) default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(1) default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(1) default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort.plan index d5e2b9b15a..21e765d3f8 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + default.nation.n_regionkey (INT4) as plus => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + default.nation.n_regionkey (INT4) as plus => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort_NoBroadcast.plan index ea4afb6e02..4250b5c3f4 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + default.nation.n_regionkey (INT4) as plus => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: default.region.r_regionkey (INT4) - => out schema: {(1) default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_regionkey (INT4) - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: default.region.r_regionkey (INT4) + => out schema: {(1) default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(3) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), plus (INT4)} => in schema: {(2) default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(1) default.nation.n_regionkey (INT4)} - => in schema: {(1) default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(1) default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan index f3b0e9dcdc..c982ee3a49 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan @@ -3,45 +3,45 @@ explain SORT(6) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} - JOIN(14)(INNER) => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(4) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + JOIN(14)(INNER) + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(1) on joins.supplier_ => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -67,52 +67,52 @@ Block Id: eb_0000000000000_0000_000009 [LEAF] [Enforcers] 0: type=Broadcast, tables=joins.supplier_ - 1: type=Broadcast, tables=default.region - 2: type=Broadcast, tables=joins.part_ - 3: type=Broadcast, tables=default.partsupp + 1: type=Broadcast, tables=joins.part_ + 2: type=Broadcast, tables=default.partsupp + 3: type=Broadcast, tables=default.region SORT(26) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} - JOIN(14)(INNER) => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(4) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + JOIN(14)(INNER) + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(1) on joins.supplier_ => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan index 59e9b93827..19750a23c4 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan @@ -3,45 +3,45 @@ explain SORT(6) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} - JOIN(14)(INNER) => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(4) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + JOIN(14)(INNER) + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(1) on joins.supplier_ => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,137 +79,137 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on joins.supplier_ - => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) -SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on joins.supplier_ + => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) + => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) -SCAN(4) on default.region - => target list: default.region.r_regionkey (INT4) - => out schema: {(1) default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} +SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000007 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(4) on default.region + => target list: default.region.r_regionkey (INT4) + => out schema: {(1) default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) JOIN(14)(INNER) - => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} SCAN(21) on eb_0000000000000_0000_000004 - => out schema: {(1) default.region.r_regionkey (INT4)} - => in schema: {(1) default.region.r_regionkey (INT4)} + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} SCAN(20) on eb_0000000000000_0000_000003 - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) -[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(23) on eb_0000000000000_0000_000007 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => out schema: {(1) default.region.r_regionkey (INT4)} + => in schema: {(1) default.region.r_regionkey (INT4)} SCAN(22) on eb_0000000000000_0000_000006 - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_name (TEXT), num=32) @@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE] SORT(26) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} SCAN(25) on eb_0000000000000_0000_000008 - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} SCAN(24) on eb_0000000000000_0000_000005 - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan index f3b0e9dcdc..c982ee3a49 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan @@ -3,45 +3,45 @@ explain SORT(6) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} - JOIN(14)(INNER) => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(4) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + JOIN(14)(INNER) + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(1) on joins.supplier_ => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -67,52 +67,52 @@ Block Id: eb_0000000000000_0000_000009 [LEAF] [Enforcers] 0: type=Broadcast, tables=joins.supplier_ - 1: type=Broadcast, tables=default.region - 2: type=Broadcast, tables=joins.part_ - 3: type=Broadcast, tables=default.partsupp + 1: type=Broadcast, tables=joins.part_ + 2: type=Broadcast, tables=default.partsupp + 3: type=Broadcast, tables=default.region SORT(26) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} - JOIN(14)(INNER) => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(4) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + JOIN(14)(INNER) + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(1) on joins.supplier_ => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan index 59e9b93827..19750a23c4 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan @@ -3,45 +3,45 @@ explain SORT(6) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} - JOIN(14)(INNER) => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(4) on default.region => target list: default.region.r_regionkey (INT4) => out schema: {(1) default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + JOIN(14)(INNER) + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(1) on joins.supplier_ => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,137 +79,137 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on joins.supplier_ - => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) -SCAN(3) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on joins.supplier_ + => target list: joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) + => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) JOIN(13)(INNER) - => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => target list: default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} => in schema: {(7) joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) -SCAN(4) on default.region - => target list: default.region.r_regionkey (INT4) - => out schema: {(1) default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on joins.part_ + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on joins.part_ - => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(9) joins.part_.p_brand (TEXT), joins.part_.p_comment (TEXT), joins.part_.p_container (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_name (TEXT), joins.part_.p_partkey (INT4), joins.part_.p_retailprice (FLOAT8), joins.part_.p_size (INT4), joins.part_.p_type (TEXT)} +SCAN(3) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000007 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(4) on default.region + => target list: default.region.r_regionkey (INT4) + => out schema: {(1) default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) JOIN(14)(INNER) - => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) - => target list: default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4) - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) + => target list: joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT) + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(9) default.partsupp.ps_partkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} SCAN(21) on eb_0000000000000_0000_000004 - => out schema: {(1) default.region.r_regionkey (INT4)} - => in schema: {(1) default.region.r_regionkey (INT4)} + => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => in schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} SCAN(20) on eb_0000000000000_0000_000003 - => out schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(8) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => out schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(7) default.partsupp.ps_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32) -[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) JOIN(15)(INNER) - => Join Cond: joins.part_.p_partkey (INT4) = default.partsupp.ps_partkey (INT4) - => target list: default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4) - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(4) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4) + => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} SCAN(23) on eb_0000000000000_0000_000007 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => out schema: {(1) default.region.r_regionkey (INT4)} + => in schema: {(1) default.region.r_regionkey (INT4)} SCAN(22) on eb_0000000000000_0000_000006 - => out schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(2) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_name (TEXT), num=32) @@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE] SORT(26) => Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc),joins.supplier_.s_name (TEXT) (asc),default.nation.n_name (TEXT) (asc),joins.part_.p_partkey (INT4) (asc) JOIN(16)(INNER) - => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4) + => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4) => target list: default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT) => out schema: {(8) default.nation.n_name (TEXT), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT)} - => in schema: {(10) default.nation.n_name (TEXT), default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} SCAN(25) on eb_0000000000000_0000_000008 - => out schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} - => in schema: {(3) default.partsupp.ps_suppkey (INT4), joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4)} + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} + => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)} SCAN(24) on eb_0000000000000_0000_000005 - => out schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} - => in schema: {(7) default.nation.n_name (TEXT), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_phone (TEXT), joins.supplier_.s_suppkey (INT4)} + => out schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} + => in schema: {(8) joins.part_.p_mfgr (TEXT), joins.part_.p_partkey (INT4), joins.supplier_.s_acctbal (FLOAT8), joins.supplier_.s_address (TEXT), joins.supplier_.s_comment (TEXT), joins.supplier_.s_name (TEXT), joins.supplier_.s_nationkey (INT4), joins.supplier_.s_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan index ead39f7d13..170763cae9 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan @@ -34,14 +34,14 @@ SORT(10) => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} SCAN(3) on default.supplier as s => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -105,14 +105,14 @@ SORT(26) => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} SCAN(3) on default.supplier as s => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan index 75c54877a0..0b27fecd6d 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan @@ -34,14 +34,14 @@ SORT(10) => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} SCAN(3) on default.supplier as s => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,32 +79,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) -SCAN(3) on default.supplier as s - => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) - => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} +SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} +SCAN(3) on default.supplier as s + => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) + => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32) @@ -115,11 +115,11 @@ JOIN(13)(INNER) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan index ead39f7d13..170763cae9 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan @@ -34,14 +34,14 @@ SORT(10) => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} SCAN(3) on default.supplier as s => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -105,14 +105,14 @@ SORT(26) => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} SCAN(3) on default.supplier as s => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan index 75c54877a0..0b27fecd6d 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan @@ -34,14 +34,14 @@ SORT(10) => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} SCAN(3) on default.supplier as s => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,32 +79,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) -SCAN(3) on default.supplier as s - => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) - => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} +SCAN(5) on default.partsupp as ps + => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -SCAN(5) on default.partsupp as ps - => target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} +SCAN(3) on default.supplier as s + => target list: default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4) + => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32) @@ -115,11 +115,11 @@ JOIN(13)(INNER) => out schema: {(8) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT)} => in schema: {(9) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(2) default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan index b19c33fd68..baad6d4ea3 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -105,14 +105,14 @@ SORT(26) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan index 818a408947..35680f2c62 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,32 +79,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on default.supplier - => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) - => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(1) on default.supplier + => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) + => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) @@ -115,11 +115,11 @@ JOIN(13)(INNER) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan index b19c33fd68..baad6d4ea3 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -105,14 +105,14 @@ SORT(26) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan index 818a408947..35680f2c62 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan @@ -34,14 +34,14 @@ SORT(6) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -79,32 +79,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on default.supplier - => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) - => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(1) on default.supplier + => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) + => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) @@ -115,11 +115,11 @@ JOIN(13)(INNER) => out schema: {(7) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(9) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} SCAN(19) on eb_0000000000000_0000_000002 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000001 => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(18) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash.plan index 6da36f78ce..fff67529e4 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash_NoBroadcast.plan index f2880e41cd..ce8b39b6e6 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(1) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort.plan index 6da36f78ce..fff67529e4 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort_NoBroadcast.plan index f2880e41cd..ce8b39b6e6 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(1) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash.plan index 549fe31562..abcdf6ec64 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash_NoBroadcast.plan index cde528c53b..32b75cdc26 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(1) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort.plan index 549fe31562..abcdf6ec64 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort_NoBroadcast.plan index cde528c53b..32b75cdc26 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(1) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(2) default.nation.n_name (TEXT), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} + => in schema: {(2) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash.plan index 458abea3f8..faa5926d39 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash_NoBroadcast.plan index ef80741256..b46814752c 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(1) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 - => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 + => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort.plan index 458abea3f8..faa5926d39 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -48,14 +48,14 @@ SORT(11) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort_NoBroadcast.plan index ef80741256..b46814752c 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} - SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(1) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.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.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(1) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 - => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(0) on default.nation + => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(0) on default.nation - => target list: default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.nation.n_nationkey (INT4) + 1 as p1 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(1) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4), default.region.r_regionkey (INT4) + 1 as p2 + => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), num=32) @@ -78,11 +78,11 @@ SORT(11) => out schema: {(4) default.nation.n_name (TEXT), default.region.r_name (TEXT), p1 (INT4), p2 (INT4)} => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4), p1 (INT4), p2 (INT4)} SCAN(10) on eb_0000000000000_0000_000002 - => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} - SCAN(9) on eb_0000000000000_0000_000001 => out schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} => in schema: {(3) default.region.r_name (TEXT), default.region.r_regionkey (INT4), p2 (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} + => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_regionkey (INT4), p1 (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan index 93829fc319..cfde80afb5 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan @@ -16,14 +16,14 @@ SORT(4) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -49,7 +49,7 @@ Block Id: eb_0000000000000_0000_000005 [LEAF] [Enforcers] 0: type=Broadcast, tables=default.supplier - 1: type=Broadcast, tables=default.part + 1: type=Broadcast, tables=default.partsupp SORT(16) => Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc),default.supplier.s_name (TEXT) (asc),default.part.p_partkey (INT4) (asc) @@ -67,14 +67,14 @@ SORT(16) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash_NoBroadcast.plan index b4243587cf..d4b5001843 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash_NoBroadcast.plan @@ -16,14 +16,14 @@ SORT(4) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,32 +53,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on default.supplier - => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) - => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(1) on default.supplier + => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) + => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) @@ -89,11 +89,11 @@ JOIN(9)(INNER) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} SCAN(13) on eb_0000000000000_0000_000002 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - SCAN(12) on eb_0000000000000_0000_000001 => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(12) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan index 93829fc319..cfde80afb5 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan @@ -16,14 +16,14 @@ SORT(4) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -49,7 +49,7 @@ Block Id: eb_0000000000000_0000_000005 [LEAF] [Enforcers] 0: type=Broadcast, tables=default.supplier - 1: type=Broadcast, tables=default.part + 1: type=Broadcast, tables=default.partsupp SORT(16) => Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc),default.supplier.s_name (TEXT) (asc),default.part.p_partkey (INT4) (asc) @@ -67,14 +67,14 @@ SORT(16) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort_NoBroadcast.plan index b4243587cf..d4b5001843 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort_NoBroadcast.plan @@ -16,14 +16,14 @@ SORT(4) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,32 +53,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on default.supplier - => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) - => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(1) on default.supplier + => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4) + => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) @@ -89,11 +89,11 @@ JOIN(9)(INNER) => out schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)} => in schema: {(5) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} SCAN(13) on eb_0000000000000_0000_000002 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - SCAN(12) on eb_0000000000000_0000_000001 => out schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(3) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(12) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan index 73d8693ecb..038f468d6d 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan @@ -25,14 +25,14 @@ SORT(5) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -86,14 +86,14 @@ SORT(21) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000008 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan index 2487285044..b195e34daa 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan @@ -25,14 +25,14 @@ SORT(5) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -66,32 +66,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on default.supplier - => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) - => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(1) on default.supplier + => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) + => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) @@ -102,11 +102,11 @@ JOIN(11)(INNER) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} SCAN(16) on eb_0000000000000_0000_000002 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - SCAN(15) on eb_0000000000000_0000_000001 => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan index 73d8693ecb..038f468d6d 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan @@ -25,14 +25,14 @@ SORT(5) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -86,14 +86,14 @@ SORT(21) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000008 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan index 2487285044..b195e34daa 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan @@ -25,14 +25,14 @@ SORT(5) => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(1) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -66,32 +66,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(1) on default.supplier - => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) - => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(2) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -SCAN(2) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4) - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(1) on default.supplier + => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) + => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) @@ -102,11 +102,11 @@ JOIN(11)(INNER) => out schema: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)} => in schema: {(6) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} SCAN(16) on eb_0000000000000_0000_000002 - => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} - SCAN(15) on eb_0000000000000_0000_000001 => out schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} => in schema: {(4) default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} + => in schema: {(2) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan index 2b7db47b3d..96858859e1 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan @@ -3,31 +3,31 @@ explain SORT(6) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + SCAN(2) 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)} JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} 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)} - TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - SCAN(2) 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)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -52,41 +52,41 @@ Block Id: eb_0000000000000_0000_000005 [LEAF] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT), num=32) [Enforcers] - 0: type=Broadcast, tables=default.orders - 1: type=Broadcast, tables=default.part + 0: type=Broadcast, tables=default.part + 1: type=Broadcast, tables=default.orders SORT(18) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + PROJECTION(3) + => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) + => 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(2) 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)} JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} 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)} - TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - PROJECTION(3) - => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) - => 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(2) 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_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash_NoBroadcast.plan index 0c134d5453..7ab1815462 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash_NoBroadcast.plan @@ -3,31 +3,31 @@ explain SORT(6) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + SCAN(2) 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)} JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} 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)} - TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - SCAN(2) 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)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -57,75 +57,75 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) -TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - PROJECTION(3) - => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) - => 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(2) 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.part.p_partkey (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.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.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_partkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} SCAN(15) on eb_0000000000000_0000_000002 + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(14) 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)} - SCAN(14) on eb_0000000000000_0000_000001 - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.a.o_orderkey (INT4), num=32) -SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} +TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + PROJECTION(3) + => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) + => 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(2) 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_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.a.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT), num=32) @@ -133,16 +133,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(18) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} SCAN(17) on eb_0000000000000_0000_000004 - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} SCAN(16) on eb_0000000000000_0000_000003 - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan index 2b7db47b3d..96858859e1 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan @@ -3,31 +3,31 @@ explain SORT(6) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + SCAN(2) 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)} JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} 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)} - TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - SCAN(2) 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)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -52,41 +52,41 @@ Block Id: eb_0000000000000_0000_000005 [LEAF] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT), num=32) [Enforcers] - 0: type=Broadcast, tables=default.orders - 1: type=Broadcast, tables=default.part + 0: type=Broadcast, tables=default.part + 1: type=Broadcast, tables=default.orders SORT(18) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + PROJECTION(3) + => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) + => 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(2) 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)} JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} 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)} - TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - PROJECTION(3) - => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) - => 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(2) 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_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort_NoBroadcast.plan index 0c134d5453..7ab1815462 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort_NoBroadcast.plan @@ -3,31 +3,31 @@ explain SORT(6) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + SCAN(2) 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)} JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} 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)} - TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - SCAN(2) 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)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -57,75 +57,75 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) -TABLE_SUBQUERY(4) as default.a - => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - PROJECTION(3) - => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) - => 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(2) 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.part.p_partkey (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.part + => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.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_partkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) JOIN(11)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) - => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4) - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(4) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} SCAN(15) on eb_0000000000000_0000_000002 + => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + SCAN(14) 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)} - SCAN(14) on eb_0000000000000_0000_000001 - => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} - => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.a.o_orderkey (INT4), num=32) -SCAN(1) on default.part - => target list: default.part.p_name (TEXT), default.part.p_partkey (INT4) - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} +TABLE_SUBQUERY(4) as default.a + => Targets: default.a.o_custkey (INT4), default.a.o_orderkey (INT4) + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + PROJECTION(3) + => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4) + => 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(2) 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_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.a.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT), num=32) @@ -133,16 +133,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(18) => Sort Keys: default.lineitem.l_orderkey (INT4) (asc),default.a.o_custkey (INT4) (asc),default.part.p_name (TEXT) (asc) JOIN(12)(INNER) - => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4) + => Join Cond: default.lineitem.l_orderkey (INT4) = default.a.o_orderkey (INT4) => target list: default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT) => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} - => in schema: {(5) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => in schema: {(4) default.a.o_custkey (INT4), default.a.o_orderkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} SCAN(17) on eb_0000000000000_0000_000004 - => out schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} - => in schema: {(2) default.part.p_name (TEXT), default.part.p_partkey (INT4)} + => out schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} + => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)} SCAN(16) on eb_0000000000000_0000_000003 - => out schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} - => in schema: {(3) default.a.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4)} + => out schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} + => in schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan index 839afaf636..ec3578c220 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan @@ -12,33 +12,6 @@ GROUP_BY(18)() => target list: default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8) => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - JOIN(22)(INNER) - => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(5) on default.orders as c - => filter: default.c.o_orderkey (INT4) > 0 - => target list: default.c.o_orderkey (INT4) - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} - TABLE_SUBQUERY(4) as default.b - => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) - => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_partkey (INT4) - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} TABLE_SUBQUERY(14) as default.f => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} @@ -52,7 +25,7 @@ GROUP_BY(18)() => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - JOIN(20)(INNER) + JOIN(21)(INNER) => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} @@ -65,6 +38,33 @@ GROUP_BY(18)() => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} + JOIN(22)(INNER) + => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) + => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + SCAN(5) on default.orders as c + => filter: default.c.o_orderkey (INT4) > 0 + => target list: default.c.o_orderkey (INT4) + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + TABLE_SUBQUERY(4) as default.b + => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) + => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + JOIN(20)(INNER) + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_partkey (INT4) + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -73,27 +73,27 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) |-eb_0000000000000_0000_000012 |-eb_0000000000000_0000_000011 |-eb_0000000000000_0000_000010 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000008 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000003 +1: eb_0000000000000_0000_000008 2: eb_0000000000000_0000_000010 3: eb_0000000000000_0000_000011 4: eb_0000000000000_0000_000012 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000003 [LEAF] +Block Id: eb_0000000000000_0000_000008 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 3 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) [Enforcers] 0: type=Broadcast, tables=default.part -GROUP_BY(27)(l_orderkey) +GROUP_BY(31)(l_orderkey) => exprs: (avg(default.e.l_quantity (FLOAT8))) => target list: default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF) => out schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} @@ -102,38 +102,38 @@ GROUP_BY(27)(l_orderkey) => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - PROJECTION(3) - => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + PROJECTION(10) + => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(1) on default.part + => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(8) on default.part => target list: default.part.p_partkey (INT4) => out schema: {(1) default.part.p_partkey (INT4)} => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} + SCAN(7) on default.lineitem as d + => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=, num=1) [Enforcers] 0: type=Broadcast, tables=default.part - 1: type=Broadcast, tables=default.c - 2: type=Broadcast, tables=default.d + 1: type=Broadcast, tables=default.a + 2: type=Broadcast, tables=default.c GROUP_BY(35)() => exprs: (sum(default.b.l_quantity (FLOAT8))) @@ -147,6 +147,22 @@ GROUP_BY(35)() => target list: default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8) => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + TABLE_SUBQUERY(14) as default.f + => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) + => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + PROJECTION(13) + => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + GROUP_BY(12)(l_orderkey) + => exprs: (avg(?avg_11 (PROTOBUF))) + => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + SCAN(32) on eb_0000000000000_0000_000008 + => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} JOIN(22)(INNER) => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) @@ -160,40 +176,24 @@ GROUP_BY(35)() TABLE_SUBQUERY(4) as default.b => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - PROJECTION(10) - => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + PROJECTION(3) + => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_linenumber (INT4) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} JOIN(20)(INNER) - => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(8) on default.part + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(1) on default.part => target list: default.part.p_partkey (INT4) => out schema: {(1) default.part.p_partkey (INT4)} => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(7) on default.lineitem as d - => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} - TABLE_SUBQUERY(14) as default.f - => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) - => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - PROJECTION(13) - => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - GROUP_BY(12)(l_orderkey) - => exprs: (avg(?avg_11 (PROTOBUF))) - => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - SCAN(28) on eb_0000000000000_0000_000003 - => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000011 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash_NoBroadcast.plan index 797e842299..14f4bb489e 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash_NoBroadcast.plan @@ -12,33 +12,6 @@ GROUP_BY(18)() => target list: default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8) => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - JOIN(22)(INNER) - => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(5) on default.orders as c - => filter: default.c.o_orderkey (INT4) > 0 - => target list: default.c.o_orderkey (INT4) - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} - TABLE_SUBQUERY(4) as default.b - => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) - => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_partkey (INT4) - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} TABLE_SUBQUERY(14) as default.f => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} @@ -52,7 +25,7 @@ GROUP_BY(18)() => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - JOIN(20)(INNER) + JOIN(21)(INNER) => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} @@ -65,6 +38,33 @@ GROUP_BY(18)() => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} + JOIN(22)(INNER) + => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) + => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + SCAN(5) on default.orders as c + => filter: default.c.o_orderkey (INT4) > 0 + => target list: default.c.o_orderkey (INT4) + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + TABLE_SUBQUERY(4) as default.b + => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) + => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + JOIN(20)(INNER) + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_partkey (INT4) + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -75,10 +75,10 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) |-eb_0000000000000_0000_000010 |-eb_0000000000000_0000_000009 |-eb_0000000000000_0000_000008 - |-eb_0000000000000_0000_000007 + |-eb_0000000000000_0000_000007 |-eb_0000000000000_0000_000006 - |-eb_0000000000000_0000_000005 - |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 |-eb_0000000000000_0000_000001 @@ -88,10 +88,10 @@ Order of Execution 1: eb_0000000000000_0000_000001 2: eb_0000000000000_0000_000002 3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000005 +4: eb_0000000000000_0000_000004 5: eb_0000000000000_0000_000006 -6: eb_0000000000000_0000_000004 -7: eb_0000000000000_0000_000007 +6: eb_0000000000000_0000_000007 +7: eb_0000000000000_0000_000005 8: eb_0000000000000_0000_000008 9: eb_0000000000000_0000_000009 10: eb_0000000000000_0000_000010 @@ -107,8 +107,8 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_partkey (INT4), num=32) SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= @@ -132,39 +132,47 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -GROUP_BY(27)(l_orderkey) - => exprs: (avg(default.e.l_quantity (FLOAT8))) - => target list: default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF) - => out schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - => in schema:{(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - TABLE_SUBQUERY(11) as default.e - => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) - => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - PROJECTION(3) - => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(26) on eb_0000000000000_0000_000002 - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(1) default.part.p_partkey (INT4)} - SCAN(25) on eb_0000000000000_0000_000001 - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} +TABLE_SUBQUERY(4) as default.b + => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + PROJECTION(3) + => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_linenumber (INT4) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + JOIN(20)(INNER) + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(26) on eb_0000000000000_0000_000002 + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(1) default.part.p_partkey (INT4)} + SCAN(25) on eb_0000000000000_0000_000001 + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000005 [LEAF] +Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) + +SCAN(5) on default.orders as c + => filter: default.c.o_orderkey (INT4) > 0 + => target list: default.c.o_orderkey (INT4) + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) SCAN(7) on default.lineitem as d => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) @@ -172,11 +180,11 @@ SCAN(7) on default.lineitem as d => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000006 [LEAF] +Block Id: eb_0000000000000_0000_000007 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) SCAN(8) on default.part => target list: default.part.p_partkey (INT4) @@ -184,106 +192,98 @@ SCAN(8) on default.part => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 4 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 5 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) -TABLE_SUBQUERY(14) as default.f - => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) - => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - PROJECTION(13) - => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - GROUP_BY(12)(l_orderkey) - => exprs: (avg(?avg_11 (PROTOBUF))) - => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - SCAN(28) on eb_0000000000000_0000_000003 - => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} +JOIN(22)(INNER) + => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) + => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + SCAN(28) on eb_0000000000000_0000_000004 + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(1) default.c.o_orderkey (INT4)} + SCAN(27) on eb_0000000000000_0000_000003 + => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} + => in schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} ======================================================= -Block Id: eb_0000000000000_0000_000007 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(4) as default.b - => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - PROJECTION(10) - => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - JOIN(20)(INNER) - => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) +GROUP_BY(31)(l_orderkey) + => exprs: (avg(default.e.l_quantity (FLOAT8))) + => target list: default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF) + => out schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + => in schema:{(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} + TABLE_SUBQUERY(11) as default.e + => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) + => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} + => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} + PROJECTION(10) + => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(30) on eb_0000000000000_0000_000006 - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(1) default.part.p_partkey (INT4)} - SCAN(29) on eb_0000000000000_0000_000005 - => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} - -======================================================= -Block Id: eb_0000000000000_0000_000008 [LEAF] -======================================================= - -[Outgoing] -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) - -SCAN(5) on default.orders as c - => filter: default.c.o_orderkey (INT4) > 0 - => target list: default.c.o_orderkey (INT4) - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + JOIN(21)(INNER) + => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(30) on eb_0000000000000_0000_000007 + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(1) default.part.p_partkey (INT4)} + SCAN(29) on eb_0000000000000_0000_000006 + => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) -JOIN(22)(INNER) - => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(32) on eb_0000000000000_0000_000008 - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(1) default.c.o_orderkey (INT4)} - SCAN(31) on eb_0000000000000_0000_000007 - => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} - => in schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} +TABLE_SUBQUERY(14) as default.f + => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) + => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + PROJECTION(13) + => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + GROUP_BY(12)(l_orderkey) + => exprs: (avg(?avg_11 (PROTOBUF))) + => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + SCAN(32) on eb_0000000000000_0000_000008 + => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} ======================================================= Block Id: eb_0000000000000_0000_000010 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 4 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 5 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=, num=1) @@ -301,11 +301,11 @@ GROUP_BY(35)() => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} SCAN(34) on eb_0000000000000_0000_000009 - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(33) on eb_0000000000000_0000_000004 => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + SCAN(33) on eb_0000000000000_0000_000005 + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000011 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan index 839afaf636..ec3578c220 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan @@ -12,33 +12,6 @@ GROUP_BY(18)() => target list: default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8) => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - JOIN(22)(INNER) - => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(5) on default.orders as c - => filter: default.c.o_orderkey (INT4) > 0 - => target list: default.c.o_orderkey (INT4) - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} - TABLE_SUBQUERY(4) as default.b - => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) - => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_partkey (INT4) - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} TABLE_SUBQUERY(14) as default.f => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} @@ -52,7 +25,7 @@ GROUP_BY(18)() => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - JOIN(20)(INNER) + JOIN(21)(INNER) => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} @@ -65,6 +38,33 @@ GROUP_BY(18)() => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} + JOIN(22)(INNER) + => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) + => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + SCAN(5) on default.orders as c + => filter: default.c.o_orderkey (INT4) > 0 + => target list: default.c.o_orderkey (INT4) + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + TABLE_SUBQUERY(4) as default.b + => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) + => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + JOIN(20)(INNER) + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_partkey (INT4) + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -73,27 +73,27 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) |-eb_0000000000000_0000_000012 |-eb_0000000000000_0000_000011 |-eb_0000000000000_0000_000010 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000008 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000003 +1: eb_0000000000000_0000_000008 2: eb_0000000000000_0000_000010 3: eb_0000000000000_0000_000011 4: eb_0000000000000_0000_000012 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000003 [LEAF] +Block Id: eb_0000000000000_0000_000008 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 3 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) [Enforcers] 0: type=Broadcast, tables=default.part -GROUP_BY(27)(l_orderkey) +GROUP_BY(31)(l_orderkey) => exprs: (avg(default.e.l_quantity (FLOAT8))) => target list: default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF) => out schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} @@ -102,38 +102,38 @@ GROUP_BY(27)(l_orderkey) => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - PROJECTION(3) - => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + PROJECTION(10) + => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(1) on default.part + => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(8) on default.part => target list: default.part.p_partkey (INT4) => out schema: {(1) default.part.p_partkey (INT4)} => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} + SCAN(7) on default.lineitem as d + => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000010 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=, num=1) [Enforcers] 0: type=Broadcast, tables=default.part - 1: type=Broadcast, tables=default.c - 2: type=Broadcast, tables=default.d + 1: type=Broadcast, tables=default.a + 2: type=Broadcast, tables=default.c GROUP_BY(35)() => exprs: (sum(default.b.l_quantity (FLOAT8))) @@ -147,6 +147,22 @@ GROUP_BY(35)() => target list: default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8) => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + TABLE_SUBQUERY(14) as default.f + => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) + => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + PROJECTION(13) + => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + GROUP_BY(12)(l_orderkey) + => exprs: (avg(?avg_11 (PROTOBUF))) + => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + SCAN(32) on eb_0000000000000_0000_000008 + => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} JOIN(22)(INNER) => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) @@ -160,40 +176,24 @@ GROUP_BY(35)() TABLE_SUBQUERY(4) as default.b => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - PROJECTION(10) - => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + PROJECTION(3) + => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_linenumber (INT4) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} JOIN(20)(INNER) - => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(8) on default.part + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(1) on default.part => target list: default.part.p_partkey (INT4) => out schema: {(1) default.part.p_partkey (INT4)} => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(7) on default.lineitem as d - => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} - TABLE_SUBQUERY(14) as default.f - => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) - => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - PROJECTION(13) - => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - GROUP_BY(12)(l_orderkey) - => exprs: (avg(?avg_11 (PROTOBUF))) - => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - SCAN(28) on eb_0000000000000_0000_000003 - => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000011 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort_NoBroadcast.plan index 797e842299..14f4bb489e 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort_NoBroadcast.plan @@ -12,33 +12,6 @@ GROUP_BY(18)() => target list: default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8) => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - JOIN(22)(INNER) - => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(5) on default.orders as c - => filter: default.c.o_orderkey (INT4) > 0 - => target list: default.c.o_orderkey (INT4) - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} - TABLE_SUBQUERY(4) as default.b - => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) - => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(1) on default.part - => target list: default.part.p_partkey (INT4) - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} TABLE_SUBQUERY(14) as default.f => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} @@ -52,7 +25,7 @@ GROUP_BY(18)() => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - JOIN(20)(INNER) + JOIN(21)(INNER) => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} @@ -65,6 +38,33 @@ GROUP_BY(18)() => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} + JOIN(22)(INNER) + => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) + => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + SCAN(5) on default.orders as c + => filter: default.c.o_orderkey (INT4) > 0 + => target list: default.c.o_orderkey (INT4) + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + TABLE_SUBQUERY(4) as default.b + => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) + => out schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + JOIN(20)(INNER) + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(1) on default.part + => target list: default.part.p_partkey (INT4) + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -75,10 +75,10 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) |-eb_0000000000000_0000_000010 |-eb_0000000000000_0000_000009 |-eb_0000000000000_0000_000008 - |-eb_0000000000000_0000_000007 + |-eb_0000000000000_0000_000007 |-eb_0000000000000_0000_000006 - |-eb_0000000000000_0000_000005 - |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 |-eb_0000000000000_0000_000001 @@ -88,10 +88,10 @@ Order of Execution 1: eb_0000000000000_0000_000001 2: eb_0000000000000_0000_000002 3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000005 +4: eb_0000000000000_0000_000004 5: eb_0000000000000_0000_000006 -6: eb_0000000000000_0000_000004 -7: eb_0000000000000_0000_000007 +6: eb_0000000000000_0000_000007 +7: eb_0000000000000_0000_000005 8: eb_0000000000000_0000_000008 9: eb_0000000000000_0000_000009 10: eb_0000000000000_0000_000010 @@ -107,8 +107,8 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] [q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_partkey (INT4), num=32) SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= @@ -132,39 +132,47 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -GROUP_BY(27)(l_orderkey) - => exprs: (avg(default.e.l_quantity (FLOAT8))) - => target list: default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF) - => out schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - => in schema:{(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - TABLE_SUBQUERY(11) as default.e - => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) - => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} - PROJECTION(3) - => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - JOIN(21)(INNER) - => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) - => out schema: {(2) default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(4) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(26) on eb_0000000000000_0000_000002 - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(1) default.part.p_partkey (INT4)} - SCAN(25) on eb_0000000000000_0000_000001 - => out schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} - => in schema: {(3) default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} +TABLE_SUBQUERY(4) as default.b + => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} + => in schema: {(3) default.b.l_linenumber (INT4), default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} + PROJECTION(3) + => Targets: default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_linenumber (INT4) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + JOIN(20)(INNER) + => Join Cond: default.a.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8) + => out schema: {(3) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(5) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(26) on eb_0000000000000_0000_000002 + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(1) default.part.p_partkey (INT4)} + SCAN(25) on eb_0000000000000_0000_000001 + => out schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} + => in schema: {(4) default.a.l_linenumber (INT4), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000005 [LEAF] +Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) + +SCAN(5) on default.orders as c + => filter: default.c.o_orderkey (INT4) > 0 + => target list: default.c.o_orderkey (INT4) + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) SCAN(7) on default.lineitem as d => target list: default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8) @@ -172,11 +180,11 @@ SCAN(7) on default.lineitem as d => in schema: {(16) default.d.l_comment (TEXT), default.d.l_commitdate (TEXT), default.d.l_discount (FLOAT8), default.d.l_extendedprice (FLOAT8), default.d.l_linenumber (INT4), default.d.l_linestatus (TEXT), default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.d.l_receiptdate (TEXT), default.d.l_returnflag (TEXT), default.d.l_shipdate (TEXT), default.d.l_shipinstruct (TEXT), default.d.l_shipmode (TEXT), default.d.l_suppkey (INT4), default.d.l_tax (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000006 [LEAF] +Block Id: eb_0000000000000_0000_000007 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) SCAN(8) on default.part => target list: default.part.p_partkey (INT4) @@ -184,106 +192,98 @@ SCAN(8) on default.part => in schema: {(9) default.part.p_brand (TEXT), default.part.p_comment (TEXT), default.part.p_container (TEXT), default.part.p_mfgr (TEXT), default.part.p_name (TEXT), default.part.p_partkey (INT4), default.part.p_retailprice (FLOAT8), default.part.p_size (INT4), default.part.p_type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 4 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 5 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) -TABLE_SUBQUERY(14) as default.f - => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) - => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} - PROJECTION(13) - => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - GROUP_BY(12)(l_orderkey) - => exprs: (avg(?avg_11 (PROTOBUF))) - => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) - => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} - => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - SCAN(28) on eb_0000000000000_0000_000003 - => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} - => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} +JOIN(22)(INNER) + => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) + => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + SCAN(28) on eb_0000000000000_0000_000004 + => out schema: {(1) default.c.o_orderkey (INT4)} + => in schema: {(1) default.c.o_orderkey (INT4)} + SCAN(27) on eb_0000000000000_0000_000003 + => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} + => in schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} ======================================================= -Block Id: eb_0000000000000_0000_000007 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) +[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.l_partkey (INT4), num=32) +[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(4) as default.b - => Targets: default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} - => in schema: {(2) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8)} - PROJECTION(10) - => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) - => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - JOIN(20)(INNER) - => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) - => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) +GROUP_BY(31)(l_orderkey) + => exprs: (avg(default.e.l_quantity (FLOAT8))) + => target list: default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF) + => out schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + => in schema:{(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} + TABLE_SUBQUERY(11) as default.e + => Targets: default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8) + => out schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} + => in schema: {(2) default.e.l_orderkey (INT4), default.e.l_quantity (FLOAT8)} + PROJECTION(10) + => Targets: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} - SCAN(30) on eb_0000000000000_0000_000006 - => out schema: {(1) default.part.p_partkey (INT4)} - => in schema: {(1) default.part.p_partkey (INT4)} - SCAN(29) on eb_0000000000000_0000_000005 - => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} - => in schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} - -======================================================= -Block Id: eb_0000000000000_0000_000008 [LEAF] -======================================================= - -[Outgoing] -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) - -SCAN(5) on default.orders as c - => filter: default.c.o_orderkey (INT4) > 0 - => target list: default.c.o_orderkey (INT4) - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + => in schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + JOIN(21)(INNER) + => Join Cond: default.d.l_partkey (INT4) = default.part.p_partkey (INT4) + => target list: default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8) + => out schema: {(2) default.d.l_orderkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(4) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8), default.part.p_partkey (INT4)} + SCAN(30) on eb_0000000000000_0000_000007 + => out schema: {(1) default.part.p_partkey (INT4)} + => in schema: {(1) default.part.p_partkey (INT4)} + SCAN(29) on eb_0000000000000_0000_000006 + => out schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} + => in schema: {(3) default.d.l_orderkey (INT4), default.d.l_partkey (INT4), default.d.l_quantity (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) -JOIN(22)(INNER) - => Join Cond: default.c.o_orderkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4) - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(3) default.b.l_orderkey (INT4), default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(32) on eb_0000000000000_0000_000008 - => out schema: {(1) default.c.o_orderkey (INT4)} - => in schema: {(1) default.c.o_orderkey (INT4)} - SCAN(31) on eb_0000000000000_0000_000007 - => out schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} - => in schema: {(2) default.b.l_quantity (FLOAT8), default.b.l_orderkey (INT4)} +TABLE_SUBQUERY(14) as default.f + => Targets: default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4) + => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + PROJECTION(13) + => Targets: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema: {(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + GROUP_BY(12)(l_orderkey) + => exprs: (avg(?avg_11 (PROTOBUF))) + => target list: default.e.l_orderkey (INT4), avg_quantity (FLOAT8) + => out schema:{(2) avg_quantity (FLOAT8), default.e.l_orderkey (INT4)} + => in schema:{(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + SCAN(32) on eb_0000000000000_0000_000008 + => out schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} + => in schema: {(2) default.e.l_orderkey (INT4), ?avg_11 (PROTOBUF)} ======================================================= Block Id: eb_0000000000000_0000_000010 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 4 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 5 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.f.l_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=, num=1) @@ -301,11 +301,11 @@ GROUP_BY(35)() => out schema: {(2) default.b.l_quantity (FLOAT8), default.f.avg_quantity (FLOAT8)} => in schema: {(4) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4), default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} SCAN(34) on eb_0000000000000_0000_000009 - => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - => in schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} - SCAN(33) on eb_0000000000000_0000_000004 => out schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)} + SCAN(33) on eb_0000000000000_0000_000005 + => out schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} + => in schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000011 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan index cfbb8497e1..195229d9ca 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan @@ -5,19 +5,6 @@ JOIN(14)(INNER) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -36,6 +23,19 @@ JOIN(14)(INNER) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -55,28 +55,15 @@ Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Enforcers] - 0: type=Broadcast, tables=default.r - 1: type=Broadcast, tables=default.ps - 2: type=Broadcast, tables=default.s + 0: type=Broadcast, tables=default.ps + 1: type=Broadcast, tables=default.s + 2: type=Broadcast, tables=default.r JOIN(14)(INNER) => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} @@ -99,6 +86,19 @@ JOIN(14)(INNER) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan index 06db6a234c..7d89fa2821 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan @@ -5,19 +5,6 @@ JOIN(14)(INNER) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -36,6 +23,19 @@ JOIN(14)(INNER) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -67,60 +67,83 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) -SCAN(0) on default.nation as n - => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) - => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) - => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} - => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} +SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -SCAN(1) on default.region as r - => target list: default.r.r_regionkey (INT4) - => out schema: {(1) default.r.r_regionkey (INT4)} - => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} +SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} +SCAN(0) on default.nation as n + => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) + => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) + => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000005 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) -SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} +SCAN(1) on default.region as r + => target list: default.r.r_regionkey (INT4) + => out schema: {(1) default.r.r_regionkey (INT4)} + => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) + +JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(17) on eb_0000000000000_0000_000002 + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(16) on eb_0000000000000_0000_000001 + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) @@ -135,43 +158,20 @@ TABLE_SUBQUERY(4) as default.t => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(5) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)} - SCAN(17) on eb_0000000000000_0000_000002 + SCAN(19) on eb_0000000000000_0000_000005 => out schema: {(1) default.r.r_regionkey (INT4)} => in schema: {(1) default.r.r_regionkey (INT4)} - SCAN(16) on eb_0000000000000_0000_000001 + SCAN(18) on eb_0000000000000_0000_000004 => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} -======================================================= -Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] -======================================================= - -[Incoming] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) - -[Outgoing] -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) - -JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(19) on eb_0000000000000_0000_000005 - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000004 - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - ======================================================= Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) JOIN(14)(INNER) => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4) @@ -179,11 +179,11 @@ JOIN(14)(INNER) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} SCAN(21) on eb_0000000000000_0000_000006 - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(20) on eb_0000000000000_0000_000003 => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} => in schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} + SCAN(20) on eb_0000000000000_0000_000003 + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan index cfbb8497e1..195229d9ca 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan @@ -5,19 +5,6 @@ JOIN(14)(INNER) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -36,6 +23,19 @@ JOIN(14)(INNER) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -55,28 +55,15 @@ Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Enforcers] - 0: type=Broadcast, tables=default.r - 1: type=Broadcast, tables=default.ps - 2: type=Broadcast, tables=default.s + 0: type=Broadcast, tables=default.ps + 1: type=Broadcast, tables=default.s + 2: type=Broadcast, tables=default.r JOIN(14)(INNER) => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} @@ -99,6 +86,19 @@ JOIN(14)(INNER) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan index 06db6a234c..7d89fa2821 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan @@ -5,19 +5,6 @@ JOIN(14)(INNER) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -36,6 +23,19 @@ JOIN(14)(INNER) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -67,60 +67,83 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) -SCAN(0) on default.nation as n - => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) - => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) - => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} - => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} +SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -SCAN(1) on default.region as r - => target list: default.r.r_regionkey (INT4) - => out schema: {(1) default.r.r_regionkey (INT4)} - => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} +SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} +SCAN(0) on default.nation as n + => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) + => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) + => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000005 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) -SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} +SCAN(1) on default.region as r + => target list: default.r.r_regionkey (INT4) + => out schema: {(1) default.r.r_regionkey (INT4)} + => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) + +JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(17) on eb_0000000000000_0000_000002 + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(16) on eb_0000000000000_0000_000001 + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) @@ -135,43 +158,20 @@ TABLE_SUBQUERY(4) as default.t => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(5) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)} - SCAN(17) on eb_0000000000000_0000_000002 + SCAN(19) on eb_0000000000000_0000_000005 => out schema: {(1) default.r.r_regionkey (INT4)} => in schema: {(1) default.r.r_regionkey (INT4)} - SCAN(16) on eb_0000000000000_0000_000001 + SCAN(18) on eb_0000000000000_0000_000004 => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} -======================================================= -Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] -======================================================= - -[Incoming] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) - -[Outgoing] -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) - -JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(19) on eb_0000000000000_0000_000005 - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000004 - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - ======================================================= Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) JOIN(14)(INNER) => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4) @@ -179,11 +179,11 @@ JOIN(14)(INNER) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} SCAN(21) on eb_0000000000000_0000_000006 - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(20) on eb_0000000000000_0000_000003 => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} => in schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} + SCAN(20) on eb_0000000000000_0000_000003 + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan index a9b08762af..8d739f6eb9 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan @@ -7,19 +7,6 @@ SELECTION(9) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -38,6 +25,19 @@ SELECTION(9) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -57,9 +57,9 @@ Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Enforcers] - 0: type=Broadcast, tables=default.r - 1: type=Broadcast, tables=default.ps - 2: type=Broadcast, tables=default.s + 0: type=Broadcast, tables=default.ps + 1: type=Broadcast, tables=default.s + 2: type=Broadcast, tables=default.r SELECTION(9) => Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4) @@ -68,19 +68,6 @@ SELECTION(9) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} @@ -103,6 +90,19 @@ SELECTION(9) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan index 67c3c6581f..d80eea026e 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan @@ -7,19 +7,6 @@ SELECTION(9) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -38,6 +25,19 @@ SELECTION(9) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -69,60 +69,83 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) -SCAN(0) on default.nation as n - => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) - => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) - => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} - => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} +SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -SCAN(1) on default.region as r - => target list: default.r.r_regionkey (INT4) - => out schema: {(1) default.r.r_regionkey (INT4)} - => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} +SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} +SCAN(0) on default.nation as n + => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) + => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) + => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000005 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) -SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} +SCAN(1) on default.region as r + => target list: default.r.r_regionkey (INT4) + => out schema: {(1) default.r.r_regionkey (INT4)} + => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) + +JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(17) on eb_0000000000000_0000_000002 + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(16) on eb_0000000000000_0000_000001 + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) @@ -137,43 +160,20 @@ TABLE_SUBQUERY(4) as default.t => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(5) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)} - SCAN(17) on eb_0000000000000_0000_000002 + SCAN(19) on eb_0000000000000_0000_000005 => out schema: {(1) default.r.r_regionkey (INT4)} => in schema: {(1) default.r.r_regionkey (INT4)} - SCAN(16) on eb_0000000000000_0000_000001 + SCAN(18) on eb_0000000000000_0000_000004 => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} -======================================================= -Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] -======================================================= - -[Incoming] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) - -[Outgoing] -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) - -JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(19) on eb_0000000000000_0000_000005 - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000004 - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - ======================================================= Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) SELECTION(9) => Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4) @@ -183,11 +183,11 @@ SELECTION(9) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} SCAN(21) on eb_0000000000000_0000_000006 - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(20) on eb_0000000000000_0000_000003 => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} => in schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} + SCAN(20) on eb_0000000000000_0000_000003 + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan index a9b08762af..8d739f6eb9 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan @@ -7,19 +7,6 @@ SELECTION(9) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -38,6 +25,19 @@ SELECTION(9) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -57,9 +57,9 @@ Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Enforcers] - 0: type=Broadcast, tables=default.r - 1: type=Broadcast, tables=default.ps - 2: type=Broadcast, tables=default.s + 0: type=Broadcast, tables=default.ps + 1: type=Broadcast, tables=default.s + 2: type=Broadcast, tables=default.r SELECTION(9) => Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4) @@ -68,19 +68,6 @@ SELECTION(9) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} @@ -103,6 +90,19 @@ SELECTION(9) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan index 67c3c6581f..d80eea026e 100644 --- a/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan @@ -7,19 +7,6 @@ SELECTION(9) => target list: default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} - JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} - SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) => out schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} @@ -38,6 +25,19 @@ SELECTION(9) => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} + SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -69,60 +69,83 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) -SCAN(0) on default.nation as n - => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) - => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) - => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} - => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} +SCAN(7) on default.partsupp as ps + => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -SCAN(1) on default.region as r - => target list: default.r.r_regionkey (INT4) - => out schema: {(1) default.r.r_regionkey (INT4)} - => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} +SCAN(5) on default.supplier as s + => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -SCAN(5) on default.supplier as s - => target list: default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(7) default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_nationkey (INT4), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)} +SCAN(0) on default.nation as n + => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO) + => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) + => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} + => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000005 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) -SCAN(7) on default.partsupp as ps - => target list: default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4) - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(5) default.ps.ps_availqty (INT4), default.ps.ps_comment (TEXT), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4), default.ps.ps_supplycost (FLOAT8)} +SCAN(1) on default.region as r + => target list: default.r.r_regionkey (INT4) + => out schema: {(1) default.r.r_regionkey (INT4)} + => in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) + +JOIN(13)(INNER) + => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) + => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(17) on eb_0000000000000_0000_000002 + => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + SCAN(16) on eb_0000000000000_0000_000001 + => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) TABLE_SUBQUERY(4) as default.t => Targets: default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT) @@ -137,43 +160,20 @@ TABLE_SUBQUERY(4) as default.t => target list: default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4) => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(5) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)} - SCAN(17) on eb_0000000000000_0000_000002 + SCAN(19) on eb_0000000000000_0000_000005 => out schema: {(1) default.r.r_regionkey (INT4)} => in schema: {(1) default.r.r_regionkey (INT4)} - SCAN(16) on eb_0000000000000_0000_000001 + SCAN(18) on eb_0000000000000_0000_000004 => out schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} => in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)} -======================================================= -Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] -======================================================= - -[Incoming] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32) - -[Outgoing] -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) - -JOIN(13)(INNER) - => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4) - => target list: default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4) - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(4) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(19) on eb_0000000000000_0000_000005 - => out schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - => in schema: {(2) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (INT4)} - SCAN(18) on eb_0000000000000_0000_000004 - => out schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(2) default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - ======================================================= Block Id: eb_0000000000000_0000_000007 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32) SELECTION(9) => Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4) @@ -183,11 +183,11 @@ SELECTION(9) => out schema: {(6) default.ps.ps_availqty (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} => in schema: {(7) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4), default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)} SCAN(21) on eb_0000000000000_0000_000006 - => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} - SCAN(20) on eb_0000000000000_0000_000003 => out schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} => in schema: {(4) default.t.n_nationkey (INT4), default.t.n_name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)} + SCAN(20) on eb_0000000000000_0000_000003 + => out schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} + => in schema: {(3) default.ps.ps_availqty (INT4), default.s.s_nationkey (INT4), default.s.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin6.result b/tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin6.result new file mode 100644 index 0000000000..37a6d1e0ea --- /dev/null +++ b/tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin6.result @@ -0,0 +1,5 @@ +s_acctbal,s_name,p_partkey,n_name +------------------------------- +4032.68,Supplier#000000002,1,ETHIOPIA +4192.4,Supplier#000000003,2,ARGENTINA +4641.08,Supplier#000000004,3,MOROCCO \ No newline at end of file diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan index 4ded90a1df..6bec7f24e7 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan @@ -16,14 +16,14 @@ SORT(5) => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -67,14 +67,14 @@ SORT(15) => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash_NoBroadcast.plan index e504af38e0..5cba003266 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash_NoBroadcast.plan @@ -16,14 +16,14 @@ SORT(5) => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,32 +53,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) @@ -89,11 +89,11 @@ JOIN(8)(INNER) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(12) on eb_0000000000000_0000_000002 - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - SCAN(11) on eb_0000000000000_0000_000001 => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(11) on eb_0000000000000_0000_000001 + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan index 4ded90a1df..6bec7f24e7 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan @@ -16,14 +16,14 @@ SORT(5) => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -67,14 +67,14 @@ SORT(15) => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort_NoBroadcast.plan index e504af38e0..5cba003266 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort_NoBroadcast.plan @@ -16,14 +16,14 @@ SORT(5) => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} SCAN(0) on default.region => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,32 +53,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) -SCAN(0) on default.region - => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) - => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} - => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +SCAN(1) on default.nation + => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -SCAN(1) on default.nation - => target list: default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4) - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} +SCAN(0) on default.region + => target list: default.region.r_name (TEXT), default.region.r_regionkey (INT4) + => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32) @@ -89,11 +89,11 @@ JOIN(8)(INNER) => out schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)} => in schema: {(4) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} SCAN(12) on eb_0000000000000_0000_000002 - => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - => in schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} - SCAN(11) on eb_0000000000000_0000_000001 => out schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} => in schema: {(2) default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + SCAN(11) on eb_0000000000000_0000_000001 + => out schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + => in schema: {(2) default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan index 1d5762f6e3..ceb96f9959 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan @@ -15,14 +15,14 @@ JOIN(8)(LEFT_OUTER) => target list: default.a.l_orderkey (INT4), default.b.o_orderkey (INT4) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} SCAN(1) on default.orders as b => target list: default.b.o_orderkey (INT4) => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -60,14 +60,14 @@ JOIN(8)(LEFT_OUTER) => target list: default.a.l_orderkey (INT4), default.b.o_orderkey (INT4) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} SCAN(1) on default.orders as b => target list: default.b.o_orderkey (INT4) => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000006 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash_NoBroadcast.plan index ba9a319372..f1fa414673 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash_NoBroadcast.plan @@ -15,14 +15,14 @@ JOIN(8)(LEFT_OUTER) => target list: default.a.l_orderkey (INT4), default.b.o_orderkey (INT4) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} SCAN(1) on default.orders as b => target list: default.b.o_orderkey (INT4) => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -50,32 +50,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -SCAN(1) on default.orders as b - => target list: default.b.o_orderkey (INT4) - => out schema: {(1) default.b.o_orderkey (INT4)} - => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} +SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) -SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} +SCAN(1) on default.orders as b + => target list: default.b.o_orderkey (INT4) + => out schema: {(1) default.b.o_orderkey (INT4)} + => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) @@ -86,11 +86,11 @@ JOIN(7)(INNER) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} SCAN(12) on eb_0000000000000_0000_000002 - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(1) default.a.l_orderkey (INT4)} - SCAN(11) on eb_0000000000000_0000_000001 => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(1) default.b.o_orderkey (INT4)} + SCAN(11) on eb_0000000000000_0000_000001 + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(1) default.a.l_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan index 1d5762f6e3..ceb96f9959 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan @@ -15,14 +15,14 @@ JOIN(8)(LEFT_OUTER) => target list: default.a.l_orderkey (INT4), default.b.o_orderkey (INT4) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} SCAN(1) on default.orders as b => target list: default.b.o_orderkey (INT4) => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -60,14 +60,14 @@ JOIN(8)(LEFT_OUTER) => target list: default.a.l_orderkey (INT4), default.b.o_orderkey (INT4) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} SCAN(1) on default.orders as b => target list: default.b.o_orderkey (INT4) => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000006 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort_NoBroadcast.plan index ba9a319372..f1fa414673 100644 --- a/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort_NoBroadcast.plan @@ -15,14 +15,14 @@ JOIN(8)(LEFT_OUTER) => target list: default.a.l_orderkey (INT4), default.b.o_orderkey (INT4) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} - SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} SCAN(1) on default.orders as b => target list: default.b.o_orderkey (INT4) => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} + SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -50,32 +50,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -SCAN(1) on default.orders as b - => target list: default.b.o_orderkey (INT4) - => out schema: {(1) default.b.o_orderkey (INT4)} - => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} +SCAN(0) on default.lineitem as a + => target list: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) -SCAN(0) on default.lineitem as a - => target list: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} +SCAN(1) on default.orders as b + => target list: default.b.o_orderkey (INT4) + => out schema: {(1) default.b.o_orderkey (INT4)} + => in schema: {(9) default.b.o_clerk (TEXT), default.b.o_comment (TEXT), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4), default.b.o_orderpriority (TEXT), default.b.o_orderstatus (TEXT), default.b.o_shippriority (INT4), default.b.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) @@ -86,11 +86,11 @@ JOIN(7)(INNER) => out schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.o_orderkey (INT4)} SCAN(12) on eb_0000000000000_0000_000002 - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(1) default.a.l_orderkey (INT4)} - SCAN(11) on eb_0000000000000_0000_000001 => out schema: {(1) default.b.o_orderkey (INT4)} => in schema: {(1) default.b.o_orderkey (INT4)} + SCAN(11) on eb_0000000000000_0000_000001 + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(1) default.a.l_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan index 9fbfec508a..eab9940ec5 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.orders => target list: default.orders.o_orderkey (INT4) => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,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.customer.c_custkey (INT4), num=32) -SCAN(0) on default.orders - => target list: default.orders.o_orderkey (INT4) - => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.orders + => target list: default.orders.o_orderkey (INT4) + => out schema: {(1) 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.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.orders.o_orderkey (INT4)} => in schema: {(1) default.orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan index 9fbfec508a..eab9940ec5 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.orders => target list: default.orders.o_orderkey (INT4) => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,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.customer.c_custkey (INT4), num=32) -SCAN(0) on default.orders - => target list: default.orders.o_orderkey (INT4) - => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.orders + => target list: default.orders.o_orderkey (INT4) + => out schema: {(1) 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.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.orders.o_orderkey (INT4)} => in schema: {(1) default.orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan index 9fbfec508a..eab9940ec5 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.orders => target list: default.orders.o_orderkey (INT4) => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,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.customer.c_custkey (INT4), num=32) -SCAN(0) on default.orders - => target list: default.orders.o_orderkey (INT4) - => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.orders + => target list: default.orders.o_orderkey (INT4) + => out schema: {(1) 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.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.orders.o_orderkey (INT4)} => in schema: {(1) default.orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan index 9fbfec508a..eab9940ec5 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.orders => target list: default.orders.o_orderkey (INT4) => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,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.customer.c_custkey (INT4), num=32) -SCAN(0) on default.orders - => target list: default.orders.o_orderkey (INT4) - => out schema: {(1) 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(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.orders + => target list: default.orders.o_orderkey (INT4) + => out schema: {(1) 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.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.orders.o_orderkey (INT4)} => in schema: {(1) default.orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash.plan index fa727c0009..25f5eeb65b 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} - SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(1) on default.jointable13 as t3 => target list: default.t3.id (INT4) => out schema: {(1) default.t3.id (INT4)} => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,12 +53,12 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -77,35 +77,35 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(12) on eb_0000000000000_0000_000002 => out schema: {(1) default.t3.id (INT4)} => in schema: {(1) default.t3.id (INT4)} SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(1) default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] @@ -113,7 +113,7 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] [Incoming] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.t4.id (INT4), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(1) default.t4.id (INT4)} + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan index fa727c0009..25f5eeb65b 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} - SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(1) on default.jointable13 as t3 => target list: default.t3.id (INT4) => out schema: {(1) default.t3.id (INT4)} => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,12 +53,12 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -77,35 +77,35 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(12) on eb_0000000000000_0000_000002 => out schema: {(1) default.t3.id (INT4)} => in schema: {(1) default.t3.id (INT4)} SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(1) default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] @@ -113,7 +113,7 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] [Incoming] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.t4.id (INT4), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(1) default.t4.id (INT4)} + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort.plan index fa727c0009..25f5eeb65b 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} - SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(1) on default.jointable13 as t3 => target list: default.t3.id (INT4) => out schema: {(1) default.t3.id (INT4)} => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,12 +53,12 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -77,35 +77,35 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(12) on eb_0000000000000_0000_000002 => out schema: {(1) default.t3.id (INT4)} => in schema: {(1) default.t3.id (INT4)} SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(1) default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] @@ -113,7 +113,7 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] [Incoming] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.t4.id (INT4), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(1) default.t4.id (INT4)} + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan index fa727c0009..25f5eeb65b 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} - SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(1) on default.jointable13 as t3 => target list: default.t3.id (INT4) => out schema: {(1) default.t3.id (INT4)} => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -53,12 +53,12 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(3) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] @@ -77,35 +77,35 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) [q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) JOIN(8)(FULL_OUTER) - => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => target list: default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} SCAN(12) on eb_0000000000000_0000_000002 => out schema: {(1) default.t3.id (INT4)} => in schema: {(1) default.t3.id (INT4)} SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(1) default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable14 as t4 - => target list: default.t4.id (INT4) - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] @@ -113,7 +113,7 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] [Incoming] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.t4.id (INT4), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.t4.id (INT4) (asc) JOIN(9)(FULL_OUTER) - => Join Cond: default.t3.id (INT4) = default.t4.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t4.id (INT4)} - => in schema: {(1) default.t4.id (INT4)} + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4)} + => out schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t4.id (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash.plan index 580a217f55..ae57b835de 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(0) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash_NoBroadcast.plan index 580a217f55..ae57b835de 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(0) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort.plan index 580a217f55..ae57b835de 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(0) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort_NoBroadcast.plan index 580a217f55..ae57b835de 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort_NoBroadcast.plan @@ -7,14 +7,14 @@ SORT(3) => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} - SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} SCAN(0) on default.empty_orders => target list: default.empty_orders.o_orderkey (INT4) => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) -SCAN(0) on default.empty_orders - => target list: default.empty_orders.o_orderkey (INT4) - => out schema: {(1) default.empty_orders.o_orderkey (INT4)} - => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +SCAN(1) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -SCAN(1) on default.customer - => target list: default.customer.c_custkey (INT4) - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(0) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) @@ -78,11 +78,11 @@ SORT(10) => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(1) default.customer.c_custkey (INT4)} - => in schema: {(1) default.customer.c_custkey (INT4)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(1) default.empty_orders.o_orderkey (INT4)} => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan index 2418b98008..a688177610 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan @@ -28,27 +28,27 @@ JOIN(17)(LEFT_OUTER) => out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)} => in schema: {(9) default.d.o_clerk (TEXT), default.d.o_comment (TEXT), default.d.o_custkey (INT4), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.d.o_orderpriority (TEXT), default.d.o_orderstatus (TEXT), default.d.o_shippriority (INT4), default.d.o_totalprice (FLOAT8)} JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} SCAN(1) on default.lineitem as b => target list: default.b.l_orderkey (INT4) => out schema: {(1) default.b.l_orderkey (INT4)} => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -56,23 +56,65 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) ------------------------------------------------------------------------------- |-eb_0000000000000_0000_000012 |-eb_0000000000000_0000_000011 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000011 -2: eb_0000000000000_0000_000012 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000011 +4: eb_0000000000000_0000_000012 ------------------------------------------------------------------------------- +======================================================= +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 11 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) + +SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 11 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.c + +JOIN(13)(LEFT_OUTER) + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + SCAN(1) on default.lineitem as b + => target list: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + ======================================================= Block Id: eb_0000000000000_0000_000011 [ROOT] ======================================================= +[Incoming] +[q_0000000000000_0000] 1 => 11 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) +[q_0000000000000_0000] 4 => 11 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) + [Enforcers] 0: type=Broadcast, tables=default.e - 1: type=Broadcast, tables=default.b - 2: type=Broadcast, tables=default.c - 3: type=Broadcast, tables=default.d - 4: type=Broadcast, tables=default.f + 1: type=Broadcast, tables=default.d + 2: type=Broadcast, tables=default.f JOIN(17)(LEFT_OUTER) => Join Cond: default.f.p_partkey (INT4) = default.d.o_orderkey (INT4) @@ -102,27 +144,16 @@ JOIN(17)(LEFT_OUTER) => out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)} => in schema: {(9) default.d.o_clerk (TEXT), default.d.o_comment (TEXT), default.d.o_custkey (INT4), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.d.o_orderpriority (TEXT), default.d.o_orderstatus (TEXT), default.d.o_shippriority (INT4), default.d.o_totalprice (FLOAT8)} JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} - JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - SCAN(1) on default.lineitem as b - => target list: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + SCAN(22) on eb_0000000000000_0000_000004 + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + SCAN(21) on eb_0000000000000_0000_000001 + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000012 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan index 142b778410..04d0ae6e28 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan @@ -28,27 +28,27 @@ JOIN(17)(LEFT_OUTER) => out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)} => in schema: {(9) default.d.o_clerk (TEXT), default.d.o_comment (TEXT), default.d.o_custkey (INT4), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.d.o_orderpriority (TEXT), default.d.o_orderstatus (TEXT), default.d.o_shippriority (INT4), default.d.o_totalprice (FLOAT8)} JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} SCAN(1) on default.lineitem as b => target list: default.b.l_orderkey (INT4) => out schema: {(1) default.b.l_orderkey (INT4)} => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -63,16 +63,16 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 @@ -84,86 +84,86 @@ Order of Execution ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} +SCAN(1) on default.lineitem as b + => target list: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) -SCAN(1) on default.lineitem as b - => target list: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} +SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - SCAN(20) on eb_0000000000000_0000_000002 + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(20) on eb_0000000000000_0000_000003 + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(19) on eb_0000000000000_0000_000002 => out schema: {(1) default.b.l_orderkey (INT4)} => in schema: {(1) default.b.l_orderkey (INT4)} - SCAN(19) on eb_0000000000000_0000_000001 - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) -SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} +SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} SCAN(22) on eb_0000000000000_0000_000004 - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(21) on eb_0000000000000_0000_000003 - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + SCAN(21) on eb_0000000000000_0000_000001 + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan index 2418b98008..a688177610 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan @@ -28,27 +28,27 @@ JOIN(17)(LEFT_OUTER) => out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)} => in schema: {(9) default.d.o_clerk (TEXT), default.d.o_comment (TEXT), default.d.o_custkey (INT4), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.d.o_orderpriority (TEXT), default.d.o_orderstatus (TEXT), default.d.o_shippriority (INT4), default.d.o_totalprice (FLOAT8)} JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} SCAN(1) on default.lineitem as b => target list: default.b.l_orderkey (INT4) => out schema: {(1) default.b.l_orderkey (INT4)} => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -56,23 +56,65 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) ------------------------------------------------------------------------------- |-eb_0000000000000_0000_000012 |-eb_0000000000000_0000_000011 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000011 -2: eb_0000000000000_0000_000012 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000011 +4: eb_0000000000000_0000_000012 ------------------------------------------------------------------------------- +======================================================= +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 11 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) + +SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 11 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.c + +JOIN(13)(LEFT_OUTER) + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + SCAN(1) on default.lineitem as b + => target list: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + ======================================================= Block Id: eb_0000000000000_0000_000011 [ROOT] ======================================================= +[Incoming] +[q_0000000000000_0000] 1 => 11 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) +[q_0000000000000_0000] 4 => 11 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) + [Enforcers] 0: type=Broadcast, tables=default.e - 1: type=Broadcast, tables=default.b - 2: type=Broadcast, tables=default.c - 3: type=Broadcast, tables=default.d - 4: type=Broadcast, tables=default.f + 1: type=Broadcast, tables=default.d + 2: type=Broadcast, tables=default.f JOIN(17)(LEFT_OUTER) => Join Cond: default.f.p_partkey (INT4) = default.d.o_orderkey (INT4) @@ -102,27 +144,16 @@ JOIN(17)(LEFT_OUTER) => out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)} => in schema: {(9) default.d.o_clerk (TEXT), default.d.o_comment (TEXT), default.d.o_custkey (INT4), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.d.o_orderpriority (TEXT), default.d.o_orderstatus (TEXT), default.d.o_shippriority (INT4), default.d.o_totalprice (FLOAT8)} JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} - JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - SCAN(1) on default.lineitem as b - => target list: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + SCAN(22) on eb_0000000000000_0000_000004 + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + SCAN(21) on eb_0000000000000_0000_000001 + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000012 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan index 142b778410..04d0ae6e28 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan @@ -28,27 +28,27 @@ JOIN(17)(LEFT_OUTER) => out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)} => in schema: {(9) default.d.o_clerk (TEXT), default.d.o_comment (TEXT), default.d.o_custkey (INT4), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.d.o_orderpriority (TEXT), default.d.o_orderstatus (TEXT), default.d.o_shippriority (INT4), default.d.o_totalprice (FLOAT8)} JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} SCAN(1) on default.lineitem as b => target list: default.b.l_orderkey (INT4) => out schema: {(1) default.b.l_orderkey (INT4)} => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} + SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -63,16 +63,16 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 @@ -84,86 +84,86 @@ Order of Execution ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -SCAN(0) on default.customer as a - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} +SCAN(1) on default.lineitem as b + => target list: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) -SCAN(1) on default.lineitem as b - => target list: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} +SCAN(3) on default.orders as c + => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) JOIN(13)(LEFT_OUTER) - => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) - => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4) - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - SCAN(20) on eb_0000000000000_0000_000002 + => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => target list: default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(3) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(20) on eb_0000000000000_0000_000003 + => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + SCAN(19) on eb_0000000000000_0000_000002 => out schema: {(1) default.b.l_orderkey (INT4)} => in schema: {(1) default.b.l_orderkey (INT4)} - SCAN(19) on eb_0000000000000_0000_000001 - => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} - => in schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) -SCAN(3) on default.orders as c - => target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4) - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(9) default.c.o_clerk (TEXT), default.c.o_comment (TEXT), default.c.o_custkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4), default.c.o_orderpriority (TEXT), default.c.o_orderstatus (TEXT), default.c.o_shippriority (INT4), default.c.o_totalprice (FLOAT8)} +SCAN(0) on default.customer as a + => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4) + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(8) default.a.c_acctbal (FLOAT8), default.a.c_address (TEXT), default.a.c_comment (TEXT), default.a.c_custkey (INT4), default.a.c_mktsegment (TEXT), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.a.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32) JOIN(14)(LEFT_OUTER) - => Join Cond: default.b.l_orderkey (INT4) = default.c.o_orderkey (INT4) + => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4) => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT) => out schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} - => in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} + => in schema: {(5) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} SCAN(22) on eb_0000000000000_0000_000004 - => out schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - => in schema: {(2) default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)} - SCAN(21) on eb_0000000000000_0000_000003 - => out schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} - => in schema: {(4) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.l_orderkey (INT4)} + => out schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + => in schema: {(2) default.b.l_orderkey (INT4), default.c.o_orderdate (TEXT)} + SCAN(21) on eb_0000000000000_0000_000001 + => out schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} + => in schema: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan index f5e05867a5..e3bb20c157 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -38,21 +38,63 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) ------------------------------------------------------------------------------- |-eb_0000000000000_0000_000008 |-eb_0000000000000_0000_000007 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000007 -2: eb_0000000000000_0000_000008 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000007 +4: eb_0000000000000_0000_000008 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000007 [ROOT] +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + ======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Enforcers] 0: type=Broadcast, tables=default.t3 - 1: type=Broadcast, tables=default.t2 - 2: type=Broadcast, tables=default.t4 + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000007 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.t4 JOIN(11)(INNER) => Join Cond: default.t2.id (INT4) = default.t4.id (INT4) @@ -64,27 +106,16 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(16) on eb_0000000000000_0000_000004 + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan index 1af94bcc01..d4104e3577 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -41,16 +41,16 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 @@ -58,86 +58,86 @@ Order of Execution ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(14) on eb_0000000000000_0000_000002 + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000003 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000002 => out schema: {(1) default.t2.id (INT4)} => in schema: {(1) default.t2.id (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} SCAN(16) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(1) default.t3.id (INT4)} - SCAN(15) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan index f5e05867a5..e3bb20c157 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -38,21 +38,63 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) ------------------------------------------------------------------------------- |-eb_0000000000000_0000_000008 |-eb_0000000000000_0000_000007 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000007 -2: eb_0000000000000_0000_000008 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000007 +4: eb_0000000000000_0000_000008 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000007 [ROOT] +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + ======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Enforcers] 0: type=Broadcast, tables=default.t3 - 1: type=Broadcast, tables=default.t2 - 2: type=Broadcast, tables=default.t4 + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000007 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.t4 JOIN(11)(INNER) => Join Cond: default.t2.id (INT4) = default.t4.id (INT4) @@ -64,27 +106,16 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(16) on eb_0000000000000_0000_000004 + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan index 1af94bcc01..d4104e3577 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -41,16 +41,16 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 @@ -58,86 +58,86 @@ Order of Execution ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(14) on eb_0000000000000_0000_000002 + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000003 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000002 => out schema: {(1) default.t2.id (INT4)} => in schema: {(1) default.t2.id (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} SCAN(16) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(1) default.t3.id (INT4)} - SCAN(15) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan index 08ded3e096..b3360324d9 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -32,49 +32,78 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000007 |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000005 -2: eb_0000000000000_0000_000006 -3: eb_0000000000000_0000_000007 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000005 +4: eb_0000000000000_0000_000006 +5: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000005 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) + +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Enforcers] - 0: type=Broadcast, tables=default.b - 1: type=Broadcast, tables=default.c + 0: type=Broadcast, tables=default.c + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} - JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(14) on eb_0000000000000_0000_000004 + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan index e864dc970b..02d893c992 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -33,87 +33,87 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} +SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) -SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} +SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(12) on eb_0000000000000_0000_000002 + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + SCAN(11) on eb_0000000000000_0000_000002 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan index 08ded3e096..b3360324d9 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -32,49 +32,78 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000007 |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000005 -2: eb_0000000000000_0000_000006 -3: eb_0000000000000_0000_000007 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000005 +4: eb_0000000000000_0000_000006 +5: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000005 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) + +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Enforcers] - 0: type=Broadcast, tables=default.b - 1: type=Broadcast, tables=default.c + 0: type=Broadcast, tables=default.c + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} - JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(14) on eb_0000000000000_0000_000004 + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan index e864dc970b..02d893c992 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -33,87 +33,87 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} +SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) -SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} +SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(12) on eb_0000000000000_0000_000002 + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + SCAN(11) on eb_0000000000000_0000_000002 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash.plan index 41aa1083e4..795c011a4e 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash.plan @@ -5,15 +5,6 @@ JOIN(11)(FULL_OUTER) => target list: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} - TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(4) on default.lineitem - => filter: default.lineitem.l_orderkey (INT4) < 0 - => target list: 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) - => out 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)} - => 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)} TABLE_SUBQUERY(3) as default.a => Targets: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} @@ -23,6 +14,15 @@ JOIN(11)(FULL_OUTER) => target list: 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) => out 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)} => 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)} + TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + SCAN(4) on default.lineitem + => filter: default.lineitem.l_orderkey (INT4) < 0 + => target list: 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) + => out 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)} + => 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 ------------------------------- ------------------------------------------------------------------------------- @@ -46,17 +46,17 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(3) as default.a - => Targets: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} - PROJECTION(2) +TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + PROJECTION(6) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(0) on default.lineitem + SCAN(4) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -67,17 +67,17 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - PROJECTION(6) +TABLE_SUBQUERY(3) as default.a + => Targets: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} + PROJECTION(2) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(4) on default.lineitem + SCAN(0) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -88,8 +88,8 @@ Block Id: eb_0000000000000_0000_000003 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) JOIN(11)(FULL_OUTER) => Join Cond: default.a.l_orderkey (INT4) = default.b.l_orderkey (INT4) @@ -97,11 +97,11 @@ JOIN(11)(FULL_OUTER) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} SCAN(14) on eb_0000000000000_0000_000002 - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(1) default.b.l_orderkey (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(1) default.a.l_orderkey (INT4)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(1) default.b.l_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash_NoBroadcast.plan index 41aa1083e4..795c011a4e 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash_NoBroadcast.plan @@ -5,15 +5,6 @@ JOIN(11)(FULL_OUTER) => target list: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} - TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(4) on default.lineitem - => filter: default.lineitem.l_orderkey (INT4) < 0 - => target list: 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) - => out 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)} - => 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)} TABLE_SUBQUERY(3) as default.a => Targets: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} @@ -23,6 +14,15 @@ JOIN(11)(FULL_OUTER) => target list: 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) => out 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)} => 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)} + TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + SCAN(4) on default.lineitem + => filter: default.lineitem.l_orderkey (INT4) < 0 + => target list: 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) + => out 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)} + => 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 ------------------------------- ------------------------------------------------------------------------------- @@ -46,17 +46,17 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(3) as default.a - => Targets: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} - PROJECTION(2) +TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + PROJECTION(6) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(0) on default.lineitem + SCAN(4) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -67,17 +67,17 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - PROJECTION(6) +TABLE_SUBQUERY(3) as default.a + => Targets: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} + PROJECTION(2) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(4) on default.lineitem + SCAN(0) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -88,8 +88,8 @@ Block Id: eb_0000000000000_0000_000003 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) JOIN(11)(FULL_OUTER) => Join Cond: default.a.l_orderkey (INT4) = default.b.l_orderkey (INT4) @@ -97,11 +97,11 @@ JOIN(11)(FULL_OUTER) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} SCAN(14) on eb_0000000000000_0000_000002 - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(1) default.b.l_orderkey (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(1) default.a.l_orderkey (INT4)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(1) default.b.l_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort.plan index 41aa1083e4..795c011a4e 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort.plan @@ -5,15 +5,6 @@ JOIN(11)(FULL_OUTER) => target list: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} - TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(4) on default.lineitem - => filter: default.lineitem.l_orderkey (INT4) < 0 - => target list: 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) - => out 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)} - => 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)} TABLE_SUBQUERY(3) as default.a => Targets: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} @@ -23,6 +14,15 @@ JOIN(11)(FULL_OUTER) => target list: 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) => out 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)} => 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)} + TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + SCAN(4) on default.lineitem + => filter: default.lineitem.l_orderkey (INT4) < 0 + => target list: 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) + => out 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)} + => 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 ------------------------------- ------------------------------------------------------------------------------- @@ -46,17 +46,17 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(3) as default.a - => Targets: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} - PROJECTION(2) +TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + PROJECTION(6) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(0) on default.lineitem + SCAN(4) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -67,17 +67,17 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - PROJECTION(6) +TABLE_SUBQUERY(3) as default.a + => Targets: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} + PROJECTION(2) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(4) on default.lineitem + SCAN(0) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -88,8 +88,8 @@ Block Id: eb_0000000000000_0000_000003 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) JOIN(11)(FULL_OUTER) => Join Cond: default.a.l_orderkey (INT4) = default.b.l_orderkey (INT4) @@ -97,11 +97,11 @@ JOIN(11)(FULL_OUTER) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} SCAN(14) on eb_0000000000000_0000_000002 - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(1) default.b.l_orderkey (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(1) default.a.l_orderkey (INT4)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(1) default.b.l_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort_NoBroadcast.plan index 41aa1083e4..795c011a4e 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort_NoBroadcast.plan @@ -5,15 +5,6 @@ JOIN(11)(FULL_OUTER) => target list: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} - TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - SCAN(4) on default.lineitem - => filter: default.lineitem.l_orderkey (INT4) < 0 - => target list: 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) - => out 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)} - => 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)} TABLE_SUBQUERY(3) as default.a => Targets: default.a.l_orderkey (INT4) => out schema: {(1) default.a.l_orderkey (INT4)} @@ -23,6 +14,15 @@ JOIN(11)(FULL_OUTER) => target list: 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) => out 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)} => 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)} + TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + SCAN(4) on default.lineitem + => filter: default.lineitem.l_orderkey (INT4) < 0 + => target list: 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) + => out 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)} + => 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 ------------------------------- ------------------------------------------------------------------------------- @@ -46,17 +46,17 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(3) as default.a - => Targets: default.a.l_orderkey (INT4) - => out schema: {(1) default.a.l_orderkey (INT4)} - => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} - PROJECTION(2) +TABLE_SUBQUERY(7) as default.b + => Targets: default.b.l_orderkey (INT4) + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} + PROJECTION(6) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(0) on default.lineitem + SCAN(4) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -67,17 +67,17 @@ Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -TABLE_SUBQUERY(7) as default.b - => Targets: default.b.l_orderkey (INT4) - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(16) default.b.l_comment (TEXT), default.b.l_commitdate (TEXT), default.b.l_discount (FLOAT8), default.b.l_extendedprice (FLOAT8), default.b.l_linenumber (INT4), default.b.l_linestatus (TEXT), default.b.l_orderkey (INT4), default.b.l_partkey (INT4), default.b.l_quantity (FLOAT8), default.b.l_receiptdate (TEXT), default.b.l_returnflag (TEXT), default.b.l_shipdate (TEXT), default.b.l_shipinstruct (TEXT), default.b.l_shipmode (TEXT), default.b.l_suppkey (INT4), default.b.l_tax (FLOAT8)} - PROJECTION(6) +TABLE_SUBQUERY(3) as default.a + => Targets: default.a.l_orderkey (INT4) + => out schema: {(1) default.a.l_orderkey (INT4)} + => in schema: {(16) default.a.l_comment (TEXT), default.a.l_commitdate (TEXT), default.a.l_discount (FLOAT8), default.a.l_extendedprice (FLOAT8), default.a.l_linenumber (INT4), default.a.l_linestatus (TEXT), default.a.l_orderkey (INT4), default.a.l_partkey (INT4), default.a.l_quantity (FLOAT8), default.a.l_receiptdate (TEXT), default.a.l_returnflag (TEXT), default.a.l_shipdate (TEXT), default.a.l_shipinstruct (TEXT), default.a.l_shipmode (TEXT), default.a.l_suppkey (INT4), default.a.l_tax (FLOAT8)} + PROJECTION(2) => Targets: default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_linenumber (INT4), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (TEXT), default.lineitem.l_commitdate (TEXT), default.lineitem.l_receiptdate (TEXT), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT) => out 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)} => 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(4) on default.lineitem + SCAN(0) on default.lineitem => filter: default.lineitem.l_orderkey (INT4) < 0 => target list: 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) => out 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)} @@ -88,8 +88,8 @@ Block Id: eb_0000000000000_0000_000003 [ROOT] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32) JOIN(11)(FULL_OUTER) => Join Cond: default.a.l_orderkey (INT4) = default.b.l_orderkey (INT4) @@ -97,11 +97,11 @@ JOIN(11)(FULL_OUTER) => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(2) default.a.l_orderkey (INT4), default.b.l_orderkey (INT4)} SCAN(14) on eb_0000000000000_0000_000002 - => out schema: {(1) default.b.l_orderkey (INT4)} - => in schema: {(1) default.b.l_orderkey (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 => out schema: {(1) default.a.l_orderkey (INT4)} => in schema: {(1) default.a.l_orderkey (INT4)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(1) default.b.l_orderkey (INT4)} + => in schema: {(1) default.b.l_orderkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [TERMINAL] diff --git a/tajo-core/src/test/resources/results/TestSelectQuery/testExplainSelectPhysical.2.result b/tajo-core/src/test/resources/results/TestSelectQuery/testExplainSelectPhysical.2.result index c0f306723b..6135220bd8 100644 --- a/tajo-core/src/test/resources/results/TestSelectQuery/testExplainSelectPhysical.2.result +++ b/tajo-core/src/test/resources/results/TestSelectQuery/testExplainSelectPhysical.2.result @@ -23,32 +23,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_nationkey (INT4), default.n1.n_name (TEXT) - => out schema: {(2) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT)} - => in schema: {(4) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT), default.n1.n_regionkey (INT4), default.n1.n_comment (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) default.n2.n_name (TEXT), ?upper_1 (TEXT)} + => in schema: {(4) default.n2.n_nationkey (INT4), default.n2.n_name (TEXT), default.n2.n_regionkey (INT4), default.n2.n_comment (TEXT)} ======================================================= 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) default.n2.n_name (TEXT), ?upper_1 (TEXT)} - => in schema: {(4) default.n2.n_nationkey (INT4), default.n2.n_name (TEXT), default.n2.n_regionkey (INT4), default.n2.n_comment (TEXT)} +SCAN(0) on default.nation as n1 + => target list: default.n1.n_nationkey (INT4), default.n1.n_name (TEXT) + => out schema: {(2) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT)} + => in schema: {(4) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT), default.n1.n_regionkey (INT4), default.n1.n_comment (TEXT)} ======================================================= 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) @@ -59,13 +59,13 @@ SORT(10) => Join Cond: default.n1.n_name (TEXT) = ?upper_1 (TEXT) => target list: default.n1.n_nationkey (INT4), default.n1.n_name (TEXT), default.n2.n_name (TEXT) => out schema: {(3) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT), default.n2.n_name (TEXT)} - => in schema: {(4) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT), default.n2.n_name (TEXT), ?upper_1 (TEXT)} + => in schema: {(4) default.n2.n_name (TEXT), ?upper_1 (TEXT), default.n1.n_nationkey (INT4), default.n1.n_name (TEXT)} SCAN(9) on eb_0000000000000_0000_000002 - => out schema: {(2) default.n2.n_name (TEXT), ?upper_1 (TEXT)} - => in schema: {(2) default.n2.n_name (TEXT), ?upper_1 (TEXT)} - SCAN(8) on eb_0000000000000_0000_000001 => out schema: {(2) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT)} => in schema: {(2) default.n1.n_nationkey (INT4), default.n1.n_name (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) default.n2.n_name (TEXT), ?upper_1 (TEXT)} + => in schema: {(2) default.n2.n_name (TEXT), ?upper_1 (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000004 [ROOT] diff --git a/tajo-core/src/test/resources/results/TestTPCH/testQ2FourJoins.plan b/tajo-core/src/test/resources/results/TestTPCH/testQ2FourJoins.plan index ef0f8f8c3b..945b6e4c92 100644 --- a/tajo-core/src/test/resources/results/TestTPCH/testQ2FourJoins.plan +++ b/tajo-core/src/test/resources/results/TestTPCH/testQ2FourJoins.plan @@ -34,14 +34,14 @@ JOIN(14)(INNER) => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_supplycost (FLOAT8), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT) => out schema: {(8) default.partsupp.ps_partkey (INT4), default.partsupp.ps_supplycost (FLOAT8), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(10) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - SCAN(5) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8) - => out schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} SCAN(3) on default.supplier => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(5) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8) + => out schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -77,32 +77,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) -SCAN(3) on default.supplier - => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) - => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(5) on default.partsupp + => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8) + => out schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} + => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -SCAN(5) on default.partsupp - => target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8) - => out schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - => in schema: {(5) default.partsupp.ps_availqty (INT4), default.partsupp.ps_comment (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} +SCAN(3) on default.supplier + => target list: default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4) + => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32) @@ -113,11 +113,11 @@ JOIN(11)(INNER) => out schema: {(8) default.partsupp.ps_partkey (INT4), default.partsupp.ps_supplycost (FLOAT8), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT)} => in schema: {(10) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} SCAN(17) on eb_0000000000000_0000_000002 - => out schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - => in schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} - SCAN(16) on eb_0000000000000_0000_000001 => out schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(16) on eb_0000000000000_0000_000001 + => out schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} + => in schema: {(3) default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] diff --git a/tajo-core/src/test/resources/results/TestTPCH/testTPCHQ5.plan b/tajo-core/src/test/resources/results/TestTPCH/testTPCHQ5.plan index a466b2083d..77c3f59abe 100644 --- a/tajo-core/src/test/resources/results/TestTPCH/testTPCHQ5.plan +++ b/tajo-core/src/test/resources/results/TestTPCH/testTPCHQ5.plan @@ -27,37 +27,37 @@ SORT(8) => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} JOIN(18)(INNER) - => Join Cond: default.lineitem.l_suppkey (INT4) = default.supplier.s_suppkey (INT4) + => Join Cond: default.customer.c_custkey (INT4) = default.orders.o_custkey (INT4) AND default.lineitem.l_suppkey (INT4) = default.supplier.s_suppkey (INT4) => target list: ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.supplier.s_nationkey (INT4) => out schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.supplier.s_nationkey (INT4)} - => in schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(8) ?multiply (FLOAT8), default.customer.c_custkey (INT4), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} JOIN(17)(INNER) - => Join Cond: default.customer.c_nationkey (INT4) = default.supplier.s_nationkey (INT4) - => target list: default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) - => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(3) default.customer.c_nationkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - SCAN(0) on default.customer - => target list: default.customer.c_nationkey (INT4) - => out schema: {(1) default.customer.c_nationkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} - SCAN(3) on default.supplier - => target list: default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) - => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} - JOIN(16)(INNER) => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4) - => target list: ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4) - => out schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4)} - => in schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.orders.o_orderkey (INT4)} + => target list: ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4) + => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4)} + => in schema: {(7) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(1) on default.orders => filter: default.orders.o_orderdate (TEXT) >= 1994-01-01 AND default.orders.o_orderdate (TEXT) < 1995-01-01 - => target list: default.orders.o_orderkey (INT4) - => out schema: {(1) default.orders.o_orderkey (INT4)} + => 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(2) on default.lineitem => target list: default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_extendedprice (FLOAT8) * 1.0 - default.lineitem.l_discount (FLOAT8) as ?multiply => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (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)} + JOIN(16)(INNER) + => Join Cond: default.customer.c_nationkey (INT4) = default.supplier.s_nationkey (INT4) + => target list: default.customer.c_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) + => out schema: {(3) default.customer.c_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + SCAN(3) on default.supplier + => target list: default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) + => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -101,95 +101,95 @@ Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32) -SCAN(2) on default.lineitem - => target list: default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_extendedprice (FLOAT8) * 1.0 - default.lineitem.l_discount (FLOAT8) as ?multiply - => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (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(0) on default.customer + => target list: default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32) -SCAN(1) on default.orders - => filter: default.orders.o_orderdate (TEXT) >= 1994-01-01 AND default.orders.o_orderdate (TEXT) < 1995-01-01 - => target list: default.orders.o_orderkey (INT4) - => out schema: {(1) 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(3) on default.supplier + => target list: default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) + => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000004 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32) +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) -SCAN(3) on default.supplier - => target list: default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) - => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(7) default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)} +SCAN(2) on default.lineitem + => target list: default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.lineitem.l_extendedprice (FLOAT8) * 1.0 - default.lineitem.l_discount (FLOAT8) as ?multiply + => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (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_000005 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) -SCAN(0) on default.customer - => target list: default.customer.c_nationkey (INT4) - => out schema: {(1) default.customer.c_nationkey (INT4)} - => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} +SCAN(1) on default.orders + => filter: default.orders.o_orderdate (TEXT) >= 1994-01-01 AND default.orders.o_orderdate (TEXT) < 1995-01-01 + => 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.lineitem.l_orderkey (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), default.supplier.s_suppkey (INT4), num=32) JOIN(16)(INNER) - => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4) - => target list: ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4) - => out schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4)} - => in schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.orders.o_orderkey (INT4)} + => Join Cond: default.customer.c_nationkey (INT4) = default.supplier.s_nationkey (INT4) + => target list: default.customer.c_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) + => out schema: {(3) default.customer.c_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} SCAN(23) on eb_0000000000000_0000_000002 - => out schema: {(1) default.orders.o_orderkey (INT4)} - => in schema: {(1) default.orders.o_orderkey (INT4)} + => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} SCAN(22) on eb_0000000000000_0000_000001 - => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4)} - => in schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4)} + => out schema: {(2) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32) -[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32) +[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32) +[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4), num=32) JOIN(17)(INNER) - => Join Cond: default.customer.c_nationkey (INT4) = default.supplier.s_nationkey (INT4) - => target list: default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4) - => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(3) default.customer.c_nationkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4) + => target list: ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4) + => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4)} + => in schema: {(7) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)} SCAN(25) on eb_0000000000000_0000_000005 - => out schema: {(1) default.customer.c_nationkey (INT4)} - => in schema: {(1) default.customer.c_nationkey (INT4)} + => 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(24) on eb_0000000000000_0000_000004 - => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4)} + => in schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000008 [LEAF] @@ -221,23 +221,23 @@ Block Id: eb_0000000000000_0000_000007 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), num=32) -[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), default.supplier.s_suppkey (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4), num=32) [Outgoing] [q_0000000000000_0000] 7 => 11 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32) JOIN(18)(INNER) - => Join Cond: default.lineitem.l_suppkey (INT4) = default.supplier.s_suppkey (INT4) + => Join Cond: default.customer.c_custkey (INT4) = default.orders.o_custkey (INT4) AND default.lineitem.l_suppkey (INT4) = default.supplier.s_suppkey (INT4) => target list: ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.supplier.s_nationkey (INT4) => out schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.supplier.s_nationkey (INT4)} - => in schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(8) ?multiply (FLOAT8), default.customer.c_custkey (INT4), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} SCAN(27) on eb_0000000000000_0000_000006 - => out schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} - => in schema: {(2) default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => out schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4)} + => in schema: {(5) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4)} SCAN(26) on eb_0000000000000_0000_000003 - => out schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4)} - => in schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_suppkey (INT4)} + => out schema: {(3) default.customer.c_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} + => in schema: {(3) default.customer.c_custkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)} ======================================================= Block Id: eb_0000000000000_0000_000010 [INTERMEDIATE] diff --git a/tajo-core/src/test/resources/results/TestUnionQuery/testUnion12.result b/tajo-core/src/test/resources/results/TestUnionQuery/testUnion12.result index c130afa18f..4050574d7f 100644 --- a/tajo-core/src/test/resources/results/TestUnionQuery/testUnion12.result +++ b/tajo-core/src/test/resources/results/TestUnionQuery/testUnion12.result @@ -3,4 +3,5 @@ col1,col2,col3 R,46796.47,1993-11-24F PROMO BURNISHED COPPER,90100.0,1993goldenrod lavender spring chocolate lace LARGE BRUSHED BRASS,90200.0,1993blush thistle blue yellow saddle -STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk \ No newline at end of file +STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk +SMALL PLATED BRASS,90400.0,1993cornflower chocolate smoke green pink \ No newline at end of file diff --git a/tajo-core/src/test/resources/results/TestUnionQuery/testUnion13.result b/tajo-core/src/test/resources/results/TestUnionQuery/testUnion13.result index c130afa18f..4050574d7f 100644 --- a/tajo-core/src/test/resources/results/TestUnionQuery/testUnion13.result +++ b/tajo-core/src/test/resources/results/TestUnionQuery/testUnion13.result @@ -3,4 +3,5 @@ col1,col2,col3 R,46796.47,1993-11-24F PROMO BURNISHED COPPER,90100.0,1993goldenrod lavender spring chocolate lace LARGE BRUSHED BRASS,90200.0,1993blush thistle blue yellow saddle -STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk \ No newline at end of file +STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk +SMALL PLATED BRASS,90400.0,1993cornflower chocolate smoke green pink \ No newline at end of file diff --git a/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll12.result b/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll12.result index c130afa18f..4050574d7f 100644 --- a/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll12.result +++ b/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll12.result @@ -3,4 +3,5 @@ col1,col2,col3 R,46796.47,1993-11-24F PROMO BURNISHED COPPER,90100.0,1993goldenrod lavender spring chocolate lace LARGE BRUSHED BRASS,90200.0,1993blush thistle blue yellow saddle -STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk \ No newline at end of file +STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk +SMALL PLATED BRASS,90400.0,1993cornflower chocolate smoke green pink \ No newline at end of file diff --git a/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll13.result b/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll13.result index c130afa18f..4050574d7f 100644 --- a/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll13.result +++ b/tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll13.result @@ -3,4 +3,5 @@ col1,col2,col3 R,46796.47,1993-11-24F PROMO BURNISHED COPPER,90100.0,1993goldenrod lavender spring chocolate lace LARGE BRUSHED BRASS,90200.0,1993blush thistle blue yellow saddle -STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk \ No newline at end of file +STANDARD POLISHED BRASS,90300.0,1993spring green yellow purple cornsilk +SMALL PLATED BRASS,90400.0,1993cornflower chocolate smoke green pink \ No newline at end of file diff --git a/tajo-core/src/test/tpch/part.tbl b/tajo-core/src/test/tpch/part.tbl index 5fbdb4682e..6e6fa721c9 100644 --- a/tajo-core/src/test/tpch/part.tbl +++ b/tajo-core/src/test/tpch/part.tbl @@ -1,3 +1,4 @@ -1|goldenrod lavender spring chocolate lace|Manufacturer#1|Brand#13|PROMO BURNISHED COPPER|7|JUMBO PKG|901.00|ly. slyly ironi| -2|blush thistle blue yellow saddle|Manufacturer#1|Brand#13|LARGE BRUSHED BRASS|15|LG CASE|902.00|lar accounts amo| -3|spring green yellow purple cornsilk|Manufacturer#4|Brand#42|STANDARD POLISHED BRASS|21|WRAP CASE|903.00|egular deposits hag| +1|goldenrod lavender spring chocolate lace|Manufacturer#1|Brand#13|PROMO BURNISHED COPPER|7|JUMBO PKG|901.00|ly. slyly ironi +2|blush thistle blue yellow saddle|Manufacturer#1|Brand#13|LARGE BRUSHED BRASS|15|LG CASE|902.00|lar accounts amo +3|spring green yellow purple cornsilk|Manufacturer#4|Brand#42|STANDARD POLISHED BRASS|21|WRAP CASE|903.00|egular deposits hag +4|cornflower chocolate smoke green pink|Manufacturer#3|Brand#34|SMALL PLATED BRASS|14|MED DRUM|904.00|p furiously r \ No newline at end of file diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java index 18a8859d19..276072287c 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java @@ -19,8 +19,6 @@ package org.apache.tajo.plan; import com.google.common.annotations.VisibleForTesting; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceStability; @@ -30,22 +28,20 @@ import org.apache.tajo.algebra.JoinType; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.conf.TajoConf.ConfVars; -import org.apache.tajo.util.ReflectionUtil; -import org.apache.tajo.util.graph.DirectedGraphCursor; import org.apache.tajo.plan.expr.AlgebraicUtil; import org.apache.tajo.plan.expr.EvalNode; -import org.apache.tajo.plan.joinorder.FoundJoinOrder; -import org.apache.tajo.plan.joinorder.GreedyHeuristicJoinOrderAlgorithm; -import org.apache.tajo.plan.joinorder.JoinGraph; -import org.apache.tajo.plan.joinorder.JoinOrderAlgorithm; +import org.apache.tajo.plan.expr.EvalTreeUtil; +import org.apache.tajo.plan.joinorder.*; import org.apache.tajo.plan.logical.*; -import org.apache.tajo.plan.rewrite.*; +import org.apache.tajo.plan.rewrite.BaseLogicalPlanRewriteEngine; +import org.apache.tajo.plan.rewrite.LogicalPlanRewriteRuleProvider; import org.apache.tajo.plan.util.PlannerUtil; import org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor; +import org.apache.tajo.util.ReflectionUtil; +import org.apache.tajo.util.TUtil; +import org.apache.tajo.util.graph.DirectedGraphCursor; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.Stack; +import java.util.*; import static org.apache.tajo.plan.LogicalPlan.BlockEdge; import static org.apache.tajo.plan.joinorder.GreedyHeuristicJoinOrderAlgorithm.getCost; @@ -72,12 +68,6 @@ public LogicalOptimizer(TajoConf conf) { rulesAfterToJoinOpt.addRewriteRule(provider.getPostRules()); } - public void addRuleAfterToJoinOpt(LogicalPlanRewriteRule rewriteRule) { - if (rewriteRule != null) { - rulesAfterToJoinOpt.addRewriteRule(rewriteRule); - } - } - @VisibleForTesting public LogicalNode optimize(LogicalPlan plan) throws PlanningException { OverridableConf conf = new OverridableConf(new TajoConf(), @@ -97,7 +87,7 @@ public LogicalNode optimize(OverridableConf context, LogicalPlan plan) throws Pl optimizeJoinOrder(plan, blockCursor.nextBlock()); } } else { - LOG.info("Skip Join Optimized."); + LOG.info("Skip join order optimization"); } rulesAfterToJoinOpt.rewrite(context, plan); return plan.getRootBlock().getRoot(); @@ -113,12 +103,13 @@ private void optimizeJoinOrder(LogicalPlan plan, String blockName) throws Planni // finding relations and filter expressions JoinGraphContext joinGraphContext = JoinGraphBuilder.buildJoinGraph(plan, block); - // finding join order and restore remain filter order - FoundJoinOrder order = joinOrderAlgorithm.findBestOrder(plan, block, - joinGraphContext.joinGraph, joinGraphContext.relationsForProduct); + // finding join order and restore remaining filters + FoundJoinOrder order = joinOrderAlgorithm.findBestOrder(plan, block, joinGraphContext); // replace join node with FoundJoinOrder. JoinNode newJoinNode = order.getOrderedJoin(); + LogicalNode newNode = handleRemainingFiltersIfNecessary(joinGraphContext, plan, block, newJoinNode); + JoinNode old = PlannerUtil.findTopNode(block.getRoot(), NodeType.JOIN); JoinTargetCollector collector = new JoinTargetCollector(); @@ -130,7 +121,7 @@ private void optimizeJoinOrder(LogicalPlan plan, String blockName) throws Planni } else { newJoinNode.setTargets(targets.toArray(new Target[targets.size()])); } - PlannerUtil.replaceNode(plan, block.getRoot(), old, newJoinNode); + PlannerUtil.replaceNode(plan, block.getRoot(), old, newNode); // End of replacement logic String optimizedOrder = JoinOrderStringBuilder.buildJoinOrderString(plan, block); @@ -139,6 +130,58 @@ private void optimizeJoinOrder(LogicalPlan plan, String blockName) throws Planni } } + /** + * During join order optimization, every condition is checked whether it is a join condition or not. + * So, after join order is optimized, there can be remaining conditions which are not join conditions. + * This function handles such remaining conditions. It creates a new selection node for those conditions if required + * or add them to the existing selection node. + * + * @param joinGraphContext join graph context + * @param plan logical plan + * @param block query block + * @param newJoinNode the top join node after join order optimization + * @return the top logical node after handling remaining conditions + */ + private static LogicalNode handleRemainingFiltersIfNecessary(JoinGraphContext joinGraphContext, + LogicalPlan plan, + LogicalPlan.QueryBlock block, + JoinNode newJoinNode) { + // Gather filters from remaining join edges + Collection joinEdges = joinGraphContext.getJoinGraph().getEdgesAll(); + Collection markAsEvaluated = new HashSet(joinGraphContext.getEvaluatedJoinConditions()); + markAsEvaluated.addAll(joinGraphContext.getEvaluatedJoinFilters()); + Set remainingQuals = new HashSet(joinGraphContext.getCandidateJoinFilters()); + for (JoinEdge eachEdge : joinEdges) { + for (EvalNode eachQual : eachEdge.getJoinQual()) { + if (!markAsEvaluated.contains(eachQual)) { + remainingQuals.add(eachQual); + } + } + } + + if (!remainingQuals.isEmpty()) { + LogicalNode topParent = PlannerUtil.findTopParentNode(block.getRoot(), NodeType.JOIN); + if (topParent.getType() == NodeType.SELECTION) { + SelectionNode topParentSelect = (SelectionNode) topParent; + Set filters = TUtil.newHashSet(); + filters.addAll(TUtil.newHashSet(AlgebraicUtil.toConjunctiveNormalFormArray(topParentSelect.getQual()))); + filters.addAll(remainingQuals); + topParentSelect.setQual(AlgebraicUtil.createSingletonExprFromCNF( + filters.toArray(new EvalNode[filters.size()]))); + return newJoinNode; + } else { + SelectionNode newSelection = plan.createNode(SelectionNode.class); + newSelection.setQual(AlgebraicUtil.createSingletonExprFromCNF( + remainingQuals.toArray(new EvalNode[remainingQuals.size()]))); + newSelection.setChild(newJoinNode); + return newSelection; + } + } + + + return newJoinNode; + } + private static class JoinTargetCollector extends BasicLogicalPlanVisitor, LogicalNode> { @Override public LogicalNode visitJoin(Set ctx, LogicalPlan plan, LogicalPlan.QueryBlock block, JoinNode node, @@ -155,12 +198,23 @@ public LogicalNode visitJoin(Set ctx, LogicalPlan plan, LogicalPlan.Quer } } - private static class JoinGraphContext { - JoinGraph joinGraph = new JoinGraph(); - Set quals = Sets.newHashSet(); - Set relationsForProduct = Sets.newHashSet(); - } - + /** + * The first phase of the join order optimization is building a join graph from the given query. + * This initial join graph forms a tree which consists of only relation vertexes in an order of their occurrences in + * the query. For example, let me suppose the following query. + * + * default> select * from t1 inner join t2 left outer join t3 inner join t4; + * + * In this example, the initial join graph is: + * + * t1 - (inner join) - t2 - (left outer join) - t3 - (inner join) - t4. + * + * This means that the default join order is left to right. Join queries can be always processed with the + * default join order. This join order will be optimized by {@link JoinOrderAlgorithm}. + * + * JoinGraphBuilder builds an initial join graph as illustrated above. + * + */ private static class JoinGraphBuilder extends BasicLogicalPlanVisitor { private final static JoinGraphBuilder instance; @@ -175,37 +229,84 @@ private static class JoinGraphBuilder extends BasicLogicalPlanVisitor stack) throws PlanningException { + if (node.getType() != NodeType.TABLE_SUBQUERY) { + super.visit(context, plan, block, node, stack); + } + + return node; + } + + @Override public LogicalNode visitFilter(JoinGraphContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, SelectionNode node, Stack stack) throws PlanningException { + // all join predicate candidates must be collected before building the join tree + context.addCandidateJoinFilters( + TUtil.newList(AlgebraicUtil.toConjunctiveNormalFormArray(node.getQual()))); super.visitFilter(context, plan, block, node, stack); - context.quals.addAll(Lists.newArrayList(AlgebraicUtil.toConjunctiveNormalFormArray(node.getQual()))); return node; } @Override - public LogicalNode visitJoin(JoinGraphContext joinGraphContext, LogicalPlan plan, LogicalPlan.QueryBlock block, + public LogicalNode visitJoin(JoinGraphContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, JoinNode joinNode, Stack stack) throws PlanningException { - super.visitJoin(joinGraphContext, plan, block, joinNode, stack); + super.visitJoin(context, plan, block, joinNode, stack); + + // given a join node, find the relations which are nearest to the join in the query. + RelationNode leftChild = findMostRightRelation(plan, block, joinNode.getLeftChild()); + RelationNode rightChild = findMostLeftRelation(plan, block, joinNode.getRightChild()); + RelationVertex leftVertex = new RelationVertex(leftChild); + RelationVertex rightVertex = new RelationVertex(rightChild); + + JoinEdge edge = context.getJoinGraph().addJoin(context, joinNode.getJoinSpec(), leftVertex, rightVertex); + + // find all possible predicates for this join edge + Set joinConditions = TUtil.newHashSet(); if (joinNode.hasJoinQual()) { - joinGraphContext.joinGraph.addJoin(plan, block, joinNode); - } else { - LogicalNode leftChild = joinNode.getLeftChild(); - LogicalNode rightChild = joinNode.getRightChild(); - if (leftChild instanceof RelationNode) { - RelationNode rel = (RelationNode) leftChild; - joinGraphContext.relationsForProduct.add(rel.getCanonicalName()); - } - if (rightChild instanceof RelationNode) { - RelationNode rel = (RelationNode) rightChild; - joinGraphContext.relationsForProduct.add(rel.getCanonicalName()); + Set originPredicates = joinNode.getJoinSpec().getPredicates(); + for (EvalNode predicate : joinNode.getJoinSpec().getPredicates()) { + if (EvalTreeUtil.isJoinQual(block, leftVertex.getSchema(), rightVertex.getSchema(), predicate, false)) { + if (JoinOrderingUtil.checkIfEvaluatedAtEdge(predicate, edge, true)) { + joinConditions.add(predicate); + } + } else { + joinConditions.add(predicate); + } } + // find predicates which cannot be evaluated at this join + originPredicates.removeAll(joinConditions); + context.addCandidateJoinConditions(originPredicates); + originPredicates.clear(); + originPredicates.addAll(joinConditions); + } + + joinConditions.addAll(JoinOrderingUtil.findJoinConditionForJoinVertex(context.getCandidateJoinConditions(), edge, + true)); + joinConditions.addAll(JoinOrderingUtil.findJoinConditionForJoinVertex(context.getCandidateJoinFilters(), edge, + false)); + context.markAsEvaluatedJoinConditions(joinConditions); + context.markAsEvaluatedJoinFilters(joinConditions); + edge.addJoinPredicates(joinConditions); + if (edge.getJoinType() == JoinType.INNER && edge.getJoinQual().isEmpty()) { + edge.getJoinSpec().setType(JoinType.CROSS); + } + + if (PlannerUtil.isCommutativeJoinType(edge.getJoinType())) { + JoinEdge commutativeEdge = context.getCachedOrNewJoinEdge(edge.getJoinSpec(), edge.getRightVertex(), + edge.getLeftVertex()); + commutativeEdge.addJoinPredicates(joinConditions); + context.getJoinGraph().addEdge(commutativeEdge.getLeftVertex(), commutativeEdge.getRightVertex(), + commutativeEdge); } + return joinNode; } } @@ -308,4 +409,81 @@ public LogicalNode visitJoin(CostContext joinGraphContext, LogicalPlan plan, Log return joinNode; } } + + /** + * Find the most left relation node in the join tree. For the join tree, please refer to {@link JoinGraphBuilder}. + * + * @param plan logical plan + * @param block query block in which the given join node is involved + * @param from logical node where the search starts + * @return found relation + * @throws PlanningException + */ + public static RelationNode findMostLeftRelation(LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalNode from) + throws PlanningException { + RelationNodeFinderContext context = new RelationNodeFinderContext(); + context.findMostLeft = true; + RelationNodeFinder finder = new RelationNodeFinder(); + finder.visit(context, plan, block, from, new Stack()); + return context.founds.isEmpty() ? null : context.founds.iterator().next(); + } + + /** + * Find the most right relation node in the join tree. For the join tree, please refer to {@link JoinGraphBuilder}. + * + * @param plan logical plan + * @param block query block in which the given join node is involved + * @param from logical node where the search starts + * @return found relation + * @throws PlanningException + */ + public static RelationNode findMostRightRelation(LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalNode from) + throws PlanningException { + RelationNodeFinderContext context = new RelationNodeFinderContext(); + context.findMostRight = true; + RelationNodeFinder finder = new RelationNodeFinder(); + finder.visit(context, plan, block, from, new Stack()); + return context.founds.isEmpty() ? null : context.founds.iterator().next(); + } + + private static class RelationNodeFinderContext { + private Set founds = TUtil.newHashSet(); + private boolean findMostLeft; + private boolean findMostRight; + } + + /** + * RelationNodeFinder finds the most left/right vertex from the given node in the join graph. + */ + private static class RelationNodeFinder extends BasicLogicalPlanVisitor { + + @Override + public LogicalNode visit(RelationNodeFinderContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, + LogicalNode node, Stack stack) throws PlanningException { + if (node.getType() != NodeType.TABLE_SUBQUERY) { + super.visit(context, plan, block, node, stack); + } + + if (node instanceof RelationNode) { + context.founds.add((RelationNode) node); + } + + return node; + } + + @Override + public LogicalNode visitJoin(RelationNodeFinderContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, + JoinNode node, Stack stack) throws PlanningException { + stack.push(node); + LogicalNode result = null; + if (context.findMostLeft) { + result = visit(context, plan, block, node.getLeftChild(), stack); + } + if (context.findMostRight) { + result = visit(context, plan, block, node.getRightChild(), stack); + } + stack.pop(); + return result; + } + } } \ No newline at end of file diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java index 581fde750b..85d8d5552c 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java @@ -2181,7 +2181,7 @@ public static boolean isEvaluatableJoinQual(QueryBlock block, EvalNode evalNode, return false; } - if (PlannerUtil.isOuterJoin(node.getJoinType())) { + if (PlannerUtil.isOuterJoinType(node.getJoinType())) { /* * For outer joins, only predicates which are specified at the on clause can be evaluated during processing join. * Other predicates from the where clause must be evaluated after the join. diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java index 862cb8ad50..7eb05d761b 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java @@ -19,187 +19,191 @@ package org.apache.tajo.plan.joinorder; import org.apache.tajo.algebra.JoinType; -import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaUtil; import org.apache.tajo.plan.LogicalPlan; -import org.apache.tajo.plan.util.PlannerUtil; import org.apache.tajo.plan.PlanningException; -import org.apache.tajo.catalog.SchemaUtil; import org.apache.tajo.plan.expr.AlgebraicUtil; import org.apache.tajo.plan.logical.*; +import org.apache.tajo.plan.util.PlannerUtil; import org.apache.tajo.util.StringUtils; +import org.apache.tajo.util.TUtil; -import java.util.*; +import java.util.List; +import java.util.Set; /** * This is a greedy heuristic algorithm to find a bushy join tree. This algorithm finds * the best join order with join conditions and pushed-down join conditions to - * all join operators. + * appropriate join operators. */ public class GreedyHeuristicJoinOrderAlgorithm implements JoinOrderAlgorithm { + public static final double DEFAULT_SELECTION_FACTOR = 0.1; @Override - public FoundJoinOrder findBestOrder(LogicalPlan plan, LogicalPlan.QueryBlock block, JoinGraph joinGraph, - Set relationsWithoutQual) throws PlanningException { - - // Setup a remain relation set to be joined - // Why we should use LinkedHashSet? - it should keep the deterministic for the order of joins. - // Otherwise, join orders can be different even if join costs are the same to each other. - Set remainRelations = new LinkedHashSet(); - for (RelationNode relation : block.getRelations()) { - remainRelations.add(relation); - } - - LogicalNode latestJoin; - JoinEdge bestPair; - - while (remainRelations.size() > 1) { - Set checkingRelations = new LinkedHashSet(); - - for (LogicalNode relation : remainRelations) { - Collection relationStrings = PlannerUtil.getRelationLineageWithinQueryBlock(plan, relation); - List joinEdges = new ArrayList(); - String relationCollection = StringUtils.join(relationStrings, ","); - List joinEdgesForGiven = joinGraph.getIncomingEdges(relationCollection); - if (joinEdgesForGiven != null) { - joinEdges.addAll(joinEdgesForGiven); - } - if (relationStrings.size() > 1) { - for (String relationString: relationStrings) { - joinEdgesForGiven = joinGraph.getIncomingEdges(relationString); - if (joinEdgesForGiven != null) { - joinEdges.addAll(joinEdgesForGiven); - } - } - } - - // check if the relation is the last piece of outer join - boolean endInnerRelation = false; - for (JoinEdge joinEdge: joinEdges) { - switch(joinEdge.getJoinType()) { - case LEFT_ANTI: - case RIGHT_ANTI: - case LEFT_SEMI: - case RIGHT_SEMI: - case LEFT_OUTER: - case RIGHT_OUTER: - case FULL_OUTER: - endInnerRelation = true; - if (checkingRelations.size() <= 1) { - checkingRelations.add(relation); - } - break; - default: - break; - } - } - - if (endInnerRelation) { - break; - } - - checkingRelations.add(relation); - } - - remainRelations.removeAll(checkingRelations); - - // Find the best join pair among all joinable operators in candidate set. - while (checkingRelations.size() > 1) { - LinkedHashSet removingJoinEdges = new LinkedHashSet(); - bestPair = getBestPair(plan, joinGraph, checkingRelations, removingJoinEdges); - - checkingRelations.remove(bestPair.getLeftRelation()); - checkingRelations.remove(bestPair.getRightRelation()); - for (String[] joinEdge: removingJoinEdges) { - // remove the edge of the best pair from join graph - joinGraph.removeEdge(joinEdge[0], joinEdge[1]); - } + public FoundJoinOrder findBestOrder(LogicalPlan plan, LogicalPlan.QueryBlock block, JoinGraphContext graphContext) + throws PlanningException { - latestJoin = createJoinNode(plan, bestPair); - checkingRelations.add(latestJoin); + Set vertexes = TUtil.newHashSet(); + for (RelationNode relationNode : block.getRelations()) { + vertexes.add(new RelationVertex(relationNode)); + } - // all logical nodes should be registered to corresponding blocks - block.registerNode(latestJoin); + // As illustrated at LogicalOptimizer.JoinGraphBuilder, the join graph initially forms a kind of tree. + // This join graph can be updated by adding new join edges or removing existing join edges + // during join order optimization. + JoinEdgeFinderContext context = new JoinEdgeFinderContext(); + JoinGraph joinGraph = graphContext.getJoinGraph(); + while (vertexes.size() > 1) { + JoinEdge bestPair = getBestPair(context, graphContext, vertexes); + JoinedRelationsVertex newVertex = new JoinedRelationsVertex(bestPair); + + // A root vertex is the join vertex where the graph traverse is started. + // The root vertex should be updated if the previous root vertex is merged into a new one. + if (graphContext.getRootVertexes().contains(bestPair.getLeftVertex())) { + graphContext.replaceRootVertexes(bestPair.getLeftVertex(), newVertex); + } else if (PlannerUtil.isCommutativeJoinType(bestPair.getJoinType()) + && graphContext.getRootVertexes().contains(bestPair.getRightVertex())) { + graphContext.replaceRootVertexes(bestPair.getRightVertex(), newVertex); } - // new Logical block should be the first entry of new Set - checkingRelations.addAll(remainRelations); - remainRelations = checkingRelations; + // Once a best pair is chosen, some existing join edges should be removed and new join edges should be added. + // + // There can be some join edges which are equal to or symmetric with the best pair. + // They cannot be chosen anymore, and thus should be removed from the join graph. + // + // The chosen best pair will be regarded as a join vertex again. + // So, the join edges which share any vertexes with the best pair should be updated, too. + Set willBeRemoved = TUtil.newHashSet(); + Set willBeAdded = TUtil.newHashSet(); + + // Find every join edges which should be updated. + prepareGraphUpdate(graphContext, joinGraph, bestPair, newVertex, willBeAdded, willBeRemoved); + + // Update the join graph + updateGraph(graphContext, joinGraph, bestPair, willBeAdded, willBeRemoved); + + // Update the join vertex set + vertexes.remove(bestPair.getLeftVertex()); + vertexes.remove(bestPair.getRightVertex()); + vertexes.add(newVertex); } - JoinNode joinTree = (JoinNode) remainRelations.iterator().next(); + JoinNode joinTree = (JoinNode) vertexes.iterator().next().buildPlan(plan, block); // all generated nodes should be registered to corresponding blocks block.registerNode(joinTree); return new FoundJoinOrder(joinTree, getCost(joinTree)); } - private static JoinNode createJoinNode(LogicalPlan plan, JoinEdge joinEdge) { - LogicalNode left = joinEdge.getLeftRelation(); - LogicalNode right = joinEdge.getRightRelation(); - - JoinNode joinNode = plan.createNode(JoinNode.class); + private void updateGraph(JoinGraphContext context, JoinGraph graph, JoinEdge bestPair, + Set willBeAdded, Set willBeRemoved) { + for (JoinEdge edge : willBeRemoved) { + graph.removeEdge(edge.getLeftVertex(), edge.getRightVertex()); + context.addCandidateJoinConditions(edge.getJoinQual()); + } - if (PlannerUtil.isCommutativeJoin(joinEdge.getJoinType())) { - // if only one operator is relation - if ((left instanceof RelationNode) && !(right instanceof RelationNode)) { - // for left deep - joinNode.init(joinEdge.getJoinType(), right, left); - } else { - // if both operators are relation or if both are relations - // we don't need to concern the left-right position. - joinNode.init(joinEdge.getJoinType(), left, right); - } - } else { - joinNode.init(joinEdge.getJoinType(), left, right); + for (JoinEdge edge : willBeAdded) { + graph.addEdge(edge.getLeftVertex(), edge.getRightVertex(), edge); + context.removeCandidateJoinConditions(edge.getJoinQual()); + context.removeCandidateJoinFilters(edge.getJoinQual()); } - Schema mergedSchema = SchemaUtil.merge(joinNode.getLeftChild().getOutSchema(), - joinNode.getRightChild().getOutSchema()); - joinNode.setInSchema(mergedSchema); - joinNode.setOutSchema(mergedSchema); - if (joinEdge.hasJoinQual()) { - joinNode.setJoinQual(AlgebraicUtil.createSingletonExprFromCNF(joinEdge.getJoinQual())); + // Join quals involved by the best pair should be removed. + context.markAsEvaluatedJoinConditions(bestPair.getJoinQual()); + context.markAsEvaluatedJoinFilters(bestPair.getJoinQual()); + } + + /** + * Once a best pair is found, some existing join edges which are equal to or symmetric with the best pair should be + * removed and new join edges should be added. + * They cannot be chosen as the best pair anymore, and thus should be removed from the join graph. + * This method finds such join edges to prepare updating the join graph. + * + * @param context + * @param graph + * @param bestPair + * @param vertex + * @param willBeAdded + * @param willBeRemoved + */ + private void prepareGraphUpdate(JoinGraphContext context, JoinGraph graph, JoinEdge bestPair, + JoinedRelationsVertex vertex, Set willBeAdded, Set willBeRemoved) { + prepareGraphUpdate(context, graph.getOutgoingEdges(bestPair.getLeftVertex()), vertex, true, + willBeAdded, willBeRemoved); + + prepareGraphUpdate(context, graph.getIncomingEdges(bestPair.getLeftVertex()), vertex, false, + willBeAdded, willBeRemoved); + + prepareGraphUpdate(context, graph.getOutgoingEdges(bestPair.getRightVertex()), vertex, true, + willBeAdded, willBeRemoved); + + prepareGraphUpdate(context, graph.getIncomingEdges(bestPair.getRightVertex()), vertex, false, + willBeAdded, willBeRemoved); + } + + private void prepareGraphUpdate(JoinGraphContext context, List edges, + JoinedRelationsVertex vertex, boolean isLeftVertex, + Set willBeAdded, Set willBeRemoved) { + if (edges != null) { + for (JoinEdge edge : edges) { + if (!JoinOrderingUtil.isEqualsOrSymmetric(vertex.getJoinEdge(), edge)) { + if (isLeftVertex) { + willBeAdded.add(context.getCachedOrNewJoinEdge(edge.getJoinSpec(), vertex, edge.getRightVertex())); + } else { + willBeAdded.add(context.getCachedOrNewJoinEdge(edge.getJoinSpec(), edge.getLeftVertex(), vertex)); + } + } + willBeRemoved.add(edge); + } } - return joinNode; } /** - * Find the best join pair among all joinable operators in candidate set. + * Find the best join pair among all joinable operators in the candidate set. * - * @param plan a logical plan - * @param graph a join graph which consists of vertices and edges, where vertex is relation and - * each edge is join condition. - * @param candidateSet candidate operators to be joined. + * @param context + * @param graphContext a join graph which consists of vertices and edges, where vertex is relation and + * each edge is join condition. + * @param vertexes candidate operators to be joined. * @return The best join pair among them * @throws PlanningException */ - private JoinEdge getBestPair(LogicalPlan plan, JoinGraph graph, Set candidateSet, Set bestJoinEdges) + private JoinEdge getBestPair(JoinEdgeFinderContext context, JoinGraphContext graphContext, Set vertexes) throws PlanningException { double minCost = Double.MAX_VALUE; JoinEdge bestJoin = null; - LinkedHashSet relatedJoinEdges = null; - LinkedHashSet relatedNonCrossJoinEdges = null; double minNonCrossJoinCost = Double.MAX_VALUE; JoinEdge bestNonCrossJoin = null; - for (LogicalNode outer : candidateSet) { - for (LogicalNode inner : candidateSet) { + // Brute-force algorithm + // check every possible combination of join vertexes. + for (JoinVertex outer : vertexes) { + for (JoinVertex inner : vertexes) { if (outer.equals(inner)) { continue; } - LinkedHashSet joinEdgePairs = new LinkedHashSet(); - JoinEdge foundJoin = findJoin(plan, graph, outer, inner, joinEdgePairs); + context.reset(); + JoinEdge foundJoin = null; + + // A root vertex is the join vertex where the graph traverse is started. + // For each root vertex, find possible joins between inner and outer join vertexes. + for (JoinVertex eachRoot : graphContext.getRootVertexes()) { + foundJoin = findJoin(context, graphContext, eachRoot, outer, inner); + if (foundJoin != null) break; + } if (foundJoin == null) { continue; } + // The found join edge may not have join quals even though they can be evaluated during join. + // So, possible join quals should be added to the join node before estimating its cost. + JoinOrderingUtil.updateQualIfNecessary(graphContext, foundJoin); double cost = getCost(foundJoin); if (cost < minCost) { minCost = cost; bestJoin = foundJoin; - relatedJoinEdges = joinEdgePairs; } // Keep the min cost join @@ -209,124 +213,211 @@ private JoinEdge getBestPair(LogicalPlan plan, JoinGraph graph, Set if (cost < minNonCrossJoinCost) { minNonCrossJoinCost = cost; bestNonCrossJoin = foundJoin; - relatedNonCrossJoinEdges = joinEdgePairs; } } } } if (bestNonCrossJoin != null) { - bestJoinEdges.addAll(relatedNonCrossJoinEdges); - return bestNonCrossJoin; + if (bestNonCrossJoin.hasJoinQual()) { + graphContext.markAsEvaluatedJoinConditions(bestNonCrossJoin.getJoinQual()); + } + return swapLeftAndRightIfNecessary(bestNonCrossJoin); + } else if (bestJoin != null) { + if (bestJoin.hasJoinQual()) { + graphContext.markAsEvaluatedJoinFilters(bestJoin.getJoinQual()); + } + return swapLeftAndRightIfNecessary(bestJoin); } else { - bestJoinEdges.addAll(relatedJoinEdges); - return bestJoin; + throw new PlanningException("Cannot find the best join"); } } - /** - * Find a join between two logical operator trees - * - * @return If there is no join condition between two relation, it returns NULL value. - */ - private static JoinEdge findJoin(LogicalPlan plan, JoinGraph graph, LogicalNode outer, LogicalNode inner, Set joinEdgePairs) - throws PlanningException { - JoinEdge foundJoinEdge = null; - - // If outer is outer join, make edge key using all relation names in outer. - SortedSet relationNames = - new TreeSet(PlannerUtil.getRelationLineageWithinQueryBlock(plan, outer)); - String outerEdgeKey = StringUtils.join(relationNames, ", "); - for (String innerName : PlannerUtil.getRelationLineageWithinQueryBlock(plan, inner)) { - if (graph.hasEdge(outerEdgeKey, innerName)) { - JoinEdge existJoinEdge = graph.getEdge(outerEdgeKey, innerName); - String[] joinEdgePair = {outerEdgeKey, innerName}; - joinEdgePairs.add(joinEdgePair); - if (foundJoinEdge == null) { - foundJoinEdge = new JoinEdge(existJoinEdge.getJoinType(), outer, inner, - existJoinEdge.getJoinQual()); - } else { - foundJoinEdge.addJoinQual(AlgebraicUtil.createSingletonExprFromCNF( - existJoinEdge.getJoinQual())); + private static JoinEdge swapLeftAndRightIfNecessary(JoinEdge edge) { + if (PlannerUtil.isCommutativeJoinType(edge.getJoinType()) || edge.getJoinType() == JoinType.FULL_OUTER) { + double leftCost = getCost(edge.getLeftVertex()); + double rightCost = getCost(edge.getRightVertex()); + if (leftCost < rightCost) { + return new JoinEdge(edge.getJoinSpec(), edge.getRightVertex(), edge.getLeftVertex()); + } else if (leftCost == rightCost) { + // compare the relation name to make the join order determinant + if (StringUtils.join(edge.getLeftVertex().getRelations(), ""). + compareTo(StringUtils.join(edge.getRightVertex().getRelations(), "")) < 0) { + return new JoinEdge(edge.getJoinSpec(), edge.getRightVertex(), edge.getLeftVertex()); } } } - if (foundJoinEdge != null) { - return foundJoinEdge; - } + return edge; + } - relationNames = - new TreeSet(PlannerUtil.getRelationLineageWithinQueryBlock(plan, inner)); - outerEdgeKey = StringUtils.join(relationNames, ", "); - for (String outerName : PlannerUtil.getRelationLineageWithinQueryBlock(plan, outer)) { - if (graph.hasEdge(outerEdgeKey, outerName)) { - JoinEdge existJoinEdge = graph.getEdge(outerEdgeKey, outerName); - String[] joinEdgePair = {outerEdgeKey, outerName}; - joinEdgePairs.add(joinEdgePair); - if (foundJoinEdge == null) { - foundJoinEdge = new JoinEdge(existJoinEdge.getJoinType(), inner, outer, - existJoinEdge.getJoinQual()); - } else { - foundJoinEdge.addJoinQual(AlgebraicUtil.createSingletonExprFromCNF( - existJoinEdge.getJoinQual())); - } - } - } - if (foundJoinEdge != null) { - return foundJoinEdge; + private static class JoinEdgeFinderContext { + private Set visited = TUtil.newHashSet(); + + public void reset() { + visited.clear(); } + } - for (String outerName : PlannerUtil.getRelationLineageWithinQueryBlock(plan, outer)) { - for (String innerName : PlannerUtil.getRelationLineageWithinQueryBlock(plan, inner)) { - - // Find all joins between two relations and merge them into one join if possible - if (graph.hasEdge(outerName, innerName)) { - JoinEdge existJoinEdge = graph.getEdge(outerName, innerName); - String[] joinEdgePair = {outerName, innerName}; - joinEdgePairs.add(joinEdgePair); - if (foundJoinEdge == null) { - foundJoinEdge = new JoinEdge(existJoinEdge.getJoinType(), outer, inner, - existJoinEdge.getJoinQual()); + /** + * Find a join edge between two join vertexes. + * + * @param context context for edge finder + * @param graphContext graph context + * @param begin begin vertex to traverse the join graph + * @param leftTarget left target join vertex + * @param rightTarget right target join vertex + * @return If there is no join edge between two vertexes, it returns null. + * @throws PlanningException + */ + private static JoinEdge findJoin(final JoinEdgeFinderContext context, final JoinGraphContext graphContext, + JoinVertex begin, final JoinVertex leftTarget, final JoinVertex rightTarget) + throws PlanningException { + + context.visited.add(begin); + + JoinGraph joinGraph = graphContext.getJoinGraph(); + + // Get all interchangeable vertexes of the begin vertex. + // Please see JoinOrderingUtil.getAllInterchangeableVertexes() for interchangeable vertexes. + Set interchangeableWithBegin = JoinOrderingUtil.getAllInterchangeableVertexes(graphContext, begin); + + // If the left search target is interchangeable with the begin vertex, check every outgoing edges + // from the left target to find the join edge who has the right search target as its right vertex. + if (interchangeableWithBegin.contains(leftTarget)) { + List edgesFromLeftTarget = joinGraph.getOutgoingEdges(leftTarget); + if (edgesFromLeftTarget != null) { + for (JoinEdge edgeFromLeftTarget : edgesFromLeftTarget) { + edgeFromLeftTarget = JoinOrderingUtil.updateQualIfNecessary(graphContext, edgeFromLeftTarget); + + // Find all interchangeable vertexes with the right vertex of the current edge. + // If the right target vertex is interchangeable with the right vertex of the current edge, + // we've successfully found a join edge between the left and right targets. + Set interchangeableWithRightVertex; + if (edgeFromLeftTarget.getJoinType() == JoinType.INNER || edgeFromLeftTarget.getJoinType() == JoinType.CROSS) { + interchangeableWithRightVertex = JoinOrderingUtil.getAllInterchangeableVertexes(graphContext, + edgeFromLeftTarget.getRightVertex()); } else { - foundJoinEdge.addJoinQual(AlgebraicUtil.createSingletonExprFromCNF( - existJoinEdge.getJoinQual())); + interchangeableWithRightVertex = TUtil.newHashSet(edgeFromLeftTarget.getRightVertex()); + } + + if (interchangeableWithRightVertex.contains(rightTarget)) { + JoinEdge targetEdge = joinGraph.getEdge(leftTarget, rightTarget); + if (targetEdge == null) { + if (joinGraph.isSymmetricJoinOnly()) { + // Since the targets of the both sides are searched with symmetric characteristics, + // the join type is assumed as CROSS. + // TODO: This must be improved to consider a case when a query involves multiple commutative and + // TODO: non-commutative joins. It will be done at TAJO-1683. + joinGraph.addJoin(graphContext, new JoinSpec(JoinType.CROSS), leftTarget, rightTarget); + return JoinOrderingUtil.updateQualIfNecessary(graphContext, joinGraph.getEdge(leftTarget, rightTarget)); + } + } else { + targetEdge = JoinOrderingUtil.updateQualIfNecessary(graphContext, targetEdge); + return targetEdge; + } } } } } - if (foundJoinEdge == null) { - foundJoinEdge = new JoinEdge(JoinType.CROSS, outer, inner); - } - - return foundJoinEdge; + // If the left search target is NOT interchangeable with the begin vertex, + // we cannot find any join edges from the current begin vertex, so search from other vertexes. + // Here, we should consider the associativity to check whether other joins can be executed earlier than the join + // who has the begin vertex as its left vertex. + for (JoinVertex interchangeableVertex : interchangeableWithBegin) { + List edges = joinGraph.getOutgoingEdges(interchangeableVertex); + if (edges != null) { + for (JoinEdge edge : edges) { + for (JoinEdge associativeEdge : JoinOrderingUtil.getAllAssociativeEdges(graphContext, edge)) { + JoinVertex willBeVisited = associativeEdge.getLeftVertex(); + if (!context.visited.contains(willBeVisited)) { + JoinEdge found = findJoin(context, graphContext, associativeEdge.getLeftVertex(), leftTarget, + rightTarget); + if (found != null) { + return found; + } + } + } + } + } + } + // not found + return null; } + // COMPUTATION_FACTOR is used to give the larger cost for longer plans. + // We assume that every operation has same cost. + // TODO: more accurate cost estimation is required. + private static final double COMPUTATION_FACTOR = 1.5; + /** * Getting a cost of one join * @param joinEdge * @return */ public static double getCost(JoinEdge joinEdge) { - double filterFactor = 1; - if (joinEdge.hasJoinQual()) { - // TODO - should consider join type + double factor = 1; + double cost; + if (joinEdge.getJoinType() != JoinType.CROSS) { // TODO - should statistic information obtained from query history - filterFactor = filterFactor * Math.pow(DEFAULT_SELECTION_FACTOR, joinEdge.getJoinQual().length); - return getCost(joinEdge.getLeftRelation()) * getCost(joinEdge.getRightRelation()) * filterFactor; + switch (joinEdge.getJoinType()) { + // TODO - improve cost estimation + // for outer joins, filter factor does not matter + case LEFT_OUTER: + factor *= SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getSchema()) / + SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getLeftVertex().getSchema()); + break; + case RIGHT_OUTER: + factor *= SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getSchema()) / + SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getRightVertex().getSchema()); + break; + case FULL_OUTER: + factor *= Math.max(SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getSchema()) / + SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getLeftVertex().getSchema()), + SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getSchema()) / + SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getRightVertex().getSchema())); + break; + case INNER: + default: + // by default, do the same operation with that of inner join + // filter factor * output tuple width / input tuple width + factor *= Math.pow(DEFAULT_SELECTION_FACTOR, joinEdge.getJoinQual().size()) + * SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getSchema()) + / (SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getLeftVertex().getSchema()) + + SchemaUtil.estimateRowByteSizeWithSchema(joinEdge.getRightVertex().getSchema())); + break; + } + // cost = estimated input size * filter factor * (output tuple width / input tuple width) + cost = getCost(joinEdge.getLeftVertex()) * + getCost(joinEdge.getRightVertex()) * factor; } else { // make cost bigger if cross join - return Math.pow(getCost(joinEdge.getLeftRelation()) * getCost(joinEdge.getRightRelation()), 2); + cost = Math.pow(getCost(joinEdge.getLeftVertex()) * + getCost(joinEdge.getRightVertex()), 2); } + + return cost * COMPUTATION_FACTOR; + } + + public static double getCost(JoinVertex joinVertex) { + double cost; + if (joinVertex instanceof RelationVertex) { + cost = getCost(((RelationVertex) joinVertex).getRelationNode()); + } else { + cost = getCost(((JoinedRelationsVertex)joinVertex).getJoinEdge()); + } + return cost; } // TODO - costs of other operator operators (e.g., group-by and sort) should be computed in proper manners. public static double getCost(LogicalNode node) { + double cost; switch (node.getType()) { case PROJECTION: ProjectionNode projectionNode = (ProjectionNode) node; - return getCost(projectionNode.getChild()); + cost = getCost(projectionNode.getChild()); + break; case JOIN: JoinNode joinNode = (JoinNode) node; @@ -334,32 +425,36 @@ public static double getCost(LogicalNode node) { if (joinNode.hasJoinQual()) { filterFactor = Math.pow(DEFAULT_SELECTION_FACTOR, AlgebraicUtil.toConjunctiveNormalFormArray(joinNode.getJoinQual()).length); - return getCost(joinNode.getLeftChild()) * getCost(joinNode.getRightChild()) * filterFactor; + cost = getCost(joinNode.getLeftChild()) * getCost(joinNode.getRightChild()) * filterFactor; } else { - return Math.pow(getCost(joinNode.getLeftChild()) * getCost(joinNode.getRightChild()), 2); + cost = Math.pow(getCost(joinNode.getLeftChild()) * getCost(joinNode.getRightChild()), 2); } + break; case SELECTION: SelectionNode selectionNode = (SelectionNode) node; - return getCost(selectionNode.getChild()) * + cost = getCost(selectionNode.getChild()) * Math.pow(DEFAULT_SELECTION_FACTOR, AlgebraicUtil.toConjunctiveNormalFormArray(selectionNode.getQual()).length); + break; case TABLE_SUBQUERY: TableSubQueryNode subQueryNode = (TableSubQueryNode) node; - return getCost(subQueryNode.getSubQuery()); + cost = getCost(subQueryNode.getSubQuery()); + break; case SCAN: ScanNode scanNode = (ScanNode) node; if (scanNode.getTableDesc().getStats() != null) { - double cost = ((ScanNode)node).getTableDesc().getStats().getNumBytes(); - return cost; + cost = ((ScanNode)node).getTableDesc().getStats().getNumBytes(); } else { - return Long.MAX_VALUE; + cost = Long.MAX_VALUE; } + break; case UNION: UnionNode unionNode = (UnionNode) node; - return getCost(unionNode.getLeftChild()) + getCost(unionNode.getRightChild()); + cost = getCost(unionNode.getLeftChild()) + getCost(unionNode.getRightChild()); + break; case EXCEPT: case INTERSECT: @@ -368,7 +463,10 @@ public static double getCost(LogicalNode node) { default: // all binary operators (join, union, except, and intersect) are handled in the above cases. // So, we need to handle only unary nodes in default. - return getCost(((UnaryNode) node).getChild()); + cost = getCost(((UnaryNode) node).getChild()); + break; } + + return cost * COMPUTATION_FACTOR; } } \ No newline at end of file diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinEdge.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinEdge.java index fb4fae1375..3b67df03ae 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinEdge.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinEdge.java @@ -18,58 +18,70 @@ package org.apache.tajo.plan.joinorder; -import com.google.common.collect.Sets; import org.apache.tajo.algebra.JoinType; +import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaUtil; import org.apache.tajo.plan.expr.EvalNode; -import org.apache.tajo.plan.logical.LogicalNode; +import org.apache.tajo.plan.logical.JoinSpec; import org.apache.tajo.util.StringUtils; -import java.util.Collections; import java.util.Set; public class JoinEdge { - private final JoinType joinType; - private final LogicalNode leftRelation; - private final LogicalNode rightRelation; - private final Set joinQual = Sets.newHashSet(); - - public JoinEdge(JoinType joinType, LogicalNode leftRelation, LogicalNode rightRelation) { - this.joinType = joinType; - this.leftRelation = leftRelation; - this.rightRelation = rightRelation; - } + private final JoinSpec joinSpec; + private final JoinVertex leftVertex; + private final JoinVertex rightVertex; + private final Schema schema; - public JoinEdge(JoinType joinType, LogicalNode leftRelation, LogicalNode rightRelation, - EvalNode ... condition) { - this(joinType, leftRelation, rightRelation); - Collections.addAll(joinQual, condition); + public JoinEdge(JoinSpec joinSpec, JoinVertex leftVertex, JoinVertex rightVertex) { + this.joinSpec = joinSpec; + this.leftVertex = leftVertex; + this.rightVertex = rightVertex; + this.schema = SchemaUtil.merge(leftVertex.getSchema(), rightVertex.getSchema()); } public JoinType getJoinType() { - return joinType; + return joinSpec.getType(); } - public LogicalNode getLeftRelation() { - return leftRelation; + public boolean hasJoinQual() { + return joinSpec.hasPredicates(); } - public LogicalNode getRightRelation() { - return rightRelation; + public void addJoinQual(EvalNode joinQual) { + this.joinSpec.addPredicate(joinQual); } - public boolean hasJoinQual() { - return joinQual.size() > 0; + public void addJoinPredicates(Set predicates) { + this.joinSpec.addPredicates(predicates); } - public void addJoinQual(EvalNode joinQual) { - this.joinQual.add(joinQual); + public Set getJoinQual() { + return joinSpec.getPredicates(); + } + + public JoinSpec getJoinSpec() { + return this.joinSpec; } - public EvalNode [] getJoinQual() { - return joinQual.toArray(new EvalNode[joinQual.size()]); + public EvalNode getSingletonJoinQual() { + return joinSpec.getSingletonPredicate(); } public String toString() { - return leftRelation + " " + joinType + " " + rightRelation + " ON " + StringUtils.join(joinQual, ", "); + return leftVertex + " " + joinSpec.getType() + " " + rightVertex + " ON " + + StringUtils.join(joinSpec.getPredicates(), ", "); + } + + public JoinVertex getLeftVertex() { + return leftVertex; + } + + public JoinVertex getRightVertex() { + return rightVertex; + } + + public Schema getSchema() { + return schema; } } diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraph.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraph.java index 9ae5245b97..4727b2ea4e 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraph.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraph.java @@ -18,140 +18,36 @@ package org.apache.tajo.plan.joinorder; -import com.google.common.collect.Sets; -import org.apache.tajo.algebra.JoinType; -import org.apache.tajo.catalog.CatalogUtil; -import org.apache.tajo.catalog.Column; -import org.apache.tajo.util.StringUtils; -import org.apache.tajo.util.graph.SimpleUndirectedGraph; -import org.apache.tajo.plan.LogicalPlan; -import org.apache.tajo.plan.NamedExprsManager; -import org.apache.tajo.plan.util.PlannerUtil; import org.apache.tajo.plan.PlanningException; -import org.apache.tajo.plan.expr.AlgebraicUtil; -import org.apache.tajo.plan.expr.BinaryEval; -import org.apache.tajo.plan.expr.EvalNode; -import org.apache.tajo.plan.expr.EvalTreeUtil; -import org.apache.tajo.plan.logical.JoinNode; -import org.apache.tajo.plan.logical.RelationNode; - -import java.util.*; - -public class JoinGraph extends SimpleUndirectedGraph { - - private String [] guessRelationsFromJoinQual(LogicalPlan.QueryBlock block, BinaryEval joinCondition) - throws PlanningException { +import org.apache.tajo.plan.logical.JoinSpec; +import org.apache.tajo.plan.util.PlannerUtil; +import org.apache.tajo.util.graph.SimpleUndirectedGraph; - // Note that we can guarantee that each join qual used here is a singleton. - // This is because we use dissect a join qual into conjunctive normal forms. - // In other words, each join qual has a form 'col1 = col2'. - Column leftExpr = EvalTreeUtil.findAllColumnRefs(joinCondition.getLeftExpr()).get(0); - Column rightExpr = EvalTreeUtil.findAllColumnRefs(joinCondition.getRightExpr()).get(0); +import java.util.List; - // 0 - left table, 1 - right table - String [] relationNames = new String[2]; +/** + * A join graph must be the connected graph + */ +public class JoinGraph extends SimpleUndirectedGraph { - NamedExprsManager namedExprsMgr = block.getNamedExprsManager(); - if (leftExpr.hasQualifier()) { - relationNames[0] = leftExpr.getQualifier(); - } else { - if (namedExprsMgr.isAliasedName(leftExpr.getSimpleName())) { - String columnName = namedExprsMgr.getOriginalName(leftExpr.getSimpleName()); - String qualifier = CatalogUtil.extractQualifier(columnName); - relationNames[0] = qualifier; - } else { - // search for a relation which evaluates a right term included in a join condition - for (RelationNode rel : block.getRelations()) { - if (rel.getOutSchema().contains(leftExpr)) { - String qualifier = rel.getCanonicalName(); - relationNames[0] = qualifier; - } - } + private boolean isSymmetricJoinOnly = true; - if (relationNames[0] == null) { // if not found - throw new PlanningException("Cannot expect a referenced relation: " + leftExpr); - } - } + public JoinEdge addJoin(JoinGraphContext context, JoinSpec joinSpec, JoinVertex left, JoinVertex right) throws PlanningException { + JoinEdge edge = context.getCachedOrNewJoinEdge(joinSpec, left, right); + isSymmetricJoinOnly &= PlannerUtil.isCommutativeJoinType(edge.getJoinType()); + this.addEdge(left, right, edge); + List incomeToLeft = getIncomingEdges(left); + if (incomeToLeft == null || incomeToLeft.isEmpty()) { + context.addRootVertexes(left); } - - if (rightExpr.hasQualifier()) { - relationNames[1] = rightExpr.getQualifier(); - } else { - if (namedExprsMgr.isAliasedName(rightExpr.getSimpleName())) { - String columnName = namedExprsMgr.getOriginalName(rightExpr.getSimpleName()); - String qualifier = CatalogUtil.extractQualifier(columnName); - relationNames[1] = qualifier; - } else { - // search for a relation which evaluates a right term included in a join condition - for (RelationNode rel : block.getRelations()) { - if (rel.getOutSchema().contains(rightExpr)) { - String qualifier = rel.getCanonicalName(); - relationNames[1] = qualifier; - } - } - - if (relationNames[1] == null) { // if not found - throw new PlanningException("Cannot expect a referenced relation: " + rightExpr); - } - } + if (context.getRootVertexes().size() > 1) { + // for the case of cycle + context.removeRootVertexes(right); } - - return relationNames; + return edge; } - public Collection addJoin(LogicalPlan plan, LogicalPlan.QueryBlock block, - JoinNode joinNode) throws PlanningException { - if (joinNode.getJoinType() == JoinType.LEFT_OUTER || joinNode.getJoinType() == JoinType.RIGHT_OUTER) { - JoinEdge edge = new JoinEdge(joinNode.getJoinType(), - joinNode.getLeftChild(), joinNode.getRightChild(), joinNode.getJoinQual()); - - SortedSet leftNodeRelationName = - new TreeSet(PlannerUtil.getRelationLineageWithinQueryBlock(plan, joinNode.getLeftChild())); - SortedSet rightNodeRelationName = - new TreeSet(PlannerUtil.getRelationLineageWithinQueryBlock(plan, joinNode.getRightChild())); - - addEdge( - StringUtils.join(leftNodeRelationName, ", "), - StringUtils.join(rightNodeRelationName, ", "), - edge); - - Set allInOneCnf = new HashSet(); - allInOneCnf.add(joinNode.getJoinQual()); - - return allInOneCnf; - } else { - Set cnf = Sets.newHashSet(AlgebraicUtil.toConjunctiveNormalFormArray(joinNode.getJoinQual())); - - for (EvalNode singleQual : cnf) { - if (EvalTreeUtil.isJoinQual(block, - joinNode.getLeftChild().getOutSchema(), - joinNode.getRightChild().getOutSchema(), - singleQual, true)) { - String[] relations = guessRelationsFromJoinQual(block, (BinaryEval) singleQual); - String leftExprRelName = relations[0]; - String rightExprRelName = relations[1]; - - Collection leftLineage = PlannerUtil.getRelationLineageWithinQueryBlock(plan, joinNode.getLeftChild()); - - boolean isLeftExprForLeftTable = leftLineage.contains(leftExprRelName); - - JoinEdge edge = getEdge(leftExprRelName, rightExprRelName); - if (edge != null) { - edge.addJoinQual(singleQual); - } else { - if (isLeftExprForLeftTable) { - edge = new JoinEdge(joinNode.getJoinType(), - block.getRelation(leftExprRelName), block.getRelation(rightExprRelName), singleQual); - addEdge(leftExprRelName, rightExprRelName, edge); - } else { - edge = new JoinEdge(joinNode.getJoinType(), - block.getRelation(rightExprRelName), block.getRelation(leftExprRelName), singleQual); - addEdge(rightExprRelName, leftExprRelName, edge); - } - } - } - } - return cnf; - } + public boolean isSymmetricJoinOnly() { + return isSymmetricJoinOnly; } -} +} \ No newline at end of file diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraphContext.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraphContext.java new file mode 100644 index 0000000000..97cd5694d5 --- /dev/null +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraphContext.java @@ -0,0 +1,137 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tajo.plan.joinorder; + +import org.apache.tajo.plan.expr.EvalNode; +import org.apache.tajo.plan.logical.JoinSpec; +import org.apache.tajo.util.Pair; +import org.apache.tajo.util.TUtil; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; + +public class JoinGraphContext { + private Set rootVertexes = TUtil.newHashSet(); // most left vertex in the join plan + private JoinGraph joinGraph = new JoinGraph(); + + // New join edges are frequently created during join order optimization. + // This cache is to reduce the overhead of join edge creation. + private Map, JoinEdge> edgeCache = TUtil.newHashMap(); + + // candidate predicates contain the predicates which are not pushed to any join nodes yet. + // evaluated predicates contain the predicates which are already pushed to some join nodes. + private Set candidateJoinConditions = TUtil.newHashSet(); // predicates from the on clause + private Set candidateJoinFilters = TUtil.newHashSet(); // predicates from the where clause + private Set evaluatedJoinConditions = TUtil.newHashSet(); // predicates from the on clause + private Set evaluatedJoinFilters = TUtil.newHashSet(); // predicates from the where clause + + public JoinGraph getJoinGraph() { + return joinGraph; + } + + public void addCandidateJoinConditions(Collection candidates) { + for (EvalNode eachCandidate : candidates) { + if (!evaluatedJoinConditions.contains(eachCandidate)) { + candidateJoinConditions.add(eachCandidate); + } + } + } + + public void addCandidateJoinFilters(Collection candidates) { + for (EvalNode eachCandidate : candidates) { + if (!evaluatedJoinFilters.contains(eachCandidate)) { + candidateJoinFilters.add(eachCandidate); + } + } + } + + public void removeCandidateJoinConditions(Collection willBeRemoved) { + candidateJoinConditions.remove(willBeRemoved); + } + + public void removeCandidateJoinFilters(Collection willBeRemoved) { + candidateJoinFilters.remove(willBeRemoved); + } + + public void markAsEvaluatedJoinConditions(Collection willBeMarked) { + for (EvalNode eachEval : willBeMarked) { + if (candidateJoinConditions.contains(eachEval)) { + candidateJoinConditions.remove(eachEval); + evaluatedJoinConditions.add(eachEval); + } + } + } + + public void markAsEvaluatedJoinFilters(Collection willBeMarked) { + for (EvalNode eachEval : willBeMarked) { + if (candidateJoinFilters.contains(eachEval)) { + candidateJoinFilters.remove(eachEval); + evaluatedJoinFilters.add(eachEval); + } + } + } + + public Set getCandidateJoinConditions() { + return candidateJoinConditions; + } + + public Set getCandidateJoinFilters() { + return candidateJoinFilters; + } + + public Set getEvaluatedJoinConditions() { + return evaluatedJoinConditions; + } + + public Set getEvaluatedJoinFilters() { + return evaluatedJoinFilters; + } + + public Set getRootVertexes() { + return rootVertexes; + } + + public void addRootVertexes(JoinVertex rootVertex) { + this.rootVertexes.add(rootVertex); + } + + public boolean removeRootVertexes(JoinVertex rootVertex) { + return this.rootVertexes.remove(rootVertex); + } + + public void replaceRootVertexes(JoinVertex oldRoot, JoinVertex newRoot) { + removeRootVertexes(oldRoot); + addRootVertexes(newRoot); + } + + public JoinEdge cacheEdge(JoinEdge edge) { + edgeCache.put(new Pair(edge.getLeftVertex(), edge.getRightVertex()), edge); + return edge; + } + + public JoinEdge getCachedOrNewJoinEdge(JoinSpec joinSpec, JoinVertex left, JoinVertex right) { + Pair cacheKey = new Pair(left, right); + if (edgeCache.containsKey(cacheKey)) { + return edgeCache.get(cacheKey); + } else { + return cacheEdge(new JoinEdge(joinSpec, left, right)); + } + } +} \ No newline at end of file diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java index 2dd0670579..d9f4c69c5f 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java @@ -33,16 +33,16 @@ public interface JoinOrderAlgorithm { /** + * Find the best join order. * * @param plan * @param block - * @param joinGraph A join graph represents join conditions and their connections among relations. - * Given a graph, each vertex represents a relation, and each edge contains a join condition. - * A join graph does not contain relations that do not have any corresponding join condition. - * @param relationsWithoutQual The names of relations that do not have any corresponding join condition. - * @return + * @param joinGraphContext A left-deep join tree represents join conditions and the join relationships among + * relations. A vertex can be a relation or a group of joined relations. + * An edge represents a join relation between two vertexes. + * @return found join order * @throws org.apache.tajo.plan.PlanningException */ - FoundJoinOrder findBestOrder(LogicalPlan plan, LogicalPlan.QueryBlock block, JoinGraph joinGraph, - Set relationsWithoutQual) throws PlanningException; + FoundJoinOrder findBestOrder(LogicalPlan plan, LogicalPlan.QueryBlock block, JoinGraphContext joinGraphContext) + throws PlanningException; } diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderingUtil.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderingUtil.java new file mode 100644 index 0000000000..3f6a1caf1d --- /dev/null +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderingUtil.java @@ -0,0 +1,313 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tajo.plan.joinorder; + +import org.apache.tajo.algebra.JoinType; +import org.apache.tajo.catalog.Column; +import org.apache.tajo.plan.expr.EvalNode; +import org.apache.tajo.plan.expr.EvalTreeUtil; +import org.apache.tajo.plan.expr.EvalType; +import org.apache.tajo.plan.util.PlannerUtil; +import org.apache.tajo.util.TUtil; + +import java.util.List; +import java.util.Set; + +public class JoinOrderingUtil { + + /** + * Find join conditions which can be evaluated at the given join edge. The result depends on the isOnPredicate flag + * which represents the given set of predicates is from the on clause of not. + * + * @param candidates set of predicates + * @param edge join edge + * @param isOnPredicates flag to represent the candidates from the on clause of not + * @return predicates which can be evaluated at the given join edge + */ + public static Set findJoinConditionForJoinVertex(Set candidates, JoinEdge edge, + boolean isOnPredicates) { + Set conditionsForThisJoin = TUtil.newHashSet(); + for (EvalNode predicate : candidates) { + if (EvalTreeUtil.isJoinQual(predicate, false) + && checkIfEvaluatedAtEdge(predicate, edge, isOnPredicates)) { + conditionsForThisJoin.add(predicate); + } + } + return conditionsForThisJoin; + } + + /** + * Check whether the given predicate can be evaluated at the given join edge or not. The result depends on + * the isOnPredicate flag which represents the given predicate is from the on clause of not. + * + * @param evalNode predicate + * @param edge join edge + * @param isOnPredicate flag to represent the candidates from the on clause of not + * @return true if the predicate can be evaluated at the given join edge + */ + public static boolean checkIfEvaluatedAtEdge(EvalNode evalNode, JoinEdge edge, boolean isOnPredicate) { + Set columnRefs = EvalTreeUtil.findUniqueColumns(evalNode); + if (EvalTreeUtil.findDistinctAggFunction(evalNode).size() > 0) { + return false; + } + if (EvalTreeUtil.findEvalsByType(evalNode, EvalType.WINDOW_FUNCTION).size() > 0) { + return false; + } + if (columnRefs.size() > 0 && !edge.getSchema().containsAll(columnRefs)) { + return false; + } + // Currently, join filters cannot be evaluated at joins + if (PlannerUtil.isOuterJoinType(edge.getJoinType()) && !isOnPredicate) { + return false; + } + return true; + } + + /** + * Check the associativity between the given two join edges. + * For the associativity rules, please refer to the below isAssociativeJoinType() function. + * + * @param context join graph context + * @param leftEdge left join edge + * @param rightEdge right join edge + * @return true if two given join edges are associative. + */ + public static boolean isAssociativeJoin(JoinGraphContext context, JoinEdge leftEdge, JoinEdge rightEdge) { + if (isAssociativeJoinType(leftEdge.getJoinType(), rightEdge.getJoinType())) { + + // NOTE: There will be more predicates which are able to be evaluated at input join edges. + // In this case, the input edges are not considered as associative joins to evaluate those predicates at proper + // join edges, even though they have the associative relationship. + + // Create a temporal left-deep join node to find the potentially evaluatable quals. + JoinedRelationsVertex tempLeftChild = new JoinedRelationsVertex(leftEdge); + JoinEdge tempEdge = context.getCachedOrNewJoinEdge(rightEdge.getJoinSpec(), tempLeftChild, + rightEdge.getRightVertex()); + if ((rightEdge.getJoinType() != JoinType.INNER && rightEdge.getJoinType() != JoinType.CROSS) + || (leftEdge.getJoinType() != JoinType.INNER && leftEdge.getJoinType() != JoinType.CROSS)) { + if (!findJoinConditionForJoinVertex(context.getCandidateJoinConditions(), tempEdge, true).isEmpty()) { + return false; + } + if (!findJoinConditionForJoinVertex(context.getCandidateJoinFilters(), tempEdge, true).isEmpty()) { + return false; + } + } + return true; + } + return false; + } + + /** + * Check two join types are associative according to the following rule. + * + *

Associativity rules

+ * + * ============================================================== + * Left-Hand Bracketed | Right-Hand Bracketed | Equivalence + * ============================================================== + * (A inner B) inner C | A inner (B inner C) | Equivalent + * (A left B) inner C | A left (B inner C) | Not equivalent + * (A right B) inner C | A right (B inner C) | Equivalent + * (A full B) inner C | A full (B inner C) | Not equivalent + * (A inner B) left C | A inner (B left C) | Equivalent + * (A left B) left C | A left (B left C) | Equivalent + * (A right B) left C | A right (B left C) | Equivalent + * (A full B) left C | A full (B left C) | Equivalent + * (A inner B) right C | A inner (B right C) | Not equivalent + * (A left B) right C | A left (B right C) | Not equivalent + * (A right B) right C | A right (B right C) | Equivalent + * (A full B) right C | A full (B right C) | Not equivalent + * (A inner B) full C | A inner (B full C) | Not equivalent + * (A left B) full C | A left (B full C) | Not equivalent + * (A right B) full C | A right (B full C) | Equivalent + * (A full B) full C | A full (B full C) | Equivalent + * ============================================================== + * + * @param leftType + * @param rightType + * @return true if two join types are associative. + */ + public static boolean isAssociativeJoinType(JoinType leftType, JoinType rightType) { + if (leftType == rightType) { + return true; + } + + if (leftType == JoinType.INNER && rightType == JoinType.CROSS || + leftType == JoinType.CROSS && rightType == JoinType.INNER) { + return true; + } + + if (leftType == JoinType.RIGHT_OUTER) { + return true; + } + + if (leftType == JoinType.LEFT_OUTER) { + // When the left type is the left outer join, input join types are associative + // if the right type is also the left outer join. + // This case is already checked above. + return false; + } + + if ((leftType == JoinType.INNER) || leftType == JoinType.CROSS) { + if (rightType == JoinType.LEFT_OUTER) { + return true; + } else { + return false; + } + } + + if (leftType == JoinType.FULL_OUTER) { + if (rightType == JoinType.LEFT_OUTER) { + return true; + } else { + return false; + } + } + + return false; + } + + /** + * Find all interchangeable vertexes from the given vertex. + * Join edges between relations are found at runtime. + * + *

Vertex interchange rules

+ * - A vertex is interchangeable with the start vertex if it is reachable. + * - A vertex is reachable from the start vertex if it is able to replace another vertex which is connected to the start vertex. + * - A vertex is able to replace another vertex if they are connected without violating join commutativity or join associativity. + * + * @param context join graph context + * @param from start vertex + * @return + */ + public static Set getAllInterchangeableVertexes(JoinGraphContext context, JoinVertex from) { + Set founds = TUtil.newHashSet(); + getAllInterchangeableVertexes(founds, context, from); + return founds; + } + + public static void getAllInterchangeableVertexes(Set founds, JoinGraphContext context, JoinVertex vertex) { + founds.add(vertex); + Set foundAtThis = TUtil.newHashSet(); + List candidateEdges = context.getJoinGraph().getOutgoingEdges(vertex); + if (candidateEdges != null) { + for (JoinEdge candidateEdge : candidateEdges) { + // Evaluatable quals must be added to check the associativity of join edges. + candidateEdge = updateQualIfNecessary(context, candidateEdge); + if (!founds.contains(candidateEdge.getRightVertex())) { + List rightEdgesOfCandidate = context.getJoinGraph().getOutgoingEdges(candidateEdge.getRightVertex()); + boolean reacheable = false; + if (rightEdgesOfCandidate != null) { + reacheable = true; + for (JoinEdge rightEdgeOfCandidate : rightEdgesOfCandidate) { + // Evaluatable quals must be added to check the associativity of join edges. + rightEdgeOfCandidate = updateQualIfNecessary(context, rightEdgeOfCandidate); + if (!isAssociativeJoin(context, candidateEdge, rightEdgeOfCandidate)) { + reacheable = false; + break; + } + } + } + if (reacheable) { + foundAtThis.add(candidateEdge.getRightVertex()); + } + } + } + for (JoinVertex v : foundAtThis) { + getAllInterchangeableVertexes(founds, context, v); + } + } + } + + /** + * Check the given two join edges are equal or symmetric. + * + * @param edge1 + * @param edge2 + * @return True if two join edges are equal or symmetric. + */ + public static boolean isEqualsOrSymmetric(JoinEdge edge1, JoinEdge edge2) { + if (edge1.equals(edge2) || isSymmetric(edge1, edge2)) { + return true; + } + return false; + } + + /** + * Given two join edges e1 and e2, they are symmetric whey they satisfy the follwing conditions. + * + *
    + *
  • e1 and e2 have the same commutative join type.
  • + *
  • e1 and e2 have the same join condition.
  • + *
  • The left and right vertexes of e1 are the right and left vertexes of e2, respectively.
  • + *
+ * + * @param edge1 + * @param edge2 + * @return True if two join edges are symmetric. + */ + public static boolean isSymmetric(JoinEdge edge1, JoinEdge edge2) { + if (edge1.getLeftVertex().equals(edge2.getRightVertex()) && + edge1.getRightVertex().equals(edge2.getLeftVertex()) && + edge1.getJoinSpec().equals(edge2.getJoinSpec()) && + PlannerUtil.isCommutativeJoinType(edge1.getJoinType())) { + return true; + } + return false; + } + + /** + * If there are predicates which can be evaluated at the given join edge, push those predicates to the join edge. + * + * @param context + * @param edge + * @return + */ + public static JoinEdge updateQualIfNecessary(JoinGraphContext context, JoinEdge edge) { + Set additionalPredicates = findJoinConditionForJoinVertex( + context.getCandidateJoinConditions(), edge, true); + additionalPredicates.addAll(findJoinConditionForJoinVertex( + context.getCandidateJoinFilters(), edge, false)); + edge.addJoinPredicates(additionalPredicates); + return edge; + } + + /** + * Find all edges that are associative with the given edge. + * + * @param context + * @param edge + * @return + */ + public static Set getAllAssociativeEdges(JoinGraphContext context, JoinEdge edge) { + Set associativeEdges = TUtil.newHashSet(); + JoinVertex start = edge.getRightVertex(); + List candidateEdges = context.getJoinGraph().getOutgoingEdges(start); + if (candidateEdges != null) { + for (JoinEdge candidateEdge : candidateEdges) { + candidateEdge = updateQualIfNecessary(context, candidateEdge); + if (!isEqualsOrSymmetric(edge, candidateEdge) && + isAssociativeJoin(context, edge, candidateEdge)) { + associativeEdges.add(candidateEdge); + } + } + } + return associativeEdges; + } +} diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinVertex.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinVertex.java new file mode 100644 index 0000000000..328b474009 --- /dev/null +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinVertex.java @@ -0,0 +1,32 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tajo.plan.joinorder; + +import org.apache.tajo.catalog.Schema; +import org.apache.tajo.plan.LogicalPlan; +import org.apache.tajo.plan.logical.LogicalNode; + +import java.util.Set; + +public interface JoinVertex { + + Schema getSchema(); + Set getRelations(); + LogicalNode buildPlan(LogicalPlan plan, LogicalPlan.QueryBlock block); +} diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinedRelationsVertex.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinedRelationsVertex.java new file mode 100644 index 0000000000..6a72bb894f --- /dev/null +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinedRelationsVertex.java @@ -0,0 +1,125 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tajo.plan.joinorder; + +import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaUtil; +import org.apache.tajo.plan.LogicalPlan; +import org.apache.tajo.plan.logical.JoinNode; +import org.apache.tajo.plan.logical.LogicalNode; +import org.apache.tajo.plan.logical.RelationNode; +import org.apache.tajo.plan.util.PlannerUtil; +import org.apache.tajo.util.TUtil; + +import java.util.Set; + +/** + * The join order is fixed in this vertex. + */ +public class JoinedRelationsVertex implements JoinVertex { + + private final Set relations = TUtil.newHashSet(); + private final JoinEdge joinEdge; + + public JoinedRelationsVertex(JoinEdge joinEdge) { + this.joinEdge = joinEdge; + findRelationVertexes(this.joinEdge); + } + + private void findRelationVertexes(JoinEdge edge) { + if (edge.getLeftVertex() instanceof JoinedRelationsVertex) { + JoinedRelationsVertex leftChild = (JoinedRelationsVertex) edge.getLeftVertex(); + findRelationVertexes(leftChild.getJoinEdge()); + } else { + relations.add((RelationVertex) edge.getLeftVertex()); + } + if (edge.getRightVertex() instanceof JoinedRelationsVertex) { + JoinedRelationsVertex rightChild = (JoinedRelationsVertex) edge.getRightVertex(); + findRelationVertexes(rightChild.getJoinEdge()); + } else { + relations.add((RelationVertex) edge.getRightVertex()); + } + } + + public JoinEdge getJoinEdge() { + return joinEdge; + } + + @Override + public Schema getSchema() { + return joinEdge.getSchema(); + } + + @Override + public String toString() { + return joinEdge.toString(); + } + + @Override + public Set getRelations() { + return relations; + } + + @Override + public LogicalNode buildPlan(LogicalPlan plan, LogicalPlan.QueryBlock block) { + // TODO + LogicalNode leftChild = joinEdge.getLeftVertex().buildPlan(plan, block); + LogicalNode rightChild = joinEdge.getRightVertex().buildPlan(plan, block); + + JoinNode joinNode = plan.createNode(JoinNode.class); + + if (PlannerUtil.isCommutativeJoinType(joinEdge.getJoinType())) { + // if only one operator is relation + if ((leftChild instanceof RelationNode) && !(rightChild instanceof RelationNode)) { + // for left deep + joinNode.init(joinEdge.getJoinType(), rightChild, leftChild); + } else { + // if both operators are relation or if both are relations + // we don't need to concern the left-right position. + joinNode.init(joinEdge.getJoinType(), leftChild, rightChild); + } + } else { + joinNode.init(joinEdge.getJoinType(), leftChild, rightChild); + } + + Schema mergedSchema = SchemaUtil.merge(joinNode.getLeftChild().getOutSchema(), + joinNode.getRightChild().getOutSchema()); + joinNode.setInSchema(mergedSchema); + joinNode.setOutSchema(mergedSchema); + if (joinEdge.hasJoinQual()) { + joinNode.setJoinQual(joinEdge.getSingletonJoinQual()); + } + block.registerNode(joinNode); + return joinNode; + } + + @Override + public boolean equals(Object o) { + if (o instanceof JoinedRelationsVertex) { + return this.joinEdge.equals(((JoinedRelationsVertex) o).joinEdge); + } + return false; + } + + @Override + public int hashCode() { + return joinEdge.hashCode(); + } + +} diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/RelationVertex.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/RelationVertex.java new file mode 100644 index 0000000000..a7e3a4fb16 --- /dev/null +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/RelationVertex.java @@ -0,0 +1,76 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tajo.plan.joinorder; + +import org.apache.tajo.catalog.Schema; +import org.apache.tajo.plan.LogicalPlan; +import org.apache.tajo.plan.logical.LogicalNode; +import org.apache.tajo.plan.logical.RelationNode; +import org.apache.tajo.util.TUtil; + +import java.util.Set; + +public class RelationVertex implements JoinVertex{ + + private final RelationNode relationNode; + private final LogicalNode topLogicalNode; + +public RelationVertex(RelationNode relationNode) { + this.relationNode = relationNode; + this.topLogicalNode = relationNode; + } + + @Override + public String toString() { + return relationNode.getCanonicalName(); + } + + @Override + public boolean equals(Object o) { + if (o instanceof RelationVertex) { + RelationVertex other = (RelationVertex) o; + return this.relationNode.equals(other.relationNode) && this.topLogicalNode.equals(other.topLogicalNode); + } + return false; + } + + @Override + public int hashCode() { + return relationNode.hashCode(); + } + + @Override + public Schema getSchema() { + return relationNode.getOutSchema(); + } + + @Override + public Set getRelations() { + return TUtil.newHashSet(this); + } + + @Override + public LogicalNode buildPlan(LogicalPlan plan, LogicalPlan.QueryBlock block) { + return topLogicalNode; + } + + public LogicalNode getRelationNode() { + return relationNode; + } +} diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinNode.java b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinNode.java index a0d81255ad..4f36026662 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinNode.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinNode.java @@ -25,7 +25,6 @@ import org.apache.tajo.algebra.JoinType; import org.apache.tajo.plan.PlanString; import org.apache.tajo.plan.Target; -import org.apache.tajo.plan.expr.BinaryEval; import org.apache.tajo.plan.expr.EvalNode; import org.apache.tajo.plan.util.PlannerUtil; import org.apache.tajo.util.TUtil; @@ -33,8 +32,7 @@ import java.util.Arrays; public class JoinNode extends BinaryNode implements Projectable, Cloneable { - @Expose private JoinType joinType; - @Expose private EvalNode joinQual; + @Expose private JoinSpec joinSpec = new JoinSpec(); @Expose private Target[] targets; public JoinNode(int pid) { @@ -42,29 +40,33 @@ public JoinNode(int pid) { } public void init(JoinType joinType, LogicalNode left, LogicalNode right) { - this.joinType = joinType; + this.joinSpec.setType(joinType); setLeftChild(left); setRightChild(right); } public JoinType getJoinType() { - return this.joinType; + return this.joinSpec.getType(); + } + + public JoinSpec getJoinSpec() { + return joinSpec; } public void setJoinType(JoinType joinType) { - this.joinType = joinType; + this.joinSpec.setType(joinType); } public void setJoinQual(EvalNode joinQual) { - this.joinQual = joinQual; + this.joinSpec.setSingletonPredicate(joinQual); } public boolean hasJoinQual() { - return this.joinQual != null; + return this.joinSpec.hasPredicates(); } public EvalNode getJoinQual() { - return this.joinQual; + return this.joinSpec.getSingletonPredicate(); } @Override @@ -85,9 +87,9 @@ public void setTargets(Target[] targets) { @Override public PlanString getPlanString() { - PlanString planStr = new PlanString(this).appendTitle("(").appendTitle(joinType.name()).appendTitle(")"); + PlanString planStr = new PlanString(this).appendTitle("(").appendTitle(joinSpec.getType().name()).appendTitle(")"); if (hasJoinQual()) { - planStr.addExplan("Join Cond: " + joinQual.toString()); + planStr.addExplan("Join Cond: " + joinSpec.getSingletonPredicate().toString()); } if (hasTargets()) { @@ -112,8 +114,7 @@ public PlanString getPlanString() { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((joinQual == null) ? 0 : joinQual.hashCode()); - result = prime * result + ((joinType == null) ? 0 : joinType.hashCode()); + result = prime * result + joinSpec.hashCode(); result = prime * result + Arrays.hashCode(targets); return result; } @@ -122,9 +123,8 @@ public int hashCode() { public boolean equals(Object obj) { if (obj instanceof JoinNode) { JoinNode other = (JoinNode) obj; - boolean eq = this.joinType.equals(other.joinType); + boolean eq = this.joinSpec.equals(other.joinSpec); eq &= TUtil.checkEquals(this.targets, other.targets); - eq &= TUtil.checkEquals(joinQual, other.joinQual); return eq && leftChild.equals(other.leftChild) && rightChild.equals(other.rightChild); } else { return false; @@ -134,8 +134,7 @@ public boolean equals(Object obj) { @Override public Object clone() throws CloneNotSupportedException { JoinNode join = (JoinNode) super.clone(); - join.joinType = this.joinType; - join.joinQual = this.joinQual == null ? null : (BinaryEval) this.joinQual.clone(); + join.joinSpec = (JoinSpec) this.joinSpec.clone(); if (hasTargets()) { join.targets = new Target[targets.length]; for (int i = 0; i < targets.length; i++) { @@ -146,9 +145,9 @@ public Object clone() throws CloneNotSupportedException { } public String toString() { - StringBuilder sb = new StringBuilder("Join (type").append(joinType); + StringBuilder sb = new StringBuilder("Join (type").append(joinSpec.getType()); if (hasJoinQual()) { - sb.append(",filter=").append(joinQual); + sb.append(",filter=").append(joinSpec.getSingletonPredicate()); } sb.append(")"); return sb.toString(); diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinSpec.java b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinSpec.java new file mode 100644 index 0000000000..7643e4b836 --- /dev/null +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinSpec.java @@ -0,0 +1,132 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tajo.plan.logical; + +import com.google.common.base.Objects; +import org.apache.tajo.algebra.JoinType; +import org.apache.tajo.plan.expr.AlgebraicUtil; +import org.apache.tajo.plan.expr.EvalNode; +import org.apache.tajo.util.TUtil; + +import java.util.Comparator; +import java.util.Set; +import java.util.TreeSet; + +public class JoinSpec implements Cloneable { + + private static class EvalNodeComparator implements Comparator { + + @Override + public int compare(EvalNode e1, EvalNode e2) { + return e1.toJson().compareTo(e2.toJson()); + } + } + + private JoinType type = null; + private Set predicates = new TreeSet(new EvalNodeComparator()); + + public JoinSpec() { + + } + + public JoinSpec(JoinType type) { + this.type = type; + } + + public void addPredicate(EvalNode predicate) { + + if (!predicates.isEmpty()) { + if (type == JoinType.CROSS) { + type = JoinType.INNER; + } + } + this.predicates.add(predicate); + } + + public void addPredicates(Set predicates) { + if (!predicates.isEmpty()) { + if (type == JoinType.CROSS) { + type = JoinType.INNER; + } + } + this.predicates.addAll(predicates); + } + + public boolean hasPredicates() { + return predicates.size() > 0; + } + + public void setPredicates(Set predicates) { + this.predicates.clear(); + if (predicates == null || predicates.isEmpty()) { + if (type == JoinType.INNER) { + type = JoinType.CROSS; + } + } else { + this.predicates.addAll(predicates); + } + } + + public void setSingletonPredicate(EvalNode predicates) { + this.setPredicates(TUtil.newHashSet(AlgebraicUtil.toConjunctiveNormalFormArray(predicates))); + } + + public EvalNode getSingletonPredicate() { + if (predicates.size() > 1) { + return AlgebraicUtil.createSingletonExprFromCNF(predicates.toArray(new EvalNode[predicates.size()])); + } else if (predicates.size() == 1) { + return predicates.iterator().next(); + } else { + return null; + } + } + + public Set getPredicates() { + return predicates; + } + + public JoinType getType() { + return type; + } + + public void setType(JoinType type) { + this.type = type; + } + + @Override + public boolean equals(Object o) { + if (o instanceof JoinSpec) { + JoinSpec other = (JoinSpec) o; + return this.type == other.type && this.predicates.equals(other.predicates); + } + return false; + } + + @Override + public int hashCode() { + return Objects.hashCode(type, predicates.hashCode()); + } + + @Override + public Object clone() throws CloneNotSupportedException { + JoinSpec clone = new JoinSpec(this.type); + clone.setPredicates(this.predicates); + return clone; + } +} diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java index 0ba988f472..8e369d65ff 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java @@ -180,6 +180,7 @@ public boolean equals(Object obj) { eq = eq && TUtil.checkEquals(this.tableDesc, other.tableDesc); eq = eq && TUtil.checkEquals(this.qual, other.qual); eq = eq && TUtil.checkEquals(this.targets, other.targets); + eq = eq && TUtil.checkEquals(this.alias, other.alias); return eq; } diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java index 587baa5f88..ee932fd54f 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java @@ -248,7 +248,7 @@ private static Set extractNonPushableJoinQuals(final LogicalPlan plan, nonPushableQuals.addAll(extractNonEquiThetaJoinQuals(onPredicates, block, joinNode)); // for outer joins - if (PlannerUtil.isOuterJoin(joinNode.getJoinType())) { + if (PlannerUtil.isOuterJoinType(joinNode.getJoinType())) { nonPushableQuals.addAll(extractNonPushableOuterJoinQuals(plan, onPredicates, wherePredicates, joinNode)); } return nonPushableQuals; diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java b/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java index 19e6ad1076..e314f99671 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java @@ -487,7 +487,7 @@ public static T findTopParentNode(LogicalNode node, Node Preconditions.checkNotNull(type); ParentNodeFinder finder = new ParentNodeFinder(type); - node.postOrder(finder); + node.preOrder(finder); if (finder.getFoundNodes().size() == 0) { return null; @@ -770,11 +770,12 @@ public static T clone(LogicalPlan plan, LogicalNode node } } - public static boolean isCommutativeJoin(JoinType joinType) { - return joinType == JoinType.INNER; + public static boolean isCommutativeJoinType(JoinType joinType) { + // Full outer join is also commutative. + return joinType == JoinType.INNER || joinType == JoinType.CROSS || joinType == JoinType.FULL_OUTER; } - public static boolean isOuterJoin(JoinType joinType) { + public static boolean isOuterJoinType(JoinType joinType) { return joinType == JoinType.LEFT_OUTER || joinType == JoinType.RIGHT_OUTER || joinType==JoinType.FULL_OUTER; } diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java index ecf9050ab2..90ff1dcb24 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java @@ -54,6 +54,7 @@ public CONTEXT visit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock b public RESULT visit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalNode node, Stack stack) throws PlanningException { + preHook(plan, node, stack, context); RESULT current; switch (node.getType()) { case ROOT: @@ -141,6 +142,7 @@ public RESULT visit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock bl throw new PlanningException("Unknown logical node type: " + node.getType()); } + postHook(plan, node, stack, context); return current; }