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;
}