You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2015/12/17 09:28:16 UTC
[01/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Repository: tajo
Updated Branches:
refs/heads/master d306534e9 -> c577102ee
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestTPCH/testTPCHQ5.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestTPCH/testTPCHQ5.plan b/tajo-core-tests/src/test/resources/results/TestTPCH/testTPCHQ5.plan
index 9c6e523..4e2bf5c 100644
--- a/tajo-core-tests/src/test/resources/results/TestTPCH/testTPCHQ5.plan
+++ b/tajo-core-tests/src/test/resources/results/TestTPCH/testTPCHQ5.plan
@@ -8,56 +8,56 @@ SORT(8)
=> out schema:{(2) default.nation.n_name (TEXT), revenue (FLOAT8)}
=> in schema:{(2) ?multiply (FLOAT8), default.nation.n_name (TEXT)}
JOIN(20)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: (default.customer.c_nationkey (INT4) = default.supplier.s_nationkey (INT4) AND default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4))
=> target list: ?multiply (FLOAT8), default.nation.n_name (TEXT)
=> out schema: {(2) ?multiply (FLOAT8), default.nation.n_name (TEXT)}
- => in schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_nationkey (INT4)}
+ => in schema: {(8) ?multiply (FLOAT8), default.customer.c_nationkey (INT4), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.supplier.s_nationkey (INT4)}
JOIN(19)(INNER)
- => 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(5) on default.region
- => filter: default.region.r_name (TEXT) = ASIA
- => 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(4) 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: default.customer.c_custkey (INT4) = default.orders.o_custkey (INT4)
+ => target list: default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (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)}
+ 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)}
JOIN(18)(INNER)
- => 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: {(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 Cond: 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.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4)
+ => out schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => in schema: {(8) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), 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)}
JOIN(17)(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), 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_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)}
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)
+ => out schema: {(3) default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_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)}
+ JOIN(16)(INNER)
+ => 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(5) on default.region
+ => filter: default.region.r_name (TEXT) = ASIA
+ => 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(4) 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -72,19 +72,19 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000014)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
1: eb_0000000000000_0000_000001
2: eb_0000000000000_0000_000002
-3: eb_0000000000000_0000_000004
-4: eb_0000000000000_0000_000005
-5: eb_0000000000000_0000_000003
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
6: eb_0000000000000_0000_000006
7: eb_0000000000000_0000_000008
8: eb_0000000000000_0000_000009
@@ -101,174 +101,174 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
-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)}
+SCAN(4) 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_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (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(5) on default.region
+ => filter: default.region.r_name (TEXT) = ASIA
+ => 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_000004 [LEAF]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
+[Incoming]
+[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] 4 => 6 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_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)}
+JOIN(16)(INNER)
+ => 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_000002
+ => out schema: {(1) default.region.r_regionkey (INT4)}
+ => in schema: {(1) default.region.r_regionkey (INT4)}
+ SCAN(22) on eb_0000000000000_0000_000001
+ => 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_000005 [LEAF]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (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_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(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_000003 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), default.supplier.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
-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(23) on eb_0000000000000_0000_000002
+JOIN(17)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)
+ => out schema: {(3) default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ => in schema: {(4) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(25) 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)}
- SCAN(22) on eb_0000000000000_0000_000001
- => 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)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => 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)}
=======================================================
-Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [LEAF]
=======================================================
-[Incoming]
-[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.lineitem.l_suppkey (INT4), default.orders.o_custkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), num=32)
-JOIN(17)(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), 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: {(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: {(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)}
+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_000008 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
-SCAN(4) 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 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_000009 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-SCAN(5) on default.region
- => filter: default.region.r_name (TEXT) = ASIA
- => 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 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_000007 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 5 => 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), num=32)
[Outgoing]
-[q_0000000000000_0000] 7 => 11 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 11 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.supplier.s_nationkey (INT4), num=32)
JOIN(18)(INNER)
- => 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: {(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 Cond: 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.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4)
+ => out schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => in schema: {(8) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.lineitem.l_suppkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
SCAN(27) on eb_0000000000000_0000_000006
- => 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: {(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)}
+ => 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)}
+ SCAN(26) on eb_0000000000000_0000_000005
+ => out schema: {(3) default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ => in schema: {(3) default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
-[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
+[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4), num=32)
JOIN(19)(INNER)
- => 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)}
+ => Join Cond: default.customer.c_custkey (INT4) = default.orders.o_custkey (INT4)
+ => target list: default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
SCAN(29) on eb_0000000000000_0000_000009
- => out schema: {(1) default.region.r_regionkey (INT4)}
- => in schema: {(1) default.region.r_regionkey (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)}
SCAN(28) on eb_0000000000000_0000_000008
- => 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)}
+ => 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)}
=======================================================
Block Id: eb_0000000000000_0000_000011 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 7 => 11 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 11 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 11 => 12 (type=HASH_SHUFFLE, key=default.nation.n_name (TEXT), num=32)
@@ -279,16 +279,16 @@ GROUP_BY(32)(n_name)
=> out schema:{(2) default.nation.n_name (TEXT), ?sum_7 (FLOAT8)}
=> in schema:{(2) ?multiply (FLOAT8), default.nation.n_name (TEXT)}
JOIN(20)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: (default.customer.c_nationkey (INT4) = default.supplier.s_nationkey (INT4) AND default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4))
=> target list: ?multiply (FLOAT8), default.nation.n_name (TEXT)
=> out schema: {(2) ?multiply (FLOAT8), default.nation.n_name (TEXT)}
- => in schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_nationkey (INT4)}
+ => in schema: {(8) ?multiply (FLOAT8), default.customer.c_nationkey (INT4), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.supplier.s_nationkey (INT4)}
SCAN(31) on eb_0000000000000_0000_000010
- => 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)}
+ => out schema: {(2) default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4)}
+ => in schema: {(2) default.customer.c_nationkey (INT4), default.orders.o_orderkey (INT4)}
SCAN(30) on eb_0000000000000_0000_000007
- => out schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.supplier.s_nationkey (INT4)}
- => in schema: {(4) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.supplier.s_nationkey (INT4)}
+ => out schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => in schema: {(6) ?multiply (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.supplier.s_nationkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000012 [INTERMEDIATE]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestTajoCli/testHelpSessionVars.result b/tajo-core-tests/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
index 5c2468d..46e6b76 100644
--- a/tajo-core-tests/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
+++ b/tajo-core-tests/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
@@ -18,6 +18,7 @@ Available Session Variables:
\set LC_MONETARY [text value] - Formatting of currency amounts
\set LC_NUMERIC [text value] - Formatting of numbers
\set LC_TIME [text value] - Formatting of dates and times
+\set USE_TABLE_VOLUME [true or false] - Enable optimizer to get and use the table volume via storage handlers
\set BROADCAST_NON_CROSS_JOIN_THRESHOLD [long value] - restriction for the total size of broadcasted table for non-cross join (kb)
\set BROADCAST_CROSS_JOIN_THRESHOLD [long value] - restriction for the total size of broadcasted table for cross join (kb)
\set JOIN_TASK_INPUT_SIZE [int value] - join task input size (mb)
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core/src/main/java/org/apache/tajo/parser/sql/SQLAnalyzer.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/parser/sql/SQLAnalyzer.java b/tajo-core/src/main/java/org/apache/tajo/parser/sql/SQLAnalyzer.java
index c33fc09..f00c85e 100644
--- a/tajo-core/src/main/java/org/apache/tajo/parser/sql/SQLAnalyzer.java
+++ b/tajo-core/src/main/java/org/apache/tajo/parser/sql/SQLAnalyzer.java
@@ -112,7 +112,8 @@ public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> {
} else {
value = null;
}
- return new SetSession(ctx.name.getText(), value);
+ // Keep upper case letters (workaround temporarily)
+ return new SetSession(ctx.name.getText().toUpperCase(), value);
} else if (checkIfExist(ctx.TIME()) && checkIfExist(ctx.ZONE())) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java
index 126b10e..d4c4363 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java
@@ -20,7 +20,10 @@ package org.apache.tajo.plan.rewrite;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.tajo.OverridableConf;
+import org.apache.tajo.SessionVars;
import org.apache.tajo.catalog.TableDesc;
+import org.apache.tajo.catalog.statistics.TableStats;
import org.apache.tajo.exception.TajoException;
import org.apache.tajo.exception.UnsupportedException;
import org.apache.tajo.plan.LogicalPlan;
@@ -51,39 +54,68 @@ public class TableStatUpdateRewriter implements LogicalPlanRewriteRule {
LogicalPlan plan = context.getPlan();
LogicalPlan.QueryBlock rootBlock = plan.getRootBlock();
- Rewriter r = new Rewriter(context.getStorage());
+ Rewriter r = new Rewriter(context.getQueryContext(), context.getStorage());
r.visit(rootBlock, plan, rootBlock, rootBlock.getRoot(), new Stack<>());
return plan;
}
private final class Rewriter extends BasicLogicalPlanVisitor<Object, Object> {
+ private final OverridableConf conf;
private final StorageService storage;
- private Rewriter(StorageService storage) {
+ private Rewriter(OverridableConf conf, StorageService storage) {
+ this.conf = conf;
this.storage = storage;
}
@Override
public Object visitScan(Object object, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode scanNode,
Stack<LogicalNode> stack) throws TajoException {
- updatePhysicalInfo(scanNode.getTableDesc());
+ final TableDesc table = scanNode.getTableDesc();
+
+ if (!isVirtual(table)) {
+
+ final TableStats stats = getTableStat(table);
+ final long tableSize = stats.getNumBytes();
+
+ // If USE_TABLE_VOLUME is set, we will update the table volume through a storage handler.
+ // In addition, if the table size is zero, we will update too.
+ // It is a good workaround to avoid suboptimal join orders without cheap cost.
+ if (conf.getBool(SessionVars.USE_TABLE_VOLUME) || tableSize == 0) {
+ table.getStats().setNumBytes(getTableVolume(table));
+ }
+ }
+
return scanNode;
}
- private void updatePhysicalInfo(TableDesc desc) {
- // FAKEFILE is used for test
- if (!desc.getMeta().getDataFormat().equals("SYSTEM") && !desc.getMeta().getDataFormat().equals("FAKEFILE")) {
- try {
- if (desc.getStats() != null) {
- desc.getStats().setNumBytes(storage.getTableVolumn(desc.getUri()));
- }
- } catch (UnsupportedException t) {
- LOG.warn(desc.getName() + " does not support Tablespace::getTableVolume()");
- // -1 means unknown volume size.
- desc.getStats().setNumBytes(-1);
+ private TableStats getTableStat(TableDesc table) {
+ TableStats stats;
+ if (table.getStats() == null) {
+ stats = new TableStats();
+ table.setStats(stats);
+ } else {
+ stats = table.getStats();
+ }
+ return stats;
+ }
+
+ private boolean isVirtual(TableDesc table) {
+ return table.getMeta().getDataFormat().equals("SYSTEM");
+ }
+
+ private long getTableVolume(TableDesc table) {
+ try {
+ if (table.getStats() != null) {
+ return storage.getTableVolumn(table.getUri());
}
+ } catch (UnsupportedException t) {
+ LOG.warn(table.getName() + " does not support Tablespace::getTableVolume()");
}
+
+ // By default, return -1;
+ return -1;
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
index f706680..766eda3 100644
--- a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
+++ b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
@@ -90,12 +90,13 @@ public class TestPgSQLQueryTests extends QueryTestCaseBase {
@Option(sort = true)
public void testTPCH_Q2_Part_MixedStorage() throws Exception {
// Manually enable broadcast feature
+
try {
testingCluster.setAllTajoDaemonConfValue(TajoConf.ConfVars.$TEST_BROADCAST_JOIN_ENABLED.varname, "true");
testingCluster.setAllTajoDaemonConfValue(TajoConf.ConfVars.$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD.varname,
"" + (5 * 1024));
testingCluster.setAllTajoDaemonConfValue(TajoConf.ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.varname,
- "" + (2 * 1024));
+ 1024 * 1024 + "");
runSimpleTests();
@@ -105,7 +106,7 @@ public class TestPgSQLQueryTests extends QueryTestCaseBase {
testingCluster.setAllTajoDaemonConfValue(TajoConf.ConfVars.$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD.varname,
TajoConf.ConfVars.$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD.defaultVal);
testingCluster.setAllTajoDaemonConfValue(TajoConf.ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.varname,
- TajoConf.ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.defaultVal);
+ 1024 * 1024 + "");
}
}
[12/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan
index 9e28ed2..c1760af 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(10)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
JOIN(15)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- 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(0) on default.nation as n
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(3) 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(14)(INNER)
+ => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
+ 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(0) on default.nation as n
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) 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.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
SCAN(7) on default.part as p
=> target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
=> out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
=> in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
- JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -53,21 +53,21 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
- |-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000006
-6: eb_0000000000000_0000_000007
-7: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
+6: eb_0000000000000_0000_000006
+7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
9: eb_0000000000000_0000_000009
10: eb_0000000000000_0000_000010
@@ -79,7 +79,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
SCAN(5) on default.partsupp as ps
=> target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)
@@ -91,42 +91,7 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
-=======================================================
-
-[Incoming]
-[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)
-
-JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(19) on eb_0000000000000_0000_000002
- => 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]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
SCAN(7) on default.part as p
=> target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
@@ -134,11 +99,11 @@ SCAN(7) on default.part as p
=> in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
=======================================================
-Block Id: eb_0000000000000_0000_000006 [LEAF]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
@@ -146,11 +111,11 @@ SCAN(0) on default.nation as n
=> 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_000007 [LEAF]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -158,47 +123,82 @@ SCAN(1) on default.region as r
=> in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)}
=======================================================
-Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
-JOIN(14)(INNER)
+JOIN(13)(INNER)
=> Join Cond: default.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
- SCAN(21) on eb_0000000000000_0000_000004
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
=> out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
=> in schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
- SCAN(20) on eb_0000000000000_0000_000003
- => 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: {(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)}
+ 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_000008 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[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] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
-JOIN(15)(INNER)
+JOIN(14)(INNER)
=> Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
=> in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- SCAN(23) on eb_0000000000000_0000_000007
+ SCAN(21) on eb_0000000000000_0000_000005
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
+ SCAN(20) on eb_0000000000000_0000_000004
+ => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ => in schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.s.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
+
+JOIN(15)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(23) on eb_0000000000000_0000_000007
+ => 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(22) on eb_0000000000000_0000_000006
=> out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
=> in schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
@@ -208,8 +208,8 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.n.n_name (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_name (TEXT), num=32)
@@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
SORT(26)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
SCAN(25) on eb_0000000000000_0000_000008
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- SCAN(24) on eb_0000000000000_0000_000005
- => out schema: {(9) default.p.p_mfgr (TEXT), default.p.p_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.p.p_mfgr (TEXT), default.p.p_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.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan
index 3c8a90f..cd38b64 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(15)(INNER)
- => 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(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: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(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)}
+ JOIN(14)(INNER)
+ => 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(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(13)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) on default.part
=> target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
=> out schema: {(2) default.part.p_mfgr (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)}
- JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -50,69 +50,127 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
|-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000009
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000008
+5: eb_0000000000000_0000_000009
+6: eb_0000000000000_0000_000010
+7: eb_0000000000000_0000_000011
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000009 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(0) on default.part
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
+ => out schema: {(2) default.part.p_mfgr (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.partsupp.ps_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 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+
+JOIN(13)(INNER)
+ => Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
+ => out schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)}
+ => in schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (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_000008 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.part
- 1: type=Broadcast, tables=default.partsupp
- 2: type=Broadcast, tables=default.region
- 3: type=Broadcast, tables=default.supplier
+ 0: type=Broadcast, tables=default.nation
+ 1: type=Broadcast, tables=default.region
+
+JOIN(15)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(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)}
+ JOIN(14)(INNER)
+ => 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(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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
SORT(26)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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)}
- JOIN(15)(INNER)
- => 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(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: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
- SCAN(0) on default.part
- => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
- => out schema: {(2) default.part.p_mfgr (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)}
- JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ => in schema: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(25) on eb_0000000000000_0000_000008
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan
index 441b576..3721404 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(15)(INNER)
- => 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(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: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(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)}
+ JOIN(14)(INNER)
+ => 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(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(13)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) on default.part
=> target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
=> out schema: {(2) default.part.p_mfgr (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)}
- JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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,21 +53,21 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
- |-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000006
-6: eb_0000000000000_0000_000007
-7: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
+6: eb_0000000000000_0000_000006
+7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
9: eb_0000000000000_0000_000009
10: eb_0000000000000_0000_000010
@@ -79,7 +79,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
SCAN(2) on default.partsupp
=> target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)
@@ -91,42 +91,7 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
-=======================================================
-
-[Incoming]
-[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)
-
-JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(19) on eb_0000000000000_0000_000002
- => 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]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
SCAN(0) on default.part
=> target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
@@ -134,11 +99,11 @@ SCAN(0) 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_000006 [LEAF]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (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)
@@ -146,11 +111,11 @@ SCAN(3) on default.nation
=> 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]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
SCAN(4) on default.region
=> target list: default.region.r_regionkey (INT4)
@@ -158,58 +123,93 @@ SCAN(4) on default.region
=> 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]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
-JOIN(14)(INNER)
+JOIN(13)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
- SCAN(21) on eb_0000000000000_0000_000004
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
=> out schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)}
=> in schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)}
- SCAN(20) on eb_0000000000000_0000_000003
- => 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: {(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)}
+ 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_000008 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
-JOIN(15)(INNER)
+JOIN(14)(INNER)
=> 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
+ SCAN(21) on eb_0000000000000_0000_000005
=> out schema: {(1) default.region.r_regionkey (INT4)}
=> in schema: {(1) default.region.r_regionkey (INT4)}
- SCAN(22) on eb_0000000000000_0000_000006
+ SCAN(20) on eb_0000000000000_0000_000004
=> 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_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+JOIN(15)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(23) on eb_0000000000000_0000_000007
+ => 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(22) on eb_0000000000000_0000_000006
+ => 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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
@@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
SORT(26)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
SCAN(25) on eb_0000000000000_0000_000008
- => 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: {(8) default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
[04/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan
index 637657b..e392c04 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan
@@ -10,41 +10,41 @@ JOIN(17)(LEFT_OUTER)
=> out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
=> in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
SCAN(5) on default.orders as d
=> target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
=> 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(14)(LEFT_OUTER)
+ => Join Cond: default.b.l_orderkey (INT4) = default.c.o_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), 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: {(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.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)}
+ => 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)}
@@ -56,73 +56,189 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000012
|-eb_0000000000000_0000_000011
+ |-eb_0000000000000_0000_000010
+ |-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
+8: eb_0000000000000_0000_000010
+9: eb_0000000000000_0000_000011
+10: eb_0000000000000_0000_000012
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000011 [ROOT]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_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)}
+
=======================================================
+Block Id: eb_0000000000000_0000_000003 [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)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 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
+ => 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]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (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)}
+
+=======================================================
+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)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 9 (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)
+ => 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(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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.b
- 1: type=Broadcast, tables=default.c
- 2: type=Broadcast, tables=default.d
- 3: type=Broadcast, tables=default.e
- 4: type=Broadcast, tables=default.f
+ 0: type=Broadcast, tables=default.e
+
+JOIN(15)(LEFT_OUTER)
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
+ SCAN(5) on default.orders as d
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
+ => 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 11 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+
+JOIN(16)(LEFT_OUTER)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ SCAN(26) on eb_0000000000000_0000_000008
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ SCAN(25) on eb_0000000000000_0000_000005
+ => 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: {(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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000010 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.f.p_partkey (INT4), num=32)
+
+SCAN(9) on default.part as f
+ => target list: default.f.p_name (TEXT), default.f.p_partkey (INT4)
+ => out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
+ => in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000011 [ROOT]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 9 => 11 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.f.p_partkey (INT4), num=32)
JOIN(17)(LEFT_OUTER)
=> Join Cond: default.f.p_partkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.e.n_name (TEXT), default.f.p_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.e.n_name (TEXT), default.f.p_name (TEXT)}
=> in schema: {(10) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4)}
- SCAN(9) on default.part as f
- => target list: default.f.p_name (TEXT), default.f.p_partkey (INT4)
+ SCAN(28) on eb_0000000000000_0000_000010
=> out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
- => in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
- JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => in schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
+ SCAN(27) on eb_0000000000000_0000_000009
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
- JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- SCAN(5) on default.orders as d
- => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => 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.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: {(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.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)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000012 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan
index 04d0ae6..a21d2b0 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan
@@ -10,41 +10,41 @@ JOIN(17)(LEFT_OUTER)
=> out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
=> in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
SCAN(5) on default.orders as d
=> target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
=> 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(14)(LEFT_OUTER)
+ => Join Cond: default.b.l_orderkey (INT4) = default.c.o_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), 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: {(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.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)}
+ => 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)}
@@ -59,23 +59,23 @@ 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_000003
- |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
|-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-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
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000006
+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
@@ -84,11 +84,23 @@ Order of Execution
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (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_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32)
SCAN(1) on default.lineitem as b
=> target list: default.b.l_orderkey (INT4)
@@ -96,11 +108,34 @@ SCAN(1) on default.lineitem as b
=> 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_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000003 [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)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 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
+ => 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]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32)
SCAN(3) on default.orders as c
=> target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)
@@ -108,132 +143,97 @@ SCAN(3) on default.orders as c
=> 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_000004 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [LEAF]
=======================================================
-[Incoming]
-[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] 4 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
-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(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(5) on default.orders as d
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
+ => 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)}
=======================================================
-Block Id: eb_0000000000000_0000_000001 [LEAF]
+Block Id: eb_0000000000000_0000_000007 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.e.n_nationkey (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(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[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] 5 => 7 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
JOIN(14)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4)
+ => Join Cond: default.b.l_orderkey (INT4) = default.c.o_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: {(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(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_000006 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
-
-SCAN(5) on default.orders as d
- => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => 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)}
+ => 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)}
=======================================================
-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.a.c_custkey (INT4), num=32)
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.e.n_nationkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- SCAN(24) on eb_0000000000000_0000_000006
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000007
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(23) on eb_0000000000000_0000_000006
=> out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
=> in schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- SCAN(23) on eb_0000000000000_0000_000005
- => 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: {(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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000008 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.n_nationkey (INT4), num=32)
-
-SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 11 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
SCAN(26) on eb_0000000000000_0000_000008
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(25) on eb_0000000000000_0000_000007
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ SCAN(25) on eb_0000000000000_0000_000005
+ => 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: {(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)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [LEAF]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Hash.plan
index fbfe7f8..93ee8ba 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Hash.plan
@@ -27,23 +27,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) 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.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)
SORT(10)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(10)
=> 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.orders
- => target list: default.orders.o_orderkey (INT4)
+ SCAN(9) on eb_0000000000000_0000_000002
=> 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(0) on default.customer
- => target list: default.customer.c_custkey (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: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.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: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Sort.plan
index fbfe7f8..93ee8ba 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr1.Sort.plan
@@ -27,23 +27,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) 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.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)
SORT(10)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(10)
=> 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.orders
- => target list: default.orders.o_orderkey (INT4)
+ SCAN(9) on eb_0000000000000_0000_000002
=> 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(0) on default.customer
- => target list: default.customer.c_custkey (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: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.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: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Hash.plan
index a0c32f7..5a5f04a 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Hash.plan
@@ -25,19 +25,49 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+
+SCAN(0) on default.lineitem as l
+ => target list: default.l.l_orderkey (INT4)
+ => out schema: {(1) default.l.l_orderkey (INT4)}
+ => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders as o
+ => filter: default.o.o_orderpriority (TEXT) = 5-LOW
+ => target list: default.o.o_orderkey (INT4)
+ => out schema: {(1) default.o.o_orderkey (INT4)}
+ => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
-[Enforcers]
- 0: type=Broadcast, tables=default.o
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
PROJECTION(3)
=> Targets: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), 201405 as key1, 5-LOW as key2
@@ -48,15 +78,12 @@ PROJECTION(3)
=> target list: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4)
=> out schema: {(2) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4)}
=> in schema: {(2) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4)}
- SCAN(1) on default.orders as o
- => filter: default.o.o_orderpriority (TEXT) = 5-LOW
- => target list: default.o.o_orderkey (INT4)
+ SCAN(8) on eb_0000000000000_0000_000002
=> out schema: {(1) default.o.o_orderkey (INT4)}
- => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
- SCAN(0) on default.lineitem as l
- => target list: default.l.l_orderkey (INT4)
+ => in schema: {(1) default.o.o_orderkey (INT4)}
+ SCAN(7) on eb_0000000000000_0000_000001
=> out schema: {(1) default.l.l_orderkey (INT4)}
- => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+ => in schema: {(1) default.l.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Sort.plan
index a0c32f7..5a5f04a 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr4.Sort.plan
@@ -25,19 +25,49 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+
+SCAN(0) on default.lineitem as l
+ => target list: default.l.l_orderkey (INT4)
+ => out schema: {(1) default.l.l_orderkey (INT4)}
+ => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders as o
+ => filter: default.o.o_orderpriority (TEXT) = 5-LOW
+ => target list: default.o.o_orderkey (INT4)
+ => out schema: {(1) default.o.o_orderkey (INT4)}
+ => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
-[Enforcers]
- 0: type=Broadcast, tables=default.o
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
PROJECTION(3)
=> Targets: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), 201405 as key1, 5-LOW as key2
@@ -48,15 +78,12 @@ PROJECTION(3)
=> target list: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4)
=> out schema: {(2) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4)}
=> in schema: {(2) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4)}
- SCAN(1) on default.orders as o
- => filter: default.o.o_orderpriority (TEXT) = 5-LOW
- => target list: default.o.o_orderkey (INT4)
+ SCAN(8) on eb_0000000000000_0000_000002
=> out schema: {(1) default.o.o_orderkey (INT4)}
- => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
- SCAN(0) on default.lineitem as l
- => target list: default.l.l_orderkey (INT4)
+ => in schema: {(1) default.o.o_orderkey (INT4)}
+ SCAN(7) on eb_0000000000000_0000_000001
=> out schema: {(1) default.l.l_orderkey (INT4)}
- => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+ => in schema: {(1) default.l.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Hash.plan
index 22a5037..0bd853a 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Hash.plan
@@ -26,19 +26,48 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+
+SCAN(0) on default.lineitem as l
+ => target list: default.l.l_orderkey (INT4)
+ => out schema: {(1) default.l.l_orderkey (INT4)}
+ => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders as o
+ => target list: default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)
+ => out schema: {(2) default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
+ => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
-[Enforcers]
- 0: type=Broadcast, tables=default.o
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
PROJECTION(4)
=> Targets: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), 201405 as key1, 5-LOW as key2
@@ -51,14 +80,12 @@ PROJECTION(4)
=> target list: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)
=> out schema: {(3) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
=> in schema: {(3) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
- SCAN(1) on default.orders as o
- => target list: default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)
+ SCAN(9) on eb_0000000000000_0000_000002
=> out schema: {(2) default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
- => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
- SCAN(0) on default.lineitem as l
- => target list: default.l.l_orderkey (INT4)
+ => in schema: {(2) default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
+ SCAN(8) on eb_0000000000000_0000_000001
=> out schema: {(1) default.l.l_orderkey (INT4)}
- => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+ => in schema: {(1) default.l.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Sort.plan
index 22a5037..0bd853a 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithConstantExpr5.Sort.plan
@@ -26,19 +26,48 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+
+SCAN(0) on default.lineitem as l
+ => target list: default.l.l_orderkey (INT4)
+ => out schema: {(1) default.l.l_orderkey (INT4)}
+ => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders as o
+ => target list: default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)
+ => out schema: {(2) default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
+ => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
-[Enforcers]
- 0: type=Broadcast, tables=default.o
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.l.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
PROJECTION(4)
=> Targets: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), 201405 as key1, 5-LOW as key2
@@ -51,14 +80,12 @@ PROJECTION(4)
=> target list: default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)
=> out schema: {(3) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
=> in schema: {(3) default.l.l_orderkey (INT4), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
- SCAN(1) on default.orders as o
- => target list: default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)
+ SCAN(9) on eb_0000000000000_0000_000002
=> out schema: {(2) default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
- => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
- SCAN(0) on default.lineitem as l
- => target list: default.l.l_orderkey (INT4)
+ => in schema: {(2) default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT)}
+ SCAN(8) on eb_0000000000000_0000_000001
=> out schema: {(1) default.l.l_orderkey (INT4)}
- => in schema: {(16) default.l.l_comment (TEXT), default.l.l_commitdate (TEXT), default.l.l_discount (FLOAT8), default.l.l_extendedprice (FLOAT8), default.l.l_linenumber (INT4), default.l.l_linestatus (TEXT), default.l.l_orderkey (INT4), default.l.l_partkey (INT4), default.l.l_quantity (FLOAT8), default.l.l_receiptdate (TEXT), default.l.l_returnflag (TEXT), default.l.l_shipdate (TEXT), default.l.l_shipinstruct (TEXT), default.l.l_shipmode (TEXT), default.l.l_suppkey (INT4), default.l.l_tax (FLOAT8)}
+ => in schema: {(1) default.l.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [TERMINAL]
[10/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan
index 5b37e92..de1c6e3 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan
@@ -3,36 +3,36 @@ explain
SORT(5)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ 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)}
+ JOIN(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) 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)}
- JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -41,59 +41,117 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000009)
|-eb_0000000000000_0000_000009
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
-3: eb_0000000000000_0000_000009
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000006
+5: eb_0000000000000_0000_000007
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000007 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(0) 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_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 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+
+JOIN(11)(INNER)
+ => Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(16) on eb_0000000000000_0000_000002
+ => out schema: {(1) default.part.p_partkey (INT4)}
+ => in schema: {(1) default.part.p_partkey (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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.part
- 1: type=Broadcast, tables=default.partsupp
- 2: type=Broadcast, tables=default.supplier
+ 0: type=Broadcast, tables=default.nation
+
+JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ 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_000007 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
SORT(21)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(12)(INNER)
- => Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(0) 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)}
- JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(20) on eb_0000000000000_0000_000006
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000003
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan
index ba3164b..57738c8 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan
@@ -3,36 +3,36 @@ explain
SORT(5)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ 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)}
+ JOIN(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) 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)}
- JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -42,19 +42,19 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000009)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
6: eb_0000000000000_0000_000006
7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
@@ -66,7 +66,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
SCAN(2) on default.partsupp
=> target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)
@@ -78,90 +78,90 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (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(0) 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)}
=======================================================
-Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
-[Incoming]
-[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)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(16) on eb_0000000000000_0000_000002
- => 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)}
+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_000004 [LEAF]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
-SCAN(0) 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(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
=======================================================
-Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
-JOIN(12)(INNER)
+JOIN(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(18) on eb_0000000000000_0000_000004
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(16) on eb_0000000000000_0000_000002
=> out schema: {(1) default.part.p_partkey (INT4)}
=> in schema: {(1) default.part.p_partkey (INT4)}
- SCAN(17) on eb_0000000000000_0000_000003
- => 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: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (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_000006 [LEAF]
+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.nation.n_nationkey (INT4), num=32)
+
[Outgoing]
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
-SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(18) on eb_0000000000000_0000_000005
+ => 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(17) on eb_0000000000000_0000_000004
+ => 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)}
=======================================================
Block Id: eb_0000000000000_0000_000007 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 7 => 8 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
@@ -169,16 +169,16 @@ Block Id: eb_0000000000000_0000_000007 [INTERMEDIATE]
SORT(21)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
SCAN(20) on eb_0000000000000_0000_000006
- => 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(19) on eb_0000000000000_0000_000005
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000003
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan
index 5b37e92..de1c6e3 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan
@@ -3,36 +3,36 @@ explain
SORT(5)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ 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)}
+ JOIN(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) 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)}
- JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -41,59 +41,117 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000009)
|-eb_0000000000000_0000_000009
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
-3: eb_0000000000000_0000_000009
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000006
+5: eb_0000000000000_0000_000007
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000007 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(0) 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_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 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+
+JOIN(11)(INNER)
+ => Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(16) on eb_0000000000000_0000_000002
+ => out schema: {(1) default.part.p_partkey (INT4)}
+ => in schema: {(1) default.part.p_partkey (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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.part
- 1: type=Broadcast, tables=default.partsupp
- 2: type=Broadcast, tables=default.supplier
+ 0: type=Broadcast, tables=default.nation
+
+JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ 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_000007 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
SORT(21)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(12)(INNER)
- => Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(0) 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)}
- JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(20) on eb_0000000000000_0000_000006
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000003
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan
index ba3164b..57738c8 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan
@@ -3,36 +3,36 @@ explain
SORT(5)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ 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)}
+ JOIN(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) 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)}
- JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -42,19 +42,19 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000009)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
6: eb_0000000000000_0000_000006
7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
@@ -66,7 +66,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
SCAN(2) on default.partsupp
=> target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)
@@ -78,90 +78,90 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (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(0) 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)}
=======================================================
-Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
-[Incoming]
-[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)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(16) on eb_0000000000000_0000_000002
- => 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)}
+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_000004 [LEAF]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
-SCAN(0) 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(3) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
=======================================================
-Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
-JOIN(12)(INNER)
+JOIN(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(5) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(18) on eb_0000000000000_0000_000004
+ => target list: default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(16) on eb_0000000000000_0000_000002
=> out schema: {(1) default.part.p_partkey (INT4)}
=> in schema: {(1) default.part.p_partkey (INT4)}
- SCAN(17) on eb_0000000000000_0000_000003
- => 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: {(4) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (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_000006 [LEAF]
+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.nation.n_nationkey (INT4), num=32)
+
[Outgoing]
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
-SCAN(3) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+JOIN(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4), default.supplier.s_suppkey (INT4)}
+ SCAN(18) on eb_0000000000000_0000_000005
+ => 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(17) on eb_0000000000000_0000_000004
+ => 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)}
=======================================================
Block Id: eb_0000000000000_0000_000007 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 7 => 8 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
@@ -169,16 +169,16 @@ Block Id: eb_0000000000000_0000_000007 [INTERMEDIATE]
SORT(21)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(13)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(4) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- => in schema: {(6) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => in schema: {(6) default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
SCAN(20) on eb_0000000000000_0000_000006
- => 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(19) on eb_0000000000000_0000_000005
- => out schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- => in schema: {(4) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ => out schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(4) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000003
+ => out schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(2) default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [ROOT]
[02/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Hash.plan
index dffcecb..6ee78dd 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Hash.plan
@@ -31,23 +31,60 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.o.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.o.o_orderkey (INT4), num=32)
+
+TABLE_SUBQUERY(3) as default.o
+ => Targets: default.o.o_orderkey (INT4)
+ => out schema: {(1) default.o.o_orderkey (INT4)}
+ => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
+ PROJECTION(2)
+ => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderstatus (TEXT), default.orders.o_totalprice (FLOAT8), default.orders.o_orderdate (TEXT), default.orders.o_orderpriority (TEXT), default.orders.o_clerk (TEXT), default.orders.o_shippriority (INT4), default.orders.o_comment (TEXT)
+ => out 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)}
+ => 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.orders
+ => target list: 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)
+ => out 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)}
+ => 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.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.o.o_orderkey (INT4), num=32)
SORT(12)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.o.o_orderkey (INT4) (asc, nulls last)
@@ -56,22 +93,12 @@ SORT(12)
=> target list: default.customer.c_custkey (INT4), default.o.o_orderkey (INT4)
=> out schema: {(2) default.customer.c_custkey (INT4), default.o.o_orderkey (INT4)}
=> in schema: {(2) default.customer.c_custkey (INT4), default.o.o_orderkey (INT4)}
- TABLE_SUBQUERY(3) as default.o
- => Targets: default.o.o_orderkey (INT4)
+ SCAN(11) on eb_0000000000000_0000_000002
=> out schema: {(1) default.o.o_orderkey (INT4)}
- => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
- PROJECTION(2)
- => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderstatus (TEXT), default.orders.o_totalprice (FLOAT8), default.orders.o_orderdate (TEXT), default.orders.o_orderpriority (TEXT), default.orders.o_clerk (TEXT), default.orders.o_shippriority (INT4), default.orders.o_comment (TEXT)
- => out 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)}
- => 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.orders
- => target list: 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)
- => out 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)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(1) default.o.o_orderkey (INT4)}
+ SCAN(10) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Sort.plan
index dffcecb..6ee78dd 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithConstantExpr2.Sort.plan
@@ -31,23 +31,60 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.o.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.o.o_orderkey (INT4), num=32)
+
+TABLE_SUBQUERY(3) as default.o
+ => Targets: default.o.o_orderkey (INT4)
+ => out schema: {(1) default.o.o_orderkey (INT4)}
+ => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
+ PROJECTION(2)
+ => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderstatus (TEXT), default.orders.o_totalprice (FLOAT8), default.orders.o_orderdate (TEXT), default.orders.o_orderpriority (TEXT), default.orders.o_clerk (TEXT), default.orders.o_shippriority (INT4), default.orders.o_comment (TEXT)
+ => out 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)}
+ => 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.orders
+ => target list: 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)
+ => out 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)}
+ => 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.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.o.o_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.o.o_orderkey (INT4), num=32)
SORT(12)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.o.o_orderkey (INT4) (asc, nulls last)
@@ -56,22 +93,12 @@ SORT(12)
=> target list: default.customer.c_custkey (INT4), default.o.o_orderkey (INT4)
=> out schema: {(2) default.customer.c_custkey (INT4), default.o.o_orderkey (INT4)}
=> in schema: {(2) default.customer.c_custkey (INT4), default.o.o_orderkey (INT4)}
- TABLE_SUBQUERY(3) as default.o
- => Targets: default.o.o_orderkey (INT4)
+ SCAN(11) on eb_0000000000000_0000_000002
=> out schema: {(1) default.o.o_orderkey (INT4)}
- => in schema: {(9) default.o.o_clerk (TEXT), default.o.o_comment (TEXT), default.o.o_custkey (INT4), default.o.o_orderdate (TEXT), default.o.o_orderkey (INT4), default.o.o_orderpriority (TEXT), default.o.o_orderstatus (TEXT), default.o.o_shippriority (INT4), default.o.o_totalprice (FLOAT8)}
- PROJECTION(2)
- => Targets: default.orders.o_orderkey (INT4), default.orders.o_custkey (INT4), default.orders.o_orderstatus (TEXT), default.orders.o_totalprice (FLOAT8), default.orders.o_orderdate (TEXT), default.orders.o_orderpriority (TEXT), default.orders.o_clerk (TEXT), default.orders.o_shippriority (INT4), default.orders.o_comment (TEXT)
- => out 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)}
- => 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.orders
- => target list: 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)
- => out 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)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(1) default.o.o_orderkey (INT4)}
+ SCAN(10) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Hash.plan
index e800b21..24829f4 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Hash.plan
@@ -37,24 +37,73 @@ 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), num=32)
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32)
+
+SCAN(0) on default.jointable11 as a
+ => target list: default.a.id (INT4)
+ => out schema: {(1) default.a.id (INT4)}
+ => in schema: {(2) default.a.id (INT4), default.a.name (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.jointable12
- 1: type=Broadcast, tables=default.lineitem
+
+TABLE_SUBQUERY(5) as default.b
+ => Targets: default.b.id (INT4)
+ => out schema: {(1) default.b.id (INT4)}
+ => in schema: {(1) default.b.id (INT4)}
+ PROJECTION(4)
+ => Targets: default.jointable12.id (INT4)
+ => out schema: {(1) default.jointable12.id (INT4)}
+ => in schema: {(1) default.jointable12.id (INT4)}
+ JOIN(10)(INNER)
+ => Join Cond: default.jointable12.id (INT4) = default.lineitem.l_orderkey (INT4)
+ => target list: default.jointable12.id (INT4)
+ => out schema: {(1) default.jointable12.id (INT4)}
+ => in schema: {(2) default.jointable12.id (INT4), default.lineitem.l_orderkey (INT4)}
+ SCAN(1) on default.jointable12
+ => filter: default.jointable12.id (INT4) > 10
+ => target list: default.jointable12.id (INT4)
+ => out schema: {(1) default.jointable12.id (INT4)}
+ => in schema: {(2) default.jointable12.id (INT4), default.jointable12.name (TEXT)}
+ SCAN(2) on default.lineitem
+ => target list: default.lineitem.l_orderkey (INT4)
+ => out schema: {(1) default.lineitem.l_orderkey (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 [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), num=32)
SORT(17)
=> Sort Keys: default.a.id (INT4) (asc, nulls last)
@@ -63,32 +112,12 @@ SORT(17)
=> target list: default.a.id (INT4), default.b.id (INT4)
=> out schema: {(2) default.a.id (INT4), default.b.id (INT4)}
=> in schema: {(2) default.a.id (INT4), default.b.id (INT4)}
- TABLE_SUBQUERY(5) as default.b
- => Targets: default.b.id (INT4)
+ SCAN(16) on eb_0000000000000_0000_000004
=> out schema: {(1) default.b.id (INT4)}
- => in schema: {(1) default.b.id (INT4)}
- PROJECTION(4)
- => Targets: default.jointable12.id (INT4)
- => out schema: {(1) default.jointable12.id (INT4)}
- => in schema: {(1) default.jointable12.id (INT4)}
- JOIN(10)(INNER)
- => Join Cond: default.jointable12.id (INT4) = default.lineitem.l_orderkey (INT4)
- => target list: default.jointable12.id (INT4)
- => out schema: {(1) default.jointable12.id (INT4)}
- => in schema: {(2) default.jointable12.id (INT4), default.lineitem.l_orderkey (INT4)}
- SCAN(1) on default.jointable12
- => filter: default.jointable12.id (INT4) > 10
- => target list: default.jointable12.id (INT4)
- => out schema: {(1) default.jointable12.id (INT4)}
- => in schema: {(2) default.jointable12.id (INT4), default.jointable12.name (TEXT)}
- SCAN(2) on default.lineitem
- => target list: default.lineitem.l_orderkey (INT4)
- => out schema: {(1) default.lineitem.l_orderkey (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.jointable11 as a
- => target list: default.a.id (INT4)
+ => in schema: {(1) default.b.id (INT4)}
+ SCAN(15) on eb_0000000000000_0000_000001
=> out schema: {(1) default.a.id (INT4)}
- => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)}
+ => in schema: {(1) default.a.id (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Sort.plan
index e800b21..24829f4 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinWithSubQuery/testLeftOuterJoinWithEmptySubquery1.1.Sort.plan
@@ -37,24 +37,73 @@ 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), num=32)
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32)
+
+SCAN(0) on default.jointable11 as a
+ => target list: default.a.id (INT4)
+ => out schema: {(1) default.a.id (INT4)}
+ => in schema: {(2) default.a.id (INT4), default.a.name (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.jointable12
- 1: type=Broadcast, tables=default.lineitem
+
+TABLE_SUBQUERY(5) as default.b
+ => Targets: default.b.id (INT4)
+ => out schema: {(1) default.b.id (INT4)}
+ => in schema: {(1) default.b.id (INT4)}
+ PROJECTION(4)
+ => Targets: default.jointable12.id (INT4)
+ => out schema: {(1) default.jointable12.id (INT4)}
+ => in schema: {(1) default.jointable12.id (INT4)}
+ JOIN(10)(INNER)
+ => Join Cond: default.jointable12.id (INT4) = default.lineitem.l_orderkey (INT4)
+ => target list: default.jointable12.id (INT4)
+ => out schema: {(1) default.jointable12.id (INT4)}
+ => in schema: {(2) default.jointable12.id (INT4), default.lineitem.l_orderkey (INT4)}
+ SCAN(1) on default.jointable12
+ => filter: default.jointable12.id (INT4) > 10
+ => target list: default.jointable12.id (INT4)
+ => out schema: {(1) default.jointable12.id (INT4)}
+ => in schema: {(2) default.jointable12.id (INT4), default.jointable12.name (TEXT)}
+ SCAN(2) on default.lineitem
+ => target list: default.lineitem.l_orderkey (INT4)
+ => out schema: {(1) default.lineitem.l_orderkey (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 [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), num=32)
SORT(17)
=> Sort Keys: default.a.id (INT4) (asc, nulls last)
@@ -63,32 +112,12 @@ SORT(17)
=> target list: default.a.id (INT4), default.b.id (INT4)
=> out schema: {(2) default.a.id (INT4), default.b.id (INT4)}
=> in schema: {(2) default.a.id (INT4), default.b.id (INT4)}
- TABLE_SUBQUERY(5) as default.b
- => Targets: default.b.id (INT4)
+ SCAN(16) on eb_0000000000000_0000_000004
=> out schema: {(1) default.b.id (INT4)}
- => in schema: {(1) default.b.id (INT4)}
- PROJECTION(4)
- => Targets: default.jointable12.id (INT4)
- => out schema: {(1) default.jointable12.id (INT4)}
- => in schema: {(1) default.jointable12.id (INT4)}
- JOIN(10)(INNER)
- => Join Cond: default.jointable12.id (INT4) = default.lineitem.l_orderkey (INT4)
- => target list: default.jointable12.id (INT4)
- => out schema: {(1) default.jointable12.id (INT4)}
- => in schema: {(2) default.jointable12.id (INT4), default.lineitem.l_orderkey (INT4)}
- SCAN(1) on default.jointable12
- => filter: default.jointable12.id (INT4) > 10
- => target list: default.jointable12.id (INT4)
- => out schema: {(1) default.jointable12.id (INT4)}
- => in schema: {(2) default.jointable12.id (INT4), default.jointable12.name (TEXT)}
- SCAN(2) on default.lineitem
- => target list: default.lineitem.l_orderkey (INT4)
- => out schema: {(1) default.lineitem.l_orderkey (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.jointable11 as a
- => target list: default.a.id (INT4)
+ => in schema: {(1) default.b.id (INT4)}
+ SCAN(15) on eb_0000000000000_0000_000001
=> out schema: {(1) default.a.id (INT4)}
- => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)}
+ => in schema: {(1) default.a.id (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession1.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession1.result b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession1.result
index ffd27dd..c0bd8a9 100644
--- a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession1.result
+++ b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession1.result
@@ -1,5 +1,5 @@
{
- "name": "enable_seqscan",
+ "name": "ENABLE_SEQSCAN",
"value": "true",
"OpType": "SetSession"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession2.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession2.result b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession2.result
index 7809a2e..efba43c 100644
--- a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession2.result
+++ b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession2.result
@@ -1,5 +1,5 @@
{
- "name": "enable_seqscan",
+ "name": "ENABLE_SEQSCAN",
"value": "false",
"OpType": "SetSession"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession3.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession3.result b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession3.result
index 9a36755..71dd501 100644
--- a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession3.result
+++ b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession3.result
@@ -1,5 +1,5 @@
{
- "name": "extsort_buffer_size",
+ "name": "EXTSORT_BUFFER_SIZE",
"value": "100",
"OpType": "SetSession"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession4.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession4.result b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession4.result
index 007a563..18b03b0 100644
--- a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession4.result
+++ b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession4.result
@@ -1,5 +1,5 @@
{
- "name": "extsort_buffer_size",
+ "name": "EXTSORT_BUFFER_SIZE",
"value": "50.7",
"OpType": "SetSession"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession5.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession5.result b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession5.result
index 8e61229..de6e03b 100644
--- a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession5.result
+++ b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession5.result
@@ -1,5 +1,5 @@
{
- "name": "extsort_buffer_size",
+ "name": "EXTSORT_BUFFER_SIZE",
"value": "ABCD",
"OpType": "SetSession"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession6.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession6.result b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession6.result
index 8e61229..de6e03b 100644
--- a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession6.result
+++ b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession6.result
@@ -1,5 +1,5 @@
{
- "name": "extsort_buffer_size",
+ "name": "EXTSORT_BUFFER_SIZE",
"value": "ABCD",
"OpType": "SetSession"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession7.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession7.result b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession7.result
index 8e61229..de6e03b 100644
--- a/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession7.result
+++ b/tajo-core-tests/src/test/resources/results/TestSQLAnalyzer/setsession7.result
@@ -1,5 +1,5 @@
{
- "name": "extsort_buffer_size",
+ "name": "EXTSORT_BUFFER_SIZE",
"value": "ABCD",
"OpType": "SetSession"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestTPCH/testQ2FourJoins.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestTPCH/testQ2FourJoins.plan b/tajo-core-tests/src/test/resources/results/TestTPCH/testQ2FourJoins.plan
index dbee0e3..79a157c 100644
--- a/tajo-core-tests/src/test/resources/results/TestTPCH/testQ2FourJoins.plan
+++ b/tajo-core-tests/src/test/resources/results/TestTPCH/testQ2FourJoins.plan
@@ -1,47 +1,47 @@
explain
-------------------------------
JOIN(14)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT)
=> out schema: {(12) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT)}
- => in schema: {(14) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), 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: {(14) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(13)(INNER)
- => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4)
- => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)
- => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
- => in schema: {(5) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
- SCAN(0) on default.region
- => filter: default.region.r_name (TEXT) = AMERICA
- => 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_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(12)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(8) default.nation.n_name (TEXT), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT), 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(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)}
+ JOIN(12)(INNER)
+ => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)
+ => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
+ => in schema: {(5) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
+ SCAN(0) on default.region
+ => filter: default.region.r_name (TEXT) = AMERICA
+ => 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_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(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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: {(11) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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: {(12) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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)}
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)
+ => out schema: {(6) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)}
+ => in schema: {(7) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)}
SCAN(7) on default.part
=> filter: (default.part.p_size (INT4) = 15 AND default.part.p_type (TEXT)LIKE'%BRASS')
=> target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT)
=> out schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT)}
=> 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)}
- JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -52,21 +52,21 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000010)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
- |-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000006
-6: eb_0000000000000_0000_000007
-7: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
+6: eb_0000000000000_0000_000006
+7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
9: eb_0000000000000_0000_000009
10: eb_0000000000000_0000_000010
@@ -77,7 +77,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (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)
@@ -89,42 +89,7 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
-=======================================================
-
-[Incoming]
-[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)
-
-JOIN(11)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(17) on eb_0000000000000_0000_000002
- => 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]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
SCAN(7) on default.part
=> filter: (default.part.p_size (INT4) = 15 AND default.part.p_type (TEXT)LIKE'%BRASS')
@@ -133,11 +98,11 @@ SCAN(7) 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_000006 [LEAF]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
SCAN(1) on default.nation
=> target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)
@@ -145,11 +110,11 @@ SCAN(1) on default.nation
=> 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]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
SCAN(0) on default.region
=> filter: default.region.r_name (TEXT) = AMERICA
@@ -158,70 +123,105 @@ SCAN(0) on default.region
=> 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]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
-JOIN(12)(INNER)
+JOIN(11)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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: {(11) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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: {(12) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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)}
- SCAN(19) on eb_0000000000000_0000_000004
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)
+ => out schema: {(6) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)}
+ => in schema: {(7) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)}
+ SCAN(17) on eb_0000000000000_0000_000002
=> out schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT)}
=> in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT)}
- SCAN(18) on eb_0000000000000_0000_000003
- => 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: {(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)}
+ 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_000008 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
-JOIN(13)(INNER)
+JOIN(12)(INNER)
=> Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4)
=> target list: default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)
=> out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
=> in schema: {(5) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
- SCAN(21) on eb_0000000000000_0000_000007
+ SCAN(19) on eb_0000000000000_0000_000005
=> 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(20) on eb_0000000000000_0000_000006
+ SCAN(18) on eb_0000000000000_0000_000004
=> 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_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+JOIN(13)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(8) default.nation.n_name (TEXT), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT), 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(21) on eb_0000000000000_0000_000007
+ => 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(20) on eb_0000000000000_0000_000006
+ => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
+ => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000009 [ROOT]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
JOIN(14)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT)
=> out schema: {(12) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT)}
- => in schema: {(14) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), 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: {(14) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
SCAN(23) on eb_0000000000000_0000_000008
- => out schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
- => in schema: {(3) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
- SCAN(22) on eb_0000000000000_0000_000005
- => out schema: {(11) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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: {(11) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), 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.nation.n_name (TEXT), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(8) default.nation.n_name (TEXT), default.region.r_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(22) on eb_0000000000000_0000_000003
+ => out schema: {(6) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)}
+ => in schema: {(6) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.part.p_size (INT4), default.part.p_type (TEXT), default.partsupp.ps_suppkey (INT4), default.partsupp.ps_supplycost (FLOAT8)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [TERMINAL]
[16/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan
index 3452c67..a61fb5e 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
- SCAN(3) 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)}
- SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(14)(INNER)
=> Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), 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(2) 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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ 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)}
JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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(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)}
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
+ SCAN(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ SCAN(3) 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
-------------------------------
-------------------------------------------------------------------------------
@@ -50,69 +50,156 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
|-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000009
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
+1: eb_0000000000000_0000_000003
+2: eb_0000000000000_0000_000004
+3: eb_0000000000000_0000_000006
+4: eb_0000000000000_0000_000007
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
+8: eb_0000000000000_0000_000010
+9: eb_0000000000000_0000_000011
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000009 [LEAF]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT), num=32)
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.customer
- 1: type=Broadcast, tables=default.lineitem
- 2: type=Broadcast, tables=default.orders
- 3: type=Broadcast, tables=default.part
+ 0: type=Broadcast, tables=default.nation
+
+JOIN(13)(INNER)
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
+ SCAN(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ SCAN(3) 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_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.orders.o_custkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.l_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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(2) 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_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
+
+JOIN(14)(INNER)
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ SCAN(21) on eb_0000000000000_0000_000004
+ => 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(20) on eb_0000000000000_0000_000003
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.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] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
+
+JOIN(15)(INNER)
+ => 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(23) on eb_0000000000000_0000_000007
+ => 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(22) on eb_0000000000000_0000_000006
+ => 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_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT), num=32)
SORT(26)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
- SCAN(3) 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)}
- SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(14)(INNER)
- => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)}
- SCAN(2) 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)}
- JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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(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)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
+ SCAN(25) on eb_0000000000000_0000_000008
+ => 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)}
+ SCAN(24) on eb_0000000000000_0000_000005
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan
index d0bceda..fd7cac1 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
- SCAN(3) 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)}
- SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(14)(INNER)
=> Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), 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(2) 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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ 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)}
JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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(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)}
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
+ SCAN(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ SCAN(3) 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
-------------------------------
-------------------------------------------------------------------------------
@@ -79,137 +79,137 @@ 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(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(3) 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.nation.n_nationkey (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(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
=======================================================
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.nation.n_nationkey (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.customer.c_custkey (INT4), num=32)
JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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)}
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
SCAN(19) on eb_0000000000000_0000_000002
- => 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)}
+ => 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(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)}
+ => 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_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.orders.o_custkey (INT4), num=32)
-SCAN(2) 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(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_000006 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32)
-SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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)}
=======================================================
Block Id: eb_0000000000000_0000_000007 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
-SCAN(3) 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)}
+SCAN(2) 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_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.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
JOIN(14)(INNER)
- => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)}
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
SCAN(21) 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.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ => in schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
SCAN(20) on eb_0000000000000_0000_000003
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)}
- => in schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)}
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.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] 8 => 9 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (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(23) on eb_0000000000000_0000_000007
- => 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)}
+ => 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(22) on eb_0000000000000_0000_000006
- => 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)}
+ => 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_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT), num=32)
@@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
SORT(26)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
SCAN(25) on eb_0000000000000_0000_000008
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => 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)}
SCAN(24) on eb_0000000000000_0000_000005
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan
index 3452c67..a61fb5e 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
- SCAN(3) 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)}
- SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(14)(INNER)
=> Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), 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(2) 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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ 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)}
JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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(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)}
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
+ SCAN(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ SCAN(3) 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
-------------------------------
-------------------------------------------------------------------------------
@@ -50,69 +50,156 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
|-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000009
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
+1: eb_0000000000000_0000_000003
+2: eb_0000000000000_0000_000004
+3: eb_0000000000000_0000_000006
+4: eb_0000000000000_0000_000007
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
+8: eb_0000000000000_0000_000010
+9: eb_0000000000000_0000_000011
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000009 [LEAF]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT), num=32)
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.customer
- 1: type=Broadcast, tables=default.lineitem
- 2: type=Broadcast, tables=default.orders
- 3: type=Broadcast, tables=default.part
+ 0: type=Broadcast, tables=default.nation
+
+JOIN(13)(INNER)
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
+ SCAN(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ SCAN(3) 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_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.orders.o_custkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.l_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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(2) 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_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
+
+JOIN(14)(INNER)
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ SCAN(21) on eb_0000000000000_0000_000004
+ => 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(20) on eb_0000000000000_0000_000003
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.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] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
+
+JOIN(15)(INNER)
+ => 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(23) on eb_0000000000000_0000_000007
+ => 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(22) on eb_0000000000000_0000_000006
+ => 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_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT), num=32)
SORT(26)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
- SCAN(3) 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)}
- SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(14)(INNER)
- => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)}
- SCAN(2) 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)}
- JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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(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)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
+ SCAN(25) on eb_0000000000000_0000_000008
+ => 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)}
+ SCAN(24) on eb_0000000000000_0000_000005
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
[13/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan
index da5cc8f..28803b3 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan
@@ -3,45 +3,45 @@ explain
SORT(10)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
JOIN(15)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- 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(0) on default.nation as n
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(3) 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(14)(INNER)
+ => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
+ 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(0) on default.nation as n
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) 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.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
SCAN(7) on default.part as p
=> target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
=> out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
=> in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
- JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -50,69 +50,127 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
|-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000009
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000008
+5: eb_0000000000000_0000_000009
+6: eb_0000000000000_0000_000010
+7: eb_0000000000000_0000_000011
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000009 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.n.n_name (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+
+SCAN(7) on default.part as p
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
+ => out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
+ => in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
+
+JOIN(13)(INNER)
+ => Join Cond: default.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
+ => out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
+ => in schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (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_000008 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.p
- 1: type=Broadcast, tables=default.ps
- 2: type=Broadcast, tables=default.r
- 3: type=Broadcast, tables=default.s
+ 0: type=Broadcast, tables=default.n
+ 1: type=Broadcast, tables=default.r
+
+JOIN(15)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
+ 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(0) on default.nation as n
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) 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_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.n.n_name (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_name (TEXT), num=32)
SORT(26)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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)}
- JOIN(15)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- 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(0) on default.nation as n
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) 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(14)(INNER)
- => Join Cond: default.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
- SCAN(7) on default.part as p
- => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
- => out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
- => in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
- JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(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)}
+ => in schema: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
+ SCAN(25) on eb_0000000000000_0000_000008
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan
index 9e28ed2..c1760af 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(10)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
JOIN(15)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- 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(0) on default.nation as n
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(3) 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(14)(INNER)
+ => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
+ 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(0) on default.nation as n
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) 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.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
SCAN(7) on default.part as p
=> target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
=> out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
=> in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
- JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -53,21 +53,21 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
- |-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000006
-6: eb_0000000000000_0000_000007
-7: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
+6: eb_0000000000000_0000_000006
+7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
9: eb_0000000000000_0000_000009
10: eb_0000000000000_0000_000010
@@ -79,7 +79,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
SCAN(5) on default.partsupp as ps
=> target list: default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)
@@ -91,42 +91,7 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
-=======================================================
-
-[Incoming]
-[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)
-
-JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(19) on eb_0000000000000_0000_000002
- => 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]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
SCAN(7) on default.part as p
=> target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
@@ -134,11 +99,11 @@ SCAN(7) on default.part as p
=> in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
=======================================================
-Block Id: eb_0000000000000_0000_000006 [LEAF]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
@@ -146,11 +111,11 @@ SCAN(0) on default.nation as n
=> 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_000007 [LEAF]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -158,47 +123,82 @@ SCAN(1) on default.region as r
=> in schema: {(3) default.r.r_comment (TEXT), default.r.r_name (TEXT), default.r.r_regionkey (INT4)}
=======================================================
-Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
-JOIN(14)(INNER)
+JOIN(13)(INNER)
=> Join Cond: default.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
- SCAN(21) on eb_0000000000000_0000_000004
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
=> out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
=> in schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
- SCAN(20) on eb_0000000000000_0000_000003
- => 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: {(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)}
+ 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_000008 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[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] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
-JOIN(15)(INNER)
+JOIN(14)(INNER)
=> Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
=> in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- SCAN(23) on eb_0000000000000_0000_000007
+ SCAN(21) on eb_0000000000000_0000_000005
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
+ SCAN(20) on eb_0000000000000_0000_000004
+ => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ => in schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.s.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
+
+JOIN(15)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(23) on eb_0000000000000_0000_000007
+ => 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(22) on eb_0000000000000_0000_000006
=> out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
=> in schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
@@ -208,8 +208,8 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.s.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.n.n_name (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_name (TEXT), num=32)
@@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
SORT(26)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
SCAN(25) on eb_0000000000000_0000_000008
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- SCAN(24) on eb_0000000000000_0000_000005
- => out schema: {(9) default.p.p_mfgr (TEXT), default.p.p_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.p.p_mfgr (TEXT), default.p.p_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.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan
index da5cc8f..28803b3 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan
@@ -3,45 +3,45 @@ explain
SORT(10)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
JOIN(15)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- 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(0) on default.nation as n
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(3) 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(14)(INNER)
+ => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
+ 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(0) on default.nation as n
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) 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.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
SCAN(7) on default.part as p
=> target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
=> out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
=> in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
- JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -50,69 +50,127 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
|-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000009
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000008
+5: eb_0000000000000_0000_000009
+6: eb_0000000000000_0000_000010
+7: eb_0000000000000_0000_000011
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000009 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.n.n_name (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+
+SCAN(7) on default.part as p
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
+ => out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
+ => in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.p.p_partkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
+
+JOIN(13)(INNER)
+ => Join Cond: default.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
+ => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(4) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
+ => out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
+ => in schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (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_000008 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.p
- 1: type=Broadcast, tables=default.ps
- 2: type=Broadcast, tables=default.r
- 3: type=Broadcast, tables=default.s
+ 0: type=Broadcast, tables=default.n
+ 1: type=Broadcast, tables=default.r
+
+JOIN(15)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(10) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
+ 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(0) on default.nation as n
+ => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
+ => out schema: {(3) 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_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), default.ps.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), default.s.s_suppkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.n.n_name (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_name (TEXT), num=32)
SORT(26)
=> Sort Keys: default.s.s_acctbal (FLOAT8) (asc, nulls last),default.s.s_name (TEXT) (asc, nulls last),default.n.n_name (TEXT) (asc, nulls last),default.p.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_nationkey (INT4) = default.n.n_nationkey (INT4))
+ => Join Cond: (default.n.n_regionkey (INT4) = default.ps.ps_suppkey (INT4) AND default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4))
=> target list: default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)
=> out schema: {(8) default.n.n_name (TEXT), default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT)}
- => in schema: {(12) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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)}
- JOIN(15)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
- => in schema: {(4) default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4)}
- 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(0) on default.nation as n
- => target list: default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
- => out schema: {(3) 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(14)(INNER)
- => Join Cond: default.p.p_partkey (INT4) = default.ps.ps_partkey (INT4)
- => target list: default.p.p_mfgr (TEXT), default.p.p_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: {(9) default.p.p_mfgr (TEXT), default.p.p_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: {(10) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), 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)}
- SCAN(7) on default.part as p
- => target list: default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)
- => out schema: {(2) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4)}
- => in schema: {(9) default.p.p_brand (TEXT), default.p.p_comment (TEXT), default.p.p_container (TEXT), default.p.p_mfgr (TEXT), default.p.p_name (TEXT), default.p.p_partkey (INT4), default.p.p_retailprice (FLOAT8), default.p.p_size (INT4), default.p.p_type (TEXT)}
- JOIN(13)(INNER)
- => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (INT4)
- => 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(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)}
+ => in schema: {(11) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.p.p_mfgr (TEXT), default.p.p_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_phone (TEXT), default.s.s_suppkey (INT4)}
+ SCAN(25) on eb_0000000000000_0000_000008
+ => out schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ => in schema: {(8) default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.s.s_acctbal (FLOAT8), default.s.s_address (TEXT), default.s.s_comment (TEXT), default.s.s_name (TEXT), default.s.s_phone (TEXT), default.s.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
+ => in schema: {(3) default.p.p_mfgr (TEXT), default.p.p_partkey (INT4), default.ps.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
[17/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
TAJO-2007: By default, Optimizer should use the table volume in TableStat.
Closes #900
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/c577102e
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/c577102e
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/c577102e
Branch: refs/heads/master
Commit: c577102eefa941e1b9ba3d36f4506431ac865e3d
Parents: d306534
Author: Hyunsik Choi <hy...@apache.org>
Authored: Thu Dec 17 00:26:13 2015 -0800
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Thu Dec 17 00:26:13 2015 -0800
----------------------------------------------------------------------
CHANGES | 3 +
.../org/apache/tajo/TajoTestingCluster.java | 1 +
.../main/java/org/apache/tajo/SessionVars.java | 5 +
.../java/org/apache/tajo/conf/TajoConf.java | 7 +
.../apache/tajo/validation/MinValidator.java | 4 +
.../apache/tajo/engine/query/TestCrossJoin.java | 21 +-
.../tajo/engine/query/TestHBaseTable.java | 2 +-
.../tajo/engine/query/TestInnerJoinQuery.java | 1 +
.../engine/query/TestInnerJoinWithSubQuery.java | 20 +-
.../query/TestJoinOnPartitionedTables.java | 2 +-
.../apache/tajo/engine/query/TestJoinQuery.java | 11 +-
.../engine/query/TestMultipleJoinTypes.java | 2 +-
.../tajo/engine/query/TestOuterJoinQuery.java | 12 +-
.../tajo/engine/query/TestSetSessionQuery.java | 20 +-
.../tajo/engine/query/TestUnionQuery.java | 12 +-
.../queries/TestTablePartitions/case3.sql | 7 +-
...tCrossJoinOfOneSmallTableAndJoin.1.Hash.plan | 92 ++++--
...tCrossJoinOfOneSmallTableAndJoin.1.Sort.plan | 92 ++++--
.../testBroadcastTwoPartJoin.Hash.plan | 239 +++++++++++-----
...stBroadcastTwoPartJoin.Hash_NoBroadcast.plan | 192 ++++++-------
.../testBroadcastTwoPartJoin.Sort.plan | 239 +++++++++++-----
...stBroadcastTwoPartJoin.Sort_NoBroadcast.plan | 192 ++++++-------
.../testJoinAsterisk.Hash.plan | 18 +-
.../testJoinAsterisk.Hash_NoBroadcast.plan | 38 +--
.../testJoinAsterisk.Sort.plan | 18 +-
.../testJoinAsterisk.Sort_NoBroadcast.plan | 38 +--
.../testJoinOnMultipleDatabases.Hash.plan | 106 +++----
...oinOnMultipleDatabases.Hash_NoBroadcast.plan | 202 ++++++-------
.../testJoinOnMultipleDatabases.Sort.plan | 106 +++----
...oinOnMultipleDatabases.Sort_NoBroadcast.plan | 202 ++++++-------
.../testJoinWithMultipleJoinQual1.Hash.plan | 208 +++++++++-----
...nWithMultipleJoinQual1.Hash_NoBroadcast.plan | 214 +++++++-------
.../testJoinWithMultipleJoinQual1.Sort.plan | 208 +++++++++-----
...nWithMultipleJoinQual1.Sort_NoBroadcast.plan | 214 +++++++-------
.../TestInnerJoinQuery/testTPCHQ2Join.Hash.plan | 212 +++++++++-----
.../testTPCHQ2Join.Hash_NoBroadcast.plan | 220 +++++++-------
.../TestInnerJoinQuery/testTPCHQ2Join.Sort.plan | 212 +++++++++-----
.../testTPCHQ2Join.Sort_NoBroadcast.plan | 220 +++++++-------
.../testWhereClauseJoin5.Hash.plan | 102 +++++--
.../testWhereClauseJoin5.Sort.plan | 102 +++++--
.../testWhereClauseJoin6.Hash.plan | 174 +++++++----
.../testWhereClauseJoin6.Hash_NoBroadcast.plan | 170 +++++------
.../testWhereClauseJoin6.Sort.plan | 174 +++++++----
.../testWhereClauseJoin6.Sort_NoBroadcast.plan | 170 +++++------
.../testBroadcastSubquery.Hash.plan | 118 ++++++--
.../testBroadcastSubquery.Sort.plan | 118 ++++++--
.../testBroadcastSubquery2.Hash.plan | 244 +++++++++++-----
.../testBroadcastSubquery2.Sort.plan | 244 +++++++++++-----
.../testJoinWithMultipleJoinQual2.Hash.plan | 20 +-
...nWithMultipleJoinQual2.Hash_NoBroadcast.plan | 54 ++--
.../testJoinWithMultipleJoinQual2.Sort.plan | 20 +-
...nWithMultipleJoinQual2.Sort_NoBroadcast.plan | 54 ++--
.../testJoinWithMultipleJoinQual3.Hash.plan | 127 ++++----
...nWithMultipleJoinQual3.Hash_NoBroadcast.plan | 198 ++++++-------
.../testJoinWithMultipleJoinQual3.Sort.plan | 127 ++++----
...nWithMultipleJoinQual3.Sort_NoBroadcast.plan | 198 ++++++-------
.../testJoinWithMultipleJoinQual3.result | 2 +-
.../testJoinWithMultipleJoinQual4.Hash.plan | 167 ++++++-----
...nWithMultipleJoinQual4.Hash_NoBroadcast.plan | 198 ++++++-------
.../testJoinWithMultipleJoinQual4.Sort.plan | 167 ++++++-----
...nWithMultipleJoinQual4.Sort_NoBroadcast.plan | 198 ++++++-------
.../testComplexJoinsWithCaseWhen.Hash.plan | 71 +++--
.../testComplexJoinsWithCaseWhen.Sort.plan | 71 +++--
.../testComplexJoinsWithCaseWhen2.Hash.plan | 47 ++-
.../testComplexJoinsWithCaseWhen2.Sort.plan | 47 ++-
.../testInnerAndOuterWithEmpty.1.Hash.plan | 49 +++-
.../testInnerAndOuterWithEmpty.1.Sort.plan | 49 +++-
.../testJoinWithMultipleJoinTypes.Hash.plan | 63 ++--
.../testJoinWithMultipleJoinTypes.Sort.plan | 63 ++--
.../testFullOuterJoin1.Hash.plan | 38 +--
.../testFullOuterJoin1.Hash_NoBroadcast.plan | 38 +--
.../testFullOuterJoin1.Sort.plan | 38 +--
.../testFullOuterJoin1.Sort_NoBroadcast.plan | 38 +--
.../testLeftOuterJoin1.Hash.plan | 53 +++-
.../testLeftOuterJoin1.Sort.plan | 53 +++-
.../testLeftOuterJoin2.Hash.plan | 98 +++++--
.../testLeftOuterJoin2.Sort.plan | 98 +++++--
.../testLeftOuterJoin3.Hash.plan | 270 ++++++++++++-----
.../testLeftOuterJoin3.Hash_NoBroadcast.plan | 240 ++++++++--------
.../testLeftOuterJoin3.Sort.plan | 270 ++++++++++++-----
.../testLeftOuterJoin3.Sort_NoBroadcast.plan | 240 ++++++++--------
...testLeftOuterJoinWithConstantExpr1.Hash.plan | 53 +++-
...testLeftOuterJoinWithConstantExpr1.Sort.plan | 53 +++-
...testLeftOuterJoinWithConstantExpr4.Hash.plan | 49 +++-
...testLeftOuterJoinWithConstantExpr4.Sort.plan | 49 +++-
...testLeftOuterJoinWithConstantExpr5.Hash.plan | 47 ++-
...testLeftOuterJoinWithConstantExpr5.Sort.plan | 47 ++-
.../testLeftOuterJoinWithEmptyTable4.Hash.plan | 57 +++-
.../testLeftOuterJoinWithEmptyTable4.Sort.plan | 57 +++-
.../testLeftOuterJoinWithNull1.Hash.plan | 53 +++-
.../testLeftOuterJoinWithNull1.Sort.plan | 53 +++-
.../testLeftOuterJoinWithNull2.Hash.plan | 53 +++-
.../testLeftOuterJoinWithNull2.Sort.plan | 53 +++-
.../testLeftOuterJoinWithNull3.Hash.plan | 53 +++-
.../testLeftOuterJoinWithNull3.Sort.plan | 53 +++-
...rJoinWithThetaJoinConditionInWhere.Hash.plan | 43 ++-
...rJoinWithThetaJoinConditionInWhere.Sort.plan | 43 ++-
...leBroadcastDataFileWithZeroLength2.Hash.plan | 49 +++-
...leBroadcastDataFileWithZeroLength2.Sort.plan | 49 +++-
.../testRightOuterJoin1.Hash.plan | 53 +++-
.../testRightOuterJoin1.Sort.plan | 53 +++-
...testLeftOuterJoinWithConstantExpr2.Hash.plan | 69 +++--
...testLeftOuterJoinWithConstantExpr2.Sort.plan | 69 +++--
...tLeftOuterJoinWithEmptySubquery1.1.Hash.plan | 89 ++++--
...tLeftOuterJoinWithEmptySubquery1.1.Sort.plan | 89 ++++--
.../results/TestSQLAnalyzer/setsession1.result | 2 +-
.../results/TestSQLAnalyzer/setsession2.result | 2 +-
.../results/TestSQLAnalyzer/setsession3.result | 2 +-
.../results/TestSQLAnalyzer/setsession4.result | 2 +-
.../results/TestSQLAnalyzer/setsession5.result | 2 +-
.../results/TestSQLAnalyzer/setsession6.result | 2 +-
.../results/TestSQLAnalyzer/setsession7.result | 2 +-
.../results/TestTPCH/testQ2FourJoins.plan | 222 +++++++-------
.../resources/results/TestTPCH/testTPCHQ5.plan | 286 +++++++++----------
.../TestTajoCli/testHelpSessionVars.result | 1 +
.../org/apache/tajo/parser/sql/SQLAnalyzer.java | 3 +-
.../plan/rewrite/TableStatUpdateRewriter.java | 60 +++-
.../tajo/storage/pgsql/TestPgSQLQueryTests.java | 5 +-
118 files changed, 6590 insertions(+), 4029 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 8b18949..51c1e62 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,9 @@ Release 0.12.0 - unreleased
IMPROVEMENT
+ TAJO-2007: By default, Optimizer should use the table volume in TableStat.
+ (hyunsik)
+
TAJO-2022: Add AsyncTaskServer to TajoMaster. (hyunsik)
TAJO-1990: Refine some parts in HBaseTablespace. (hyunsik)
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-cluster-tests/src/test/java/org/apache/tajo/TajoTestingCluster.java
----------------------------------------------------------------------
diff --git a/tajo-cluster-tests/src/test/java/org/apache/tajo/TajoTestingCluster.java b/tajo-cluster-tests/src/test/java/org/apache/tajo/TajoTestingCluster.java
index 3dfb902..6801ff4 100644
--- a/tajo-cluster-tests/src/test/java/org/apache/tajo/TajoTestingCluster.java
+++ b/tajo-cluster-tests/src/test/java/org/apache/tajo/TajoTestingCluster.java
@@ -126,6 +126,7 @@ public class TajoTestingCluster {
// Injection of equality testing code of logical plan (de)serialization
conf.setClassVar(ConfVars.LOGICAL_PLAN_REWRITE_RULE_PROVIDER_CLASS, LogicalPlanTestRuleProvider.class);
conf.setClassVar(ConfVars.GLOBAL_PLAN_REWRITE_RULE_PROVIDER_CLASS, GlobalPlanTestRuleProvider.class);
+ conf.setLongVar(ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD, 1024 * 1024); // 1GB
conf.setInt(ConfVars.WORKER_RESOURCE_AVAILABLE_CPU_CORES.varname, 4);
conf.setInt(ConfVars.WORKER_RESOURCE_AVAILABLE_MEMORY_MB.varname, 2000);
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-common/src/main/java/org/apache/tajo/SessionVars.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/SessionVars.java b/tajo-common/src/main/java/org/apache/tajo/SessionVars.java
index 8d99a53..ba85549 100644
--- a/tajo-common/src/main/java/org/apache/tajo/SessionVars.java
+++ b/tajo-common/src/main/java/org/apache/tajo/SessionVars.java
@@ -88,6 +88,11 @@ public enum SessionVars implements ConfigKey {
// Query and Optimization ---------------------------------------------------
+ // Optimizer
+ USE_TABLE_VOLUME(ConfVars.$USE_TABLE_VOLUME,
+ "Enable optimizer to get and use the table volume via storage handlers", DEFAULT, Boolean.class,
+ Validators.bool()),
+
// for distributed query strategies
BROADCAST_NON_CROSS_JOIN_THRESHOLD(ConfVars.$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD,
"restriction for the total size of broadcasted table for non-cross join (kb)", DEFAULT, Long.class,
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java b/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
index b2e08bd..9ab3dfa 100644
--- a/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
+++ b/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
@@ -322,6 +322,13 @@ public class TajoConf extends Configuration {
// Query and Optimization ---------------------------------------------------
+
+ // Enables the optimizer to get and use table volumes via storage handlers.
+ // This feature may cause some performance degradation when storage access is too slow (S3).
+ // By default, this config value is false, and in this case the optimizer uses the table stats from catalog.
+ $USE_TABLE_VOLUME("tajo.optimizer.stats.use-table-volume", Boolean.FALSE),
+
+
// for distributed query strategies
$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD("tajo.dist-query.broadcast.non-cross-join.threshold-kb", 5 * 1024l,
Validators.min("0")), // 5 MB
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-common/src/main/java/org/apache/tajo/validation/MinValidator.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/validation/MinValidator.java b/tajo-common/src/main/java/org/apache/tajo/validation/MinValidator.java
index 431fe9b..6f249e3 100644
--- a/tajo-common/src/main/java/org/apache/tajo/validation/MinValidator.java
+++ b/tajo-common/src/main/java/org/apache/tajo/validation/MinValidator.java
@@ -67,6 +67,10 @@ public class MinValidator extends AbstractValidator {
BigDecimal objDecimal = (BigDecimal) object;
BigDecimal minDecimal = new BigDecimal(minValue);
result = objDecimal.compareTo(minDecimal) >= 0;
+ } else if (object instanceof String) {
+ BigDecimal objDecimal = new BigDecimal((String)object);
+ BigDecimal minDecimal = new BigDecimal(minValue);
+ result = objDecimal.compareTo(minDecimal) >= 0;
}
}
else {
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestCrossJoin.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestCrossJoin.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestCrossJoin.java
index 7990ee7..8be99c9 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestCrossJoin.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestCrossJoin.java
@@ -119,20 +119,35 @@ public class TestCrossJoin extends TestJoinQuery {
@Test (expected = TooLargeInputForCrossJoinException.class)
public final void testCrossJoinOfOneLargeTableAndJoin() throws Exception {
- executeString("select * from nation cross join region left outer join lineitem on r_regionkey = l_orderkey inner join supplier on l_suppkey = s_suppkey");
+ try {
+ executeString("SET SESSION BROADCAST_CROSS_JOIN_THRESHOLD to 2").close();
+ executeString("select * from nation cross join region left outer join lineitem on r_regionkey = l_orderkey " +
+ "inner join supplier on l_suppkey = s_suppkey");
+ } finally {
+ executeString("SET SESSION BROADCAST_CROSS_JOIN_THRESHOLD to "
+ + ORIGINAL_BROADCAST_CROSS_JOIN_THRESHOLD).close();
+ }
}
@Test (expected = TooLargeInputForCrossJoinException.class)
public final void testCrossJoinOfTwoLargeTables() throws Exception {
- executeString("select * from nation n1 cross join nation n2");
+ try {
+ executeString("SET SESSION BROADCAST_CROSS_JOIN_THRESHOLD 2").close();
+ executeString("select * from nation n1 cross join nation n2");
+ } finally {
+ executeString("SET SESSION BROADCAST_CROSS_JOIN_THRESHOLD "
+ + ORIGINAL_BROADCAST_CROSS_JOIN_THRESHOLD).close();
+ }
}
+ // FIXME: should be replaced by join queries with hints (See TAJO-2026)
@Test (expected = InvalidInputsForCrossJoin.class)
public final void testCrossJoinOfSubqueries() throws Exception {
executeString("select * from (select * from nation, region where n_regionkey = r_regionkey) t1 " +
"cross join (select * from orders, lineitem where l_orderkey = o_orderkey) t2");
}
+ // FIXME: should be replaced by join queries with hints (See TAJO-2026)
@Test
@Option(withExplain = true, withExplainGlobal = true, parameterized = true)
@SimpleTest (queries = {
@@ -142,6 +157,7 @@ public class TestCrossJoin extends TestJoinQuery {
runSimpleTests();
}
+ // FIXME: should be replaced by join queries with hints (See TAJO-2026)
@Test
@Option(withExplain = true, withExplainGlobal = true, parameterized = true)
@SimpleTest (queries = {
@@ -152,6 +168,7 @@ public class TestCrossJoin extends TestJoinQuery {
runSimpleTests();
}
+ // FIXME: should be replaced by join queries with hints (See TAJO-2026)
@Test
@Option(withExplain = true, withExplainGlobal = true, parameterized = true)
@SimpleTest (queries = {
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
index 95109b9..edd6c70 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
@@ -664,7 +664,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
ResultSet res = executeString("select a.rk, a.col1, a.col2, a.col3, b.l_orderkey, b.l_linestatus " +
"from hbase_mapped_table a " +
- "join default.lineitem b on a.col3 = b.l_orderkey");
+ "join default.lineitem b on a.col3 = b.l_orderkey order by a.rk, a.col1, a.col2, a.col3");
assertResultSet(res);
res.close();
} finally {
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java
index 1a76f57..42d8b48 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java
@@ -259,6 +259,7 @@ public class TestInnerJoinQuery extends TestJoinQuery {
runSimpleTests();
}
+ // FIXME: should be replaced by join queries with hints (See TAJO-2026)
@Test
@Option(withExplain = true, withExplainGlobal = true, parameterized = true)
@SimpleTest()
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinWithSubQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinWithSubQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinWithSubQuery.java
index f987c5f..5a7bfea 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinWithSubQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInnerJoinWithSubQuery.java
@@ -57,7 +57,7 @@ public class TestInnerJoinWithSubQuery extends TestJoinQuery {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true, parameterized = true)
+ @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest()
public final void testJoinWithMultipleJoinQual3() throws Exception {
runSimpleTests();
@@ -71,24 +71,6 @@ public class TestInnerJoinWithSubQuery extends TestJoinQuery {
}
@Test
- public final void testJoinWithJson2() throws Exception {
- /*
- select t.n_nationkey, t.n_name, t.n_regionkey, t.n_comment, ps.ps_availqty, s.s_suppkey
- from (
- select n_nationkey, n_name, n_regionkey, n_comment
- from nation n
- join region r on (n.n_regionkey = r.r_regionkey)
- ) t
- join supplier s on (s.s_nationkey = t.n_nationkey)
- join partsupp ps on (s.s_suppkey = ps.ps_suppkey)
- where t.n_name in ('ARGENTINA','ETHIOPIA', 'MOROCCO');
- */
- ResultSet res = executeJsonQuery();
- assertResultSet(res);
- cleanupQuery(res);
- }
-
- @Test
@Option(withExplain = true, withExplainGlobal = true, parameterized = true)
@SimpleTest(
prepare = {
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java
index d2585a7..1db1f77 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java
@@ -174,7 +174,7 @@ public class TestJoinOnPartitionedTables extends TestJoinQuery {
ResultSet res = executeString(
"select a.l_orderkey as key1, b.l_orderkey as key2 from lineitem as a " +
"left outer join " + tableName + " b " +
- "on a.l_partkey = b.l_partkey and b.l_orderkey = 1000"
+ "on a.l_partkey = b.l_partkey and b.l_orderkey = 1000 order by key1, key2"
);
String expected = "key1,key2\n" +
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
index 7acb73a..9b5b9ed 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
@@ -54,6 +54,7 @@ import static org.junit.Assert.assertTrue;
public class TestJoinQuery extends QueryTestCaseBase {
private static final Log LOG = LogFactory.getLog(TestJoinQuery.class);
private static int reference = 0;
+ protected static long ORIGINAL_BROADCAST_CROSS_JOIN_THRESHOLD = 1024 * 1024;
public TestJoinQuery(String joinOption) throws Exception {
super(TajoConstants.DEFAULT_DATABASE_NAME, joinOption);
@@ -62,7 +63,7 @@ public class TestJoinQuery extends QueryTestCaseBase {
testingCluster.setAllTajoDaemonConfValue(ConfVars.$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD.varname,
"" + 5);
testingCluster.setAllTajoDaemonConfValue(ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.varname,
- "" + 2);
+ 1024 * 1024 + "");
testingCluster.setAllTajoDaemonConfValue(
ConfVars.$EXECUTOR_HASH_JOIN_SIZE_THRESHOLD.varname,
@@ -76,6 +77,8 @@ public class TestJoinQuery extends QueryTestCaseBase {
ConfVars.$EXECUTOR_GROUPBY_INMEMORY_HASH_THRESHOLD.defaultVal);
if (joinOption.indexOf("NoBroadcast") >= 0) {
+ testingCluster.setAllTajoDaemonConfValue(ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.varname,
+ 1024 * 1024 + "");
testingCluster.setAllTajoDaemonConfValue(ConfVars.$TEST_BROADCAST_JOIN_ENABLED.varname, "false");
}
@@ -86,6 +89,8 @@ public class TestJoinQuery extends QueryTestCaseBase {
String.valueOf(256));
testingCluster.setAllTajoDaemonConfValue(ConfVars.$EXECUTOR_GROUPBY_INMEMORY_HASH_THRESHOLD.varname,
String.valueOf(256));
+ testingCluster.setAllTajoDaemonConfValue(ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.varname,
+ 1024 * 1024 + "");
}
if (joinOption.indexOf("Sort") >= 0) {
testingCluster.setAllTajoDaemonConfValue(
@@ -94,6 +99,8 @@ public class TestJoinQuery extends QueryTestCaseBase {
String.valueOf(0));
testingCluster.setAllTajoDaemonConfValue(ConfVars.$EXECUTOR_GROUPBY_INMEMORY_HASH_THRESHOLD.varname,
String.valueOf(0));
+ testingCluster.setAllTajoDaemonConfValue(ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.varname,
+ 1024 * 1024 + "");
}
}
@@ -119,7 +126,7 @@ public class TestJoinQuery extends QueryTestCaseBase {
testingCluster.setAllTajoDaemonConfValue(ConfVars.$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD.varname,
ConfVars.$DIST_QUERY_BROADCAST_NON_CROSS_JOIN_THRESHOLD.defaultVal);
testingCluster.setAllTajoDaemonConfValue(ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.varname,
- ConfVars.$DIST_QUERY_BROADCAST_CROSS_JOIN_THRESHOLD.defaultVal);
+ 1024 * 1024 + "");
testingCluster.setAllTajoDaemonConfValue(
ConfVars.$EXECUTOR_HASH_JOIN_SIZE_THRESHOLD.varname,
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestMultipleJoinTypes.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestMultipleJoinTypes.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestMultipleJoinTypes.java
index d3cde3d..9c7ac58 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestMultipleJoinTypes.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestMultipleJoinTypes.java
@@ -71,7 +71,7 @@ public class TestMultipleJoinTypes extends TestJoinQuery {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true, parameterized = true)
+ @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest(prepare = {
"CREATE TABLE customer_broad_parts (" +
" c_nationkey INT4," +
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java
index 0b42a6d..1ae8bac 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java
@@ -81,7 +81,7 @@ public class TestOuterJoinQuery extends TestJoinQuery {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true, parameterized = true)
+ @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest()
public final void testLeftOuterJoinWithConstantExpr4() throws Exception {
// outer join with constant projections
@@ -95,7 +95,7 @@ public class TestOuterJoinQuery extends TestJoinQuery {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true, parameterized = true)
+ @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest()
public final void testLeftOuterJoinWithConstantExpr5() throws Exception {
// outer join with constant projections
@@ -116,7 +116,7 @@ public class TestOuterJoinQuery extends TestJoinQuery {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true, parameterized = true)
+ @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest()
public final void testFullOuterJoin1() throws Exception {
runSimpleTests();
@@ -417,7 +417,7 @@ public class TestOuterJoinQuery extends TestJoinQuery {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true, parameterized = true)
+ @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest()
public final void testLeftOuterJoin2() throws Exception {
// large, large, small, small
@@ -425,7 +425,7 @@ public class TestOuterJoinQuery extends TestJoinQuery {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true, parameterized = true)
+ @Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest()
public final void testLeftOuterJoin3() throws Exception {
// large, large, small, large, small, small
@@ -441,6 +441,7 @@ public class TestOuterJoinQuery extends TestJoinQuery {
runSimpleTests();
}
+ // FIXME: should be replaced by join queries with hints (See TAJO-2026)
@Test
@Option(withExplain = true, withExplainGlobal = true, parameterized = true)
@SimpleTest
@@ -448,6 +449,7 @@ public class TestOuterJoinQuery extends TestJoinQuery {
runSimpleTests();
}
+ // FIXME: should be replaced by join queries with hints (See TAJO-2026)
@Test
@Option(withExplain = true, withExplainGlobal = true, parameterized = true, sort = true)
@SimpleTest
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSetSessionQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSetSessionQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSetSessionQuery.java
index 358afbc..05995d2 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSetSessionQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSetSessionQuery.java
@@ -65,16 +65,16 @@ public class TestSetSessionQuery extends QueryTestCaseBase {
@Test
public final void testSetSession1() throws Exception {
- assertFalse(getClient().existSessionVariable("key1"));
- executeString("SET SESSION key1 to true").close();
- assertTrue(getClient().existSessionVariable("key1"));
+ assertFalse(getClient().existSessionVariable("KEY1"));
+ executeString("SET SESSION KEY1 to true").close();
+ assertTrue(getClient().existSessionVariable("KEY1"));
- executeString("SET SESSION key1 to true").close();
- executeString("SET SESSION key2 to 'val1'").close();
- assertTrue(getClient().existSessionVariable("key1"));
- assertTrue(getClient().existSessionVariable("key2"));
- executeString("RESET key1").close();
- executeString("SET SESSION key2 to DEFAULT").close();
- assertFalse(getClient().existSessionVariable("key2"));
+ executeString("SET SESSION KEY2 to true").close();
+ executeString("SET SESSION KEY2 to 'val1'").close();
+ assertTrue(getClient().existSessionVariable("KEY1"));
+ assertTrue(getClient().existSessionVariable("KEY2"));
+ executeString("RESET KEY1").close();
+ executeString("SET SESSION KEY2 to DEFAULT").close();
+ assertFalse(getClient().existSessionVariable("KEY2"));
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java
index ce22782..7795d39 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java
@@ -545,24 +545,24 @@ public class TestUnionQuery extends QueryTestCaseBase {
public final void testThreeJoinInUnion() throws Exception {
// https://issues.apache.org/jira/browse/TAJO-881
ResultSet res = executeString(
- "select orders.o_orderkey \n" +
+ "select o_orderkey from (select orders.o_orderkey \n" +
"from orders\n" +
"join lineitem on orders.o_orderkey = lineitem.l_orderkey\n" +
"join customer on orders.o_custkey = customer.c_custkey\n" +
"union all \n" +
- "select nation.n_nationkey from nation"
+ "select nation.n_nationkey from nation) t order by o_orderkey"
);
String expected =
"o_orderkey\n" +
"-------------------------------\n" +
+ "0\n" +
+ "1\n" +
"1\n" +
"1\n" +
"2\n" +
+ "2\n" +
"3\n" +
"3\n" +
- "0\n" +
- "1\n" +
- "2\n" +
"3\n" +
"4\n" +
"5\n" +
@@ -685,7 +685,7 @@ public class TestUnionQuery extends QueryTestCaseBase {
}
@Test
- @Option(withExplain = true, withExplainGlobal = true)
+ @Option(withExplain = true, withExplainGlobal = true, sort = true)
@SimpleTest
public void testComplexUnion2() throws Exception {
runSimpleTests();
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/queries/TestTablePartitions/case3.sql
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/queries/TestTablePartitions/case3.sql b/tajo-core-tests/src/test/resources/queries/TestTablePartitions/case3.sql
index 6cb1ea1..0164d4c 100644
--- a/tajo-core-tests/src/test/resources/queries/TestTablePartitions/case3.sql
+++ b/tajo-core-tests/src/test/resources/queries/TestTablePartitions/case3.sql
@@ -4,5 +4,10 @@ select
key
from lineitem as l, testQueryCasesOnColumnPartitionedTable as p
where
- (key = 45.0 or key = 38.0) and l.l_orderkey = p.col1;
+ (key = 45.0 or key = 38.0) and l.l_orderkey = p.col1
+order by
+ l.l_orderkey,
+ p.col1,
+ key
+
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Hash.plan
index 36a1b43..d43ff32 100644
--- a/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Hash.plan
@@ -37,21 +37,90 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000007
+6: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
+
+SCAN(1) 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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
+
+SCAN(3) on default.lineitem
+ => 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)}
+
+=======================================================
+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.lineitem.l_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), num=32)
+
+JOIN(9)(LEFT_OUTER)
+ => Join Cond: default.region.r_regionkey (INT4) = default.lineitem.l_orderkey (INT4)
+ => 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)
+ => out schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
+ => in schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
+ SCAN(14) on eb_0000000000000_0000_000002
+ => 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(13) 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+SCAN(5) 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_000007 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
[Enforcers]
0: type=Broadcast, tables=default.orders
- 1: type=Broadcast, tables=default.region
- 2: type=Broadcast, tables=default.supplier
JOIN(11)(CROSS)
=> 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), 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), de
fault.region.r_regionkey (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)
@@ -66,23 +135,12 @@ JOIN(11)(CROSS)
=> 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (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)
=> out schema: {(26) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (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)}
=> in schema: {(26) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (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(5) 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)
+ SCAN(16) on eb_0000000000000_0000_000004
=> 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)}
- JOIN(9)(LEFT_OUTER)
- => Join Cond: default.region.r_regionkey (INT4) = default.lineitem.l_orderkey (INT4)
- => 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)
+ SCAN(15) on eb_0000000000000_0000_000003
=> out schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
=> in schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
- SCAN(3) on default.lineitem
- => 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)}
- SCAN(1) 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_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Sort.plan
index 36a1b43..d43ff32 100644
--- a/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestCrossJoin/testCrossJoinOfOneSmallTableAndJoin.1.Sort.plan
@@ -37,21 +37,90 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000007
+6: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
+
+SCAN(1) 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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
+
+SCAN(3) on default.lineitem
+ => 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)}
+
+=======================================================
+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.lineitem.l_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), num=32)
+
+JOIN(9)(LEFT_OUTER)
+ => Join Cond: default.region.r_regionkey (INT4) = default.lineitem.l_orderkey (INT4)
+ => 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)
+ => out schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
+ => in schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
+ SCAN(14) on eb_0000000000000_0000_000002
+ => 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(13) 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+SCAN(5) 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_000007 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.lineitem.l_suppkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
[Enforcers]
0: type=Broadcast, tables=default.orders
- 1: type=Broadcast, tables=default.region
- 2: type=Broadcast, tables=default.supplier
JOIN(11)(CROSS)
=> 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), 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), de
fault.region.r_regionkey (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)
@@ -66,23 +135,12 @@ JOIN(11)(CROSS)
=> 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (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)
=> out schema: {(26) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (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)}
=> in schema: {(26) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (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(5) 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)
+ SCAN(16) on eb_0000000000000_0000_000004
=> 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)}
- JOIN(9)(LEFT_OUTER)
- => Join Cond: default.region.r_regionkey (INT4) = default.lineitem.l_orderkey (INT4)
- => 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)
+ SCAN(15) on eb_0000000000000_0000_000003
=> out schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
=> in schema: {(19) 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), default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)}
- SCAN(3) on default.lineitem
- => 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)}
- SCAN(1) 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_000008 [TERMINAL]
[14/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan
index df2c800..7ba3a64 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
JOIN(15)(INNER)
=> 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)}
+ => 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)}
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(14)(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(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(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(13)(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)}
+ => 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(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_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)}
+ 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,21 +53,21 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
- |-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000006
-6: eb_0000000000000_0000_000007
-7: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
+6: eb_0000000000000_0000_000006
+7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
9: eb_0000000000000_0000_000009
10: eb_0000000000000_0000_000010
@@ -79,7 +79,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
SCAN(2) on default.partsupp
=> target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)
@@ -91,7 +91,31 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (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)
@@ -103,47 +127,46 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
JOIN(13)(INNER)
- => 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)}
+ => 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(19) on eb_0000000000000_0000_000002
- => 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)}
+ => 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(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]
+Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
=======================================================
-[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000006 [LEAF]
-=======================================================
+[Incoming]
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (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)}
+JOIN(14)(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(21) on eb_0000000000000_0000_000005
+ => 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(20) on eb_0000000000000_0000_000004
+ => 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_000007 [LEAF]
@@ -158,29 +181,6 @@ SCAN(4) on default.region
=> 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.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_nationkey (INT4), num=32)
-
-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(21) on eb_0000000000000_0000_000004
- => 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: {(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]
=======================================================
@@ -189,27 +189,27 @@ Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
[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.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32)
JOIN(15)(INNER)
=> 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)}
+ => 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)}
SCAN(23) on eb_0000000000000_0000_000007
=> 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: {(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)}
+ => 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)}
=======================================================
Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (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, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
SCAN(25) on eb_0000000000000_0000_000008
- => 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: {(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)}
+ => 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)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => 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)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan
index 466c0be..41125d7 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
JOIN(15)(INNER)
=> 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)}
+ => 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)}
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(14)(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(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(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(13)(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)}
+ => 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(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_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)}
+ 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,7 +66,7 @@ Block Id: eb_0000000000000_0000_000009 [LEAF]
[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)
[Enforcers]
- 0: type=Broadcast, tables=default.partsupp
+ 0: type=Broadcast, tables=default.nation
1: type=Broadcast, tables=default.region
2: type=Broadcast, tables=joins.part_
3: type=Broadcast, tables=joins.supplier_
@@ -74,45 +74,45 @@ Block Id: eb_0000000000000_0000_000009 [LEAF]
SORT(26)
=> Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
JOIN(15)(INNER)
=> 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)}
+ => 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)}
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(14)(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(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(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(13)(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)}
+ => 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(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_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)}
+ 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]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan
index df2c800..7ba3a64 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
JOIN(15)(INNER)
=> 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)}
+ => 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)}
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(14)(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(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(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(13)(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)}
+ => 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(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_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)}
+ 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,21 +53,21 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
- |-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000006
-6: eb_0000000000000_0000_000007
-7: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
+6: eb_0000000000000_0000_000006
+7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
9: eb_0000000000000_0000_000009
10: eb_0000000000000_0000_000010
@@ -79,7 +79,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
SCAN(2) on default.partsupp
=> target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)
@@ -91,7 +91,31 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (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)
@@ -103,47 +127,46 @@ Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
JOIN(13)(INNER)
- => 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)}
+ => 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(19) on eb_0000000000000_0000_000002
- => 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)}
+ => 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(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]
+Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
=======================================================
-[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=joins.part_.p_partkey (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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000006 [LEAF]
-=======================================================
+[Incoming]
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=joins.supplier_.s_nationkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (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)}
+JOIN(14)(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(21) on eb_0000000000000_0000_000005
+ => 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(20) on eb_0000000000000_0000_000004
+ => 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_000007 [LEAF]
@@ -158,29 +181,6 @@ SCAN(4) on default.region
=> 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.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_nationkey (INT4), num=32)
-
-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(21) on eb_0000000000000_0000_000004
- => 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: {(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]
=======================================================
@@ -189,27 +189,27 @@ Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
[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.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (INT4), num=32)
JOIN(15)(INNER)
=> 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)}
+ => 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)}
SCAN(23) on eb_0000000000000_0000_000007
=> 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: {(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)}
+ => 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)}
=======================================================
Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=joins.supplier_.s_suppkey (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, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
SCAN(25) on eb_0000000000000_0000_000008
- => 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: {(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)}
+ => 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)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => 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)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
[07/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan
index 7c48e47..0d9f1c1 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan
@@ -3,41 +3,41 @@ explain
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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(14)(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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -45,64 +45,93 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
+1: eb_0000000000000_0000_000005
+2: eb_0000000000000_0000_000006
+3: eb_0000000000000_0000_000007
+4: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000007 [ROOT]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.ps
+ 0: type=Broadcast, tables=default.n
1: type=Broadcast, tables=default.r
- 2: type=Broadcast, tables=default.s
+
+JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
+ PROJECTION(3)
+ => Targets: default.n.n_nationkey (INT4), default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.n.n_comment (TEXT)
+ => 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
+ => 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(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(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(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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [ROOT]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
- PROJECTION(3)
- => Targets: default.n.n_nationkey (INT4), default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.n.n_comment (TEXT)
- => 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(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)}
- JOIN(14)(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)}
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(22) on eb_0000000000000_0000_000006
+ => 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(21) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan
index 554ee76..c41813a 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan
@@ -3,41 +3,41 @@ explain
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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(14)(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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -46,54 +46,30 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
|-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000001
-2: eb_0000000000000_0000_000002
+1: eb_0000000000000_0000_000002
+2: eb_0000000000000_0000_000003
3: eb_0000000000000_0000_000004
-4: eb_0000000000000_0000_000005
-5: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000001
+5: eb_0000000000000_0000_000005
6: eb_0000000000000_0000_000006
7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000001 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
-
-=======================================================
Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000004 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
@@ -102,11 +78,11 @@ SCAN(0) on default.nation as n
=> 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]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -114,38 +90,15 @@ SCAN(1) on default.region as r
=> 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]
+Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
-
-JOIN(14)(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(18) 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(17) 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)
+[q_0000000000000_0000] 4 => 5 (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)
@@ -160,34 +113,81 @@ 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(20) on eb_0000000000000_0000_000005
+ SCAN(18) on eb_0000000000000_0000_000003
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
- SCAN(19) on eb_0000000000000_0000_000004
+ SCAN(17) on eb_0000000000000_0000_000002
=> 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_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
+JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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(20) on eb_0000000000000_0000_000004
+ => 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(19) on eb_0000000000000_0000_000001
+ => 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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000007 [ROOT]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(22) on eb_0000000000000_0000_000006
- => 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(21) 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)}
+ => 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(21) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan
index 7c48e47..0d9f1c1 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan
@@ -3,41 +3,41 @@ explain
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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(14)(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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -45,64 +45,93 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
+1: eb_0000000000000_0000_000005
+2: eb_0000000000000_0000_000006
+3: eb_0000000000000_0000_000007
+4: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000007 [ROOT]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.ps
+ 0: type=Broadcast, tables=default.n
1: type=Broadcast, tables=default.r
- 2: type=Broadcast, tables=default.s
+
+JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
+ PROJECTION(3)
+ => Targets: default.n.n_nationkey (INT4), default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.n.n_comment (TEXT)
+ => 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
+ => 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(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(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(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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [ROOT]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
- PROJECTION(3)
- => Targets: default.n.n_nationkey (INT4), default.n.n_name (TEXT), default.n.n_regionkey (INT4), default.n.n_comment (TEXT)
- => 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(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)}
- JOIN(14)(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)}
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(22) on eb_0000000000000_0000_000006
+ => 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(21) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan
index 554ee76..c41813a 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan
@@ -3,41 +3,41 @@ explain
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) 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.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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(14)(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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -46,54 +46,30 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
|-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000001
-2: eb_0000000000000_0000_000002
+1: eb_0000000000000_0000_000002
+2: eb_0000000000000_0000_000003
3: eb_0000000000000_0000_000004
-4: eb_0000000000000_0000_000005
-5: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000001
+5: eb_0000000000000_0000_000005
6: eb_0000000000000_0000_000006
7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000001 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
-
-=======================================================
Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000004 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
@@ -102,11 +78,11 @@ SCAN(0) on default.nation as n
=> 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]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -114,38 +90,15 @@ SCAN(1) on default.region as r
=> 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]
+Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 3 => 7 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
-
-JOIN(14)(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(18) 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(17) 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)
+[q_0000000000000_0000] 4 => 5 (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)
@@ -160,34 +113,81 @@ 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(20) on eb_0000000000000_0000_000005
+ SCAN(18) on eb_0000000000000_0000_000003
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
- SCAN(19) on eb_0000000000000_0000_000004
+ SCAN(17) on eb_0000000000000_0000_000002
=> 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_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
+JOIN(14)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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(20) on eb_0000000000000_0000_000004
+ => 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(19) on eb_0000000000000_0000_000001
+ => 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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000007 [ROOT]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
SELECTION(12)
=> Search Cond: default.t.n_nationkey (INT4) > default.s.s_suppkey (INT4)
JOIN(15)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(22) on eb_0000000000000_0000_000006
- => 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(21) 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)}
+ => 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(21) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan
index 63ac101..c0c3fc1 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan
@@ -32,24 +32,64 @@ 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_000003
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
-3: eb_0000000000000_0000_000007
+1: eb_0000000000000_0000_000003
+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_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.region.r_name (TEXT), s1 (TEXT), num=32)
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
[Enforcers]
0: type=Broadcast, tables=default.region
- 1: type=Broadcast, tables=default.supplier
+
+JOIN(8)(INNER)
+ => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4)
+ => 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(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_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+SCAN(3) on default.supplier
+ => target list: default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
+ => out schema: {(2) default.supplier.s_name (TEXT), default.supplier.s_nationkey (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_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.region.r_name (TEXT), s1 (TEXT), num=32)
SORT(15)
=> Sort Keys: default.region.r_name (TEXT) (asc, nulls last),s1 (TEXT) (asc, nulls last)
@@ -58,23 +98,12 @@ SORT(15)
=> target list: CASE WHEN default.supplier.s_name (TEXT) IS NULL THEN N/O ELSE default.supplier.s_name (TEXT) END as s1, default.region.r_name (TEXT)
=> out schema: {(2) default.region.r_name (TEXT), s1 (TEXT)}
=> in schema: {(4) default.nation.n_nationkey (INT4), default.region.r_name (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.supplier
- => target list: default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
+ SCAN(14) on eb_0000000000000_0000_000004
=> out schema: {(2) default.supplier.s_name (TEXT), default.supplier.s_nationkey (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(8)(INNER)
- => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4)
- => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT)
+ => in schema: {(2) default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ SCAN(13) on eb_0000000000000_0000_000003
=> 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(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)}
+ => in schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
[03/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Hash.plan
index 9b2aeeb..56023bc 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Hash.plan
@@ -55,25 +55,54 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000009)
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000007
-3: eb_0000000000000_0000_000004
-4: eb_0000000000000_0000_000008
-5: eb_0000000000000_0000_000009
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000007
+5: eb_0000000000000_0000_000004
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=, num=1)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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=HASH_SHUFFLE, key=, num=1)
GROUP_BY(17)()
=> exprs: (max(default.customer.c_custkey (INT4)),sum(default.orders.o_orderkey (INT4)),max(default.orders.o_orderstatus (TEXT)),max(default.orders.o_orderdate (TEXT)))
@@ -85,14 +114,12 @@ GROUP_BY(17)()
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
=> out schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(16) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(15) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000007 [LEAF]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Sort.plan
index 9b2aeeb..56023bc 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithEmptyTable4.Sort.plan
@@ -55,25 +55,54 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000009)
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000007
-3: eb_0000000000000_0000_000004
-4: eb_0000000000000_0000_000008
-5: eb_0000000000000_0000_000009
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000007
+5: eb_0000000000000_0000_000004
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=, num=1)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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=HASH_SHUFFLE, key=, num=1)
GROUP_BY(17)()
=> exprs: (max(default.customer.c_custkey (INT4)),sum(default.orders.o_orderkey (INT4)),max(default.orders.o_orderstatus (TEXT)),max(default.orders.o_orderdate (TEXT)))
@@ -85,14 +114,12 @@ GROUP_BY(17)()
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
=> out schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(16) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(15) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000007 [LEAF]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Hash.plan
index 074245f..2ce8bed 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Hash.plan
@@ -25,23 +25,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(11)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(11)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), coalesce(default.orders.o_orderstatus (TEXT),N/A) as ?coalesce
=> out schema: {(4) ?coalesce (TEXT), default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(9) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Sort.plan
index 074245f..2ce8bed 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull1.Sort.plan
@@ -25,23 +25,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(11)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(11)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), coalesce(default.orders.o_orderstatus (TEXT),N/A) as ?coalesce
=> out schema: {(4) ?coalesce (TEXT), default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(9) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Hash.plan
index 28c69e2..df7b416 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Hash.plan
@@ -25,23 +25,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(11)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(11)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), coalesce(default.orders.o_orderstatus (TEXT),N/A) as ?coalesce
=> out schema: {(4) ?coalesce (TEXT), default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(9) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Sort.plan
index 28c69e2..df7b416 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull2.Sort.plan
@@ -25,23 +25,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(11)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(11)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), coalesce(default.orders.o_orderstatus (TEXT),N/A) as ?coalesce
=> out schema: {(4) ?coalesce (TEXT), default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(9) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Hash.plan
index 27fa16f..27f7335 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Hash.plan
@@ -25,23 +25,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(11)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(11)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), coalesce(default.orders.o_orderstatus (TEXT),N/A) as ?coalesce
=> out schema: {(4) ?coalesce (TEXT), default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(9) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Sort.plan
index 27fa16f..27f7335 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithNull3.Sort.plan
@@ -25,23 +25,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(11)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -52,14 +81,12 @@ SORT(11)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), coalesce(default.orders.o_orderstatus (TEXT),N/A) as ?coalesce
=> out schema: {(4) ?coalesce (TEXT), default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(9) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Hash.plan
index 20f77b3..ac73ab9 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Hash.plan
@@ -22,19 +22,48 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.r_regionkey (INT4), num=32)
+
+SCAN(0) on default.region as a
+ => target list: default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)
+ => out schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
+ => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
+SCAN(1) on default.customer as b
+ => target list: default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)
+ => out schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
+ => in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
-[Enforcers]
- 0: type=Broadcast, tables=default.b
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
SELECTION(6)
=> Search Cond: default.a.r_name (TEXT) < default.b.c_name (TEXT)
@@ -43,12 +72,10 @@ SELECTION(6)
=> target list: default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4), default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)
=> out schema: {(11) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4), default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
=> in schema: {(11) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4), default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
- SCAN(1) on default.customer as b
- => target list: default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
=> in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
- SCAN(0) on default.region as a
- => target list: default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)
+ SCAN(9) on eb_0000000000000_0000_000001
=> out schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
=> in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Sort.plan
index 20f77b3..ac73ab9 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinWithThetaJoinConditionInWhere.Sort.plan
@@ -22,19 +22,48 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.r_regionkey (INT4), num=32)
+
+SCAN(0) on default.region as a
+ => target list: default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)
+ => out schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
+ => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
+SCAN(1) on default.customer as b
+ => target list: default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)
+ => out schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
+ => in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
-[Enforcers]
- 0: type=Broadcast, tables=default.b
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
SELECTION(6)
=> Search Cond: default.a.r_name (TEXT) < default.b.c_name (TEXT)
@@ -43,12 +72,10 @@ SELECTION(6)
=> target list: default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4), default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)
=> out schema: {(11) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4), default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
=> in schema: {(11) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4), default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
- SCAN(1) on default.customer as b
- => target list: default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)
+ SCAN(10) on eb_0000000000000_0000_000002
=> out schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
=> in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
- SCAN(0) on default.region as a
- => target list: default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)
+ SCAN(9) on eb_0000000000000_0000_000001
=> out schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
=> in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)}
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Hash.plan
index 7b9c695..bfc571d 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Hash.plan
@@ -31,20 +31,51 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000005
+4: eb_0000000000000_0000_000006
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_custkey (INT4), num=32)
+
+SCAN(1) on default.orders as b
+ => target list: default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)
+ => out schema: {(3) default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), 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_000005 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_custkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.b
- 1: type=Broadcast, tables=default.c
+ 0: type=Broadcast, tables=default.c
SELECTION(5)
=> Search Cond: default.c.n_nationkey (INT4) IS NOT NULL
@@ -62,14 +93,12 @@ SELECTION(5)
=> target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)
=> out schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)}
=> in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)}
- SCAN(1) on default.orders as b
- => target list: default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)
+ SCAN(12) on eb_0000000000000_0000_000002
=> out schema: {(3) default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), 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.customer as a
- => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)
+ => in schema: {(3) default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)}
+ SCAN(11) 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: {(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: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Sort.plan
index 7b9c695..bfc571d 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testMultipleBroadcastDataFileWithZeroLength2.Sort.plan
@@ -31,20 +31,51 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000005
+4: eb_0000000000000_0000_000006
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_custkey (INT4), num=32)
+
+SCAN(1) on default.orders as b
+ => target list: default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)
+ => out schema: {(3) default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), 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_000005 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_custkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.b
- 1: type=Broadcast, tables=default.c
+ 0: type=Broadcast, tables=default.c
SELECTION(5)
=> Search Cond: default.c.n_nationkey (INT4) IS NOT NULL
@@ -62,14 +93,12 @@ SELECTION(5)
=> target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)
=> out schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)}
=> in schema: {(6) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4), default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)}
- SCAN(1) on default.orders as b
- => target list: default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)
+ SCAN(12) on eb_0000000000000_0000_000002
=> out schema: {(3) default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), 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.customer as a
- => target list: default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)
+ => in schema: {(3) default.b.o_custkey (INT4), default.b.o_orderdate (TEXT), default.b.o_orderkey (INT4)}
+ SCAN(11) 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: {(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: {(3) default.a.c_custkey (INT4), default.a.c_name (TEXT), default.a.c_nationkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Hash.plan
index 66c22df..c421b35 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Hash.plan
@@ -23,23 +23,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (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)}
+
+=======================================================
+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)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
SORT(10)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -48,14 +77,12 @@ SORT(10)
=> 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)
+ SCAN(9) on eb_0000000000000_0000_000002
=> 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)
+ => 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: {(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)}
+ => in schema: {(1) default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Sort.plan
index 66c22df..c421b35 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testRightOuterJoin1.Sort.plan
@@ -23,23 +23,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (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)}
+
+=======================================================
+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)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
SORT(10)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -48,14 +77,12 @@ SORT(10)
=> 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)
+ SCAN(9) on eb_0000000000000_0000_000002
=> 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)
+ => 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: {(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)}
+ => in schema: {(1) default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
[09/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan
index 7935c18..e7a3684 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan
@@ -36,24 +36,99 @@ 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_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000006
+7: 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.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
- 1: type=Broadcast, tables=default.part
+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.part.p_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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_orderkey (INT4), num=32)
+
+JOIN(11)(INNER)
+ => 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.a.o_orderkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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)
SORT(18)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.a.o_custkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last)
@@ -62,31 +137,12 @@ SORT(18)
=> 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: {(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)
+ SCAN(17) on eb_0000000000000_0000_000004
=> 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_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)
+ => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)}
+ SCAN(16) on eb_0000000000000_0000_000003
=> 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)}
+ => in schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan
index 7935c18..e7a3684 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan
@@ -36,24 +36,99 @@ 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_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000006
+7: 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.o_custkey (INT4), default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
- 1: type=Broadcast, tables=default.part
+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.part.p_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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_orderkey (INT4), num=32)
+
+JOIN(11)(INNER)
+ => 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.a.o_orderkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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)
SORT(18)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.a.o_custkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last)
@@ -62,31 +137,12 @@ SORT(18)
=> 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: {(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)
+ SCAN(17) on eb_0000000000000_0000_000004
=> 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_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)
+ => in schema: {(2) default.a.o_custkey (INT4), default.a.o_orderkey (INT4)}
+ SCAN(16) on eb_0000000000000_0000_000003
=> 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)}
+ => in schema: {(2) default.lineitem.l_orderkey (INT4), default.part.p_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan
index 20fe5ee..cbd07fc 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan
@@ -73,25 +73,157 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012)
|-eb_0000000000000_0000_000012
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
- |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000008
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
-4: eb_0000000000000_0000_000012
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000006
+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
+11: eb_0000000000000_0000_000011
+12: eb_0000000000000_0000_000012
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000008 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_partkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.part
+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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.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.b.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: {(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(21)(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(27) on eb_0000000000000_0000_000002
+ => out schema: {(1) default.part.p_partkey (INT4)}
+ => in schema: {(1) default.part.p_partkey (INT4)}
+ SCAN(26) 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_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[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)
+ => 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_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[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)
+ => 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)}
+
+=======================================================
+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)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32)
+
+JOIN(23)(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(29) on eb_0000000000000_0000_000004
+ => out schema: {(1) default.c.o_orderkey (INT4)}
+ => in schema: {(1) default.c.o_orderkey (INT4)}
+ SCAN(28) 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_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32)
GROUP_BY(32)(l_orderkey)
=> exprs: (avg(default.e.l_quantity (FLOAT8)))
@@ -111,30 +243,51 @@ GROUP_BY(32)(l_orderkey)
=> 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)
+ SCAN(31) on eb_0000000000000_0000_000007
=> 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)
+ => in schema: {(1) default.part.p_partkey (INT4)}
+ SCAN(30) 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: {(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)}
+ => 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] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.f.l_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(33) 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] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_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)
-[Enforcers]
- 0: type=Broadcast, tables=default.a
- 1: type=Broadcast, tables=default.c
- 2: type=Broadcast, tables=default.part
-
GROUP_BY(36)()
=> exprs: (sum(default.b.l_quantity (FLOAT8)))
=> target list: ?sum_12 (FLOAT8)
@@ -147,53 +300,12 @@ GROUP_BY(36)()
=> 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)
+ SCAN(35) on eb_0000000000000_0000_000009
=> 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(33) 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(23)(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)
+ => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)}
+ SCAN(34) on eb_0000000000000_0000_000005
=> 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_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(21)(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)}
+ => in schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000011 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan
index 20fe5ee..cbd07fc 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan
@@ -73,25 +73,157 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012)
|-eb_0000000000000_0000_000012
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
- |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000008
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
-4: eb_0000000000000_0000_000012
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000006
+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
+11: eb_0000000000000_0000_000011
+12: eb_0000000000000_0000_000012
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000008 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.l_partkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.part
+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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.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.b.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: {(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(21)(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(27) on eb_0000000000000_0000_000002
+ => out schema: {(1) default.part.p_partkey (INT4)}
+ => in schema: {(1) default.part.p_partkey (INT4)}
+ SCAN(26) 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_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[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)
+ => 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_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[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)
+ => 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)}
+
+=======================================================
+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)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 10 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32)
+
+JOIN(23)(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(29) on eb_0000000000000_0000_000004
+ => out schema: {(1) default.c.o_orderkey (INT4)}
+ => in schema: {(1) default.c.o_orderkey (INT4)}
+ SCAN(28) 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_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32)
GROUP_BY(32)(l_orderkey)
=> exprs: (avg(default.e.l_quantity (FLOAT8)))
@@ -111,30 +243,51 @@ GROUP_BY(32)(l_orderkey)
=> 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)
+ SCAN(31) on eb_0000000000000_0000_000007
=> 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)
+ => in schema: {(1) default.part.p_partkey (INT4)}
+ SCAN(30) 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: {(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)}
+ => 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] 8 => 9 (type=HASH_SHUFFLE, key=default.e.l_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=HASH_SHUFFLE, key=default.f.l_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(33) 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] 8 => 10 (type=HASH_SHUFFLE, key=default.e.l_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)
-[Enforcers]
- 0: type=Broadcast, tables=default.a
- 1: type=Broadcast, tables=default.c
- 2: type=Broadcast, tables=default.part
-
GROUP_BY(36)()
=> exprs: (sum(default.b.l_quantity (FLOAT8)))
=> target list: ?sum_12 (FLOAT8)
@@ -147,53 +300,12 @@ GROUP_BY(36)()
=> 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)
+ SCAN(35) on eb_0000000000000_0000_000009
=> 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(33) 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(23)(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)
+ => in schema: {(2) default.f.avg_quantity (FLOAT8), default.f.l_orderkey (INT4)}
+ SCAN(34) on eb_0000000000000_0000_000005
=> 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_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(21)(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)}
+ => in schema: {(2) default.b.l_quantity (FLOAT8), default.c.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000011 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash.plan
index f19b5cd..7848e95 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash.plan
@@ -5,10 +5,6 @@ JOIN(11)(INNER)
=> target list: default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
- SCAN(5) on default.supplier as s
- => target list: default.s.s_nationkey (INT4)
- => out schema: {(1) default.s.s_nationkey (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
@@ -27,6 +23,10 @@ JOIN(11)(INNER)
=> target list: default.n.n_comment (TEXT), default.n.n_name (TEXT) as name, default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ SCAN(5) on default.supplier as s
+ => target list: default.s.s_nationkey (INT4)
+ => out schema: {(1) default.s.s_nationkey (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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -46,18 +46,14 @@ Block Id: eb_0000000000000_0000_000005 [ROOT]
=======================================================
[Enforcers]
- 0: type=Broadcast, tables=default.r
- 1: type=Broadcast, tables=default.s
+ 0: type=Broadcast, tables=default.n
+ 1: type=Broadcast, tables=default.r
JOIN(11)(INNER)
=> Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
=> target list: default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
- SCAN(5) on default.supplier as s
- => target list: default.s.s_nationkey (INT4)
- => out schema: {(1) default.s.s_nationkey (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
=> out schema: {(4) default.t.n_nationkey (INT4), default.t.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)}
@@ -80,6 +76,10 @@ JOIN(11)(INNER)
=> target list: default.n.n_comment (TEXT), default.n.n_name (TEXT) as name, default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ SCAN(5) on default.supplier as s
+ => target list: default.s.s_nationkey (INT4)
+ => out schema: {(1) default.s.s_nationkey (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_000006 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash_NoBroadcast.plan
index 59f15f1..2f7da99 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Hash_NoBroadcast.plan
@@ -5,10 +5,6 @@ JOIN(11)(INNER)
=> target list: default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
- SCAN(5) on default.supplier as s
- => target list: default.s.s_nationkey (INT4)
- => out schema: {(1) default.s.s_nationkey (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
@@ -27,6 +23,10 @@ JOIN(11)(INNER)
=> target list: default.n.n_comment (TEXT), default.n.n_name (TEXT) as name, default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ SCAN(5) on default.supplier as s
+ => target list: default.s.s_nationkey (INT4)
+ => out schema: {(1) default.s.s_nationkey (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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -35,26 +35,26 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
|-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
-------------------------------------------------------------------------------
=======================================================
-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.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> filter: default.n.n_name (TEXT) = MOROCCO
@@ -63,11 +63,11 @@ SCAN(0) on default.nation as n
=> 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_000002 [LEAF]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -75,15 +75,15 @@ SCAN(1) on default.region as r
=> 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]
+Block Id: eb_0000000000000_0000_000004 [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] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
@@ -98,19 +98,19 @@ TABLE_SUBQUERY(4) as default.t
=> target list: default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(5) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4), name (TEXT)}
- SCAN(14) on eb_0000000000000_0000_000002
+ SCAN(14) on eb_0000000000000_0000_000003
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
- SCAN(13) on eb_0000000000000_0000_000001
+ SCAN(13) on eb_0000000000000_0000_000002
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), 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.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
SCAN(5) on default.supplier as s
=> target list: default.s.s_nationkey (INT4)
@@ -122,8 +122,8 @@ Block Id: eb_0000000000000_0000_000005 [ROOT]
=======================================================
[Incoming]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
JOIN(11)(INNER)
=> Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
@@ -131,11 +131,11 @@ JOIN(11)(INNER)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
SCAN(16) on eb_0000000000000_0000_000004
- => out schema: {(1) default.s.s_nationkey (INT4)}
- => in schema: {(1) default.s.s_nationkey (INT4)}
- SCAN(15) on eb_0000000000000_0000_000003
=> out schema: {(4) default.t.n_nationkey (INT4), default.t.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)}
=> in schema: {(4) default.t.n_nationkey (INT4), default.t.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)}
+ SCAN(15) on eb_0000000000000_0000_000001
+ => out schema: {(1) default.s.s_nationkey (INT4)}
+ => in schema: {(1) default.s.s_nationkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort.plan
index f19b5cd..7848e95 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort.plan
@@ -5,10 +5,6 @@ JOIN(11)(INNER)
=> target list: default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
- SCAN(5) on default.supplier as s
- => target list: default.s.s_nationkey (INT4)
- => out schema: {(1) default.s.s_nationkey (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
@@ -27,6 +23,10 @@ JOIN(11)(INNER)
=> target list: default.n.n_comment (TEXT), default.n.n_name (TEXT) as name, default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ SCAN(5) on default.supplier as s
+ => target list: default.s.s_nationkey (INT4)
+ => out schema: {(1) default.s.s_nationkey (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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -46,18 +46,14 @@ Block Id: eb_0000000000000_0000_000005 [ROOT]
=======================================================
[Enforcers]
- 0: type=Broadcast, tables=default.r
- 1: type=Broadcast, tables=default.s
+ 0: type=Broadcast, tables=default.n
+ 1: type=Broadcast, tables=default.r
JOIN(11)(INNER)
=> Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
=> target list: default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
- SCAN(5) on default.supplier as s
- => target list: default.s.s_nationkey (INT4)
- => out schema: {(1) default.s.s_nationkey (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
=> out schema: {(4) default.t.n_nationkey (INT4), default.t.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)}
@@ -80,6 +76,10 @@ JOIN(11)(INNER)
=> target list: default.n.n_comment (TEXT), default.n.n_name (TEXT) as name, default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ SCAN(5) on default.supplier as s
+ => target list: default.s.s_nationkey (INT4)
+ => out schema: {(1) default.s.s_nationkey (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_000006 [TERMINAL]
[08/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort_NoBroadcast.plan
index 59f15f1..2f7da99 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual2.Sort_NoBroadcast.plan
@@ -5,10 +5,6 @@ JOIN(11)(INNER)
=> target list: default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
- SCAN(5) on default.supplier as s
- => target list: default.s.s_nationkey (INT4)
- => out schema: {(1) default.s.s_nationkey (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
@@ -27,6 +23,10 @@ JOIN(11)(INNER)
=> target list: default.n.n_comment (TEXT), default.n.n_name (TEXT) as name, default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_name (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4)}
+ SCAN(5) on default.supplier as s
+ => target list: default.s.s_nationkey (INT4)
+ => out schema: {(1) default.s.s_nationkey (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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -35,26 +35,26 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
|-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
-------------------------------------------------------------------------------
=======================================================
-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.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> filter: default.n.n_name (TEXT) = MOROCCO
@@ -63,11 +63,11 @@ SCAN(0) on default.nation as n
=> 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_000002 [LEAF]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -75,15 +75,15 @@ SCAN(1) on default.region as r
=> 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]
+Block Id: eb_0000000000000_0000_000004 [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] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (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.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)
@@ -98,19 +98,19 @@ TABLE_SUBQUERY(4) as default.t
=> target list: default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(5) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), default.r.r_regionkey (INT4), name (TEXT)}
- SCAN(14) on eb_0000000000000_0000_000002
+ SCAN(14) on eb_0000000000000_0000_000003
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
- SCAN(13) on eb_0000000000000_0000_000001
+ SCAN(13) on eb_0000000000000_0000_000002
=> out schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), name (TEXT)}
=> in schema: {(4) default.n.n_comment (TEXT), default.n.n_nationkey (INT4), default.n.n_regionkey (INT4), 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.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
SCAN(5) on default.supplier as s
=> target list: default.s.s_nationkey (INT4)
@@ -122,8 +122,8 @@ Block Id: eb_0000000000000_0000_000005 [ROOT]
=======================================================
[Incoming]
-[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
JOIN(11)(INNER)
=> Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
@@ -131,11 +131,11 @@ JOIN(11)(INNER)
=> out schema: {(4) default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
=> in schema: {(5) default.s.s_nationkey (INT4), default.t.n_comment (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4), default.t.name (TEXT)}
SCAN(16) on eb_0000000000000_0000_000004
- => out schema: {(1) default.s.s_nationkey (INT4)}
- => in schema: {(1) default.s.s_nationkey (INT4)}
- SCAN(15) on eb_0000000000000_0000_000003
=> out schema: {(4) default.t.n_nationkey (INT4), default.t.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)}
=> in schema: {(4) default.t.n_nationkey (INT4), default.t.name (TEXT), default.t.n_regionkey (INT4), default.t.n_comment (TEXT)}
+ SCAN(15) on eb_0000000000000_0000_000001
+ => out schema: {(1) default.s.s_nationkey (INT4)}
+ => in schema: {(1) default.s.s_nationkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan
index dc04a93..65fb491 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan
@@ -1,41 +1,41 @@
explain
-------------------------------
JOIN(14)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
- JOIN(12)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(13)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
+ JOIN(12)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -43,27 +43,33 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
+1: eb_0000000000000_0000_000005
+2: eb_0000000000000_0000_000006
+3: eb_0000000000000_0000_000007
+4: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000007 [ROOT]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.ps
+ 0: type=Broadcast, tables=default.n
1: type=Broadcast, tables=default.r
- 2: type=Broadcast, tables=default.s
-JOIN(14)(INNER)
+JOIN(13)(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)}
+ => target list: 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: {(5) 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: {(6) 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)}
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)}
@@ -86,19 +92,42 @@ 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)}
+ 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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [ROOT]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
+
+JOIN(14)(INNER)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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.ps.ps_suppkey (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: {(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(20) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan
index 7d89fa2..ef458aa 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan
@@ -1,41 +1,41 @@
explain
-------------------------------
JOIN(14)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
- JOIN(12)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(13)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
+ JOIN(12)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -44,54 +44,30 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
|-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000001
-2: eb_0000000000000_0000_000002
+1: eb_0000000000000_0000_000002
+2: eb_0000000000000_0000_000003
3: eb_0000000000000_0000_000004
-4: eb_0000000000000_0000_000005
-5: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000001
+5: eb_0000000000000_0000_000005
6: eb_0000000000000_0000_000006
7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000001 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
-
-=======================================================
Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000004 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
@@ -100,11 +76,11 @@ SCAN(0) on default.nation as n
=> 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]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -112,38 +88,15 @@ SCAN(1) on default.region as r
=> 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.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.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]
+Block Id: eb_0000000000000_0000_000004 [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)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (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)
+[q_0000000000000_0000] 4 => 5 (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)
@@ -158,32 +111,79 @@ 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(19) on eb_0000000000000_0000_000005
+ SCAN(17) on eb_0000000000000_0000_000003
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
- SCAN(18) on eb_0000000000000_0000_000004
+ SCAN(16) on eb_0000000000000_0000_000002
=> 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_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
+JOIN(13)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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(19) on eb_0000000000000_0000_000004
+ => 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(18) on eb_0000000000000_0000_000001
+ => 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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000007 [ROOT]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
JOIN(14)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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: {(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)}
+ => 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(20) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan
index dc04a93..65fb491 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan
@@ -1,41 +1,41 @@
explain
-------------------------------
JOIN(14)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
- JOIN(12)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(13)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
+ JOIN(12)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -43,27 +43,33 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000006
+ |-eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
+1: eb_0000000000000_0000_000005
+2: eb_0000000000000_0000_000006
+3: eb_0000000000000_0000_000007
+4: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000007 [ROOT]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.ps
+ 0: type=Broadcast, tables=default.n
1: type=Broadcast, tables=default.r
- 2: type=Broadcast, tables=default.s
-JOIN(14)(INNER)
+JOIN(13)(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)}
+ => target list: 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: {(5) 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: {(6) 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)}
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)}
@@ -86,19 +92,42 @@ 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)}
+ 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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000007 [ROOT]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
+
+JOIN(14)(INNER)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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.ps.ps_suppkey (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: {(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(20) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan
index 7d89fa2..ef458aa 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan
@@ -1,41 +1,41 @@
explain
-------------------------------
JOIN(14)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
- 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)}
- => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
- JOIN(12)(INNER)
- => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
- => 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(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(0) on default.nation as n
- => filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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(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)}
+ JOIN(13)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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)}
+ 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)}
+ => in schema: {(4) default.t.n_comment (TEXT), default.t.n_name (TEXT), default.t.n_nationkey (INT4), default.t.n_regionkey (INT4)}
+ JOIN(12)(INNER)
+ => Join Cond: default.n.n_regionkey (INT4) = default.r.r_regionkey (INT4)
=> 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)}
+ => 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(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(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(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
-------------------------------
-------------------------------------------------------------------------------
@@ -44,54 +44,30 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
|-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000001
-2: eb_0000000000000_0000_000002
+1: eb_0000000000000_0000_000002
+2: eb_0000000000000_0000_000003
3: eb_0000000000000_0000_000004
-4: eb_0000000000000_0000_000005
-5: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000001
+5: eb_0000000000000_0000_000005
6: eb_0000000000000_0000_000006
7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000001 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
-
-=======================================================
Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.s.s_suppkey (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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000004 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
SCAN(0) on default.nation as n
=> filter: default.n.n_name (TEXT) IN (ARGENTINA, ETHIOPIA, MOROCCO)
@@ -100,11 +76,11 @@ SCAN(0) on default.nation as n
=> 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]
+Block Id: eb_0000000000000_0000_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.r.r_regionkey (INT4), num=32)
SCAN(1) on default.region as r
=> target list: default.r.r_regionkey (INT4)
@@ -112,38 +88,15 @@ SCAN(1) on default.region as r
=> 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.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.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]
+Block Id: eb_0000000000000_0000_000004 [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)
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.n.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (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)
+[q_0000000000000_0000] 4 => 5 (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)
@@ -158,32 +111,79 @@ 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(19) on eb_0000000000000_0000_000005
+ SCAN(17) on eb_0000000000000_0000_000003
=> out schema: {(1) default.r.r_regionkey (INT4)}
=> in schema: {(1) default.r.r_regionkey (INT4)}
- SCAN(18) on eb_0000000000000_0000_000004
+ SCAN(16) on eb_0000000000000_0000_000002
=> 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_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.s.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t.n_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+
+JOIN(13)(INNER)
+ => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => target list: 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: {(5) 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: {(6) 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(19) on eb_0000000000000_0000_000004
+ => 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(18) on eb_0000000000000_0000_000001
+ => 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_000006 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000007 [ROOT]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.s.s_suppkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.ps.ps_suppkey (INT4), num=32)
JOIN(14)(INNER)
- => Join Cond: default.s.s_nationkey (INT4) = default.t.n_nationkey (INT4)
+ => Join Cond: default.s.s_suppkey (INT4) = default.ps.ps_suppkey (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)}
+ => in schema: {(7) default.ps.ps_availqty (INT4), default.ps.ps_suppkey (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: {(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)}
+ => 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(20) on eb_0000000000000_0000_000005
+ => out schema: {(5) 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: {(5) 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)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.result
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.result b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.result
index da3c1e4..c9c76fa 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.result
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.result
@@ -1,5 +1,5 @@
n_nationkey,n_name,n_regionkey,n_comment,ps_availqty,s_suppkey
-------------------------------
1,ARGENTINA,1,al foxes promise slyly according to the regular accounts. bold requests alon,8895,3
-5,ETHIOPIA,0,ven packages wake quickly. regu,3325,2
15,MOROCCO,0,rns. blithely bold courts among the closely regular packages use furiously bold platelets?,4651,4
+5,ETHIOPIA,0,ven packages wake quickly. regu,3325,2
[15/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan
index d0bceda..fd7cac1 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
- SCAN(3) 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)}
- SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
- JOIN(14)(INNER)
=> Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), 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(2) 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)}
+ JOIN(14)(INNER)
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ 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)}
JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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(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)}
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
+ SCAN(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
+ SCAN(3) 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
-------------------------------
-------------------------------------------------------------------------------
@@ -79,137 +79,137 @@ 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(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(3) 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.nation.n_nationkey (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(4) on default.nation
+ => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)}
=======================================================
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.nation.n_nationkey (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.customer.c_custkey (INT4), num=32)
JOIN(13)(INNER)
- => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
- => 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)}
+ => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4)}
SCAN(19) on eb_0000000000000_0000_000002
- => 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)}
+ => 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(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)}
+ => 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_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.orders.o_custkey (INT4), num=32)
-SCAN(2) 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(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_000006 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.l_partkey (INT4), num=32)
-SCAN(4) on default.nation
- => 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_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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)}
=======================================================
Block Id: eb_0000000000000_0000_000007 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
-SCAN(3) 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)}
+SCAN(2) 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_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.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
JOIN(14)(INNER)
- => Join Cond: default.lineitem.l_partkey (INT4) = default.part.p_partkey (INT4)
- => target list: default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(5) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT), default.part.p_partkey (INT4)}
+ => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(4) default.customer.c_custkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
SCAN(21) 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.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
+ => in schema: {(2) default.orders.o_custkey (INT4), default.orders.o_orderkey (INT4)}
SCAN(20) on eb_0000000000000_0000_000003
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)}
- => in schema: {(3) default.lineitem.l_orderkey (INT4), default.lineitem.l_partkey (INT4), default.orders.o_custkey (INT4)}
+ => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => in schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.customer.c_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.lineitem.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] 8 => 9 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
JOIN(15)(INNER)
- => Join Cond: default.customer.c_nationkey (INT4) = default.nation.n_nationkey (INT4)
- => target list: default.customer.c_custkey (INT4), default.nation.n_name (TEXT)
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(4) default.customer.c_custkey (INT4), default.customer.c_nationkey (INT4), default.nation.n_name (TEXT), default.nation.n_nationkey (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(23) on eb_0000000000000_0000_000007
- => 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)}
+ => 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(22) on eb_0000000000000_0000_000006
- => 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)}
+ => 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_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_custkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT), num=32)
@@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
SORT(26)
=> Sort Keys: default.lineitem.l_orderkey (INT4) (asc, nulls last),default.part.p_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.orders.o_custkey (INT4) = default.customer.c_custkey (INT4)
+ => Join Cond: default.lineitem.l_orderkey (INT4) = default.orders.o_orderkey (INT4)
=> target list: default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)
=> out schema: {(3) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.part.p_name (TEXT)}
- => in schema: {(5) default.customer.c_custkey (INT4), default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => in schema: {(4) default.lineitem.l_orderkey (INT4), default.nation.n_name (TEXT), default.orders.o_orderkey (INT4), default.part.p_name (TEXT)}
SCAN(25) on eb_0000000000000_0000_000008
- => out schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
- => in schema: {(2) default.customer.c_custkey (INT4), default.nation.n_name (TEXT)}
+ => 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)}
SCAN(24) on eb_0000000000000_0000_000005
- => out schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
- => in schema: {(3) default.lineitem.l_orderkey (INT4), default.orders.o_custkey (INT4), default.part.p_name (TEXT)}
+ => out schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
+ => in schema: {(2) default.nation.n_name (TEXT), default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan
index 0120a2b..412c05b 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -32,21 +32,21 @@ Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
[Enforcers]
- 0: type=Broadcast, tables=default.a
+ 0: type=Broadcast, tables=default.b
JOIN(5)(INNER)
=> Join Cond: default.b.n_nationkey (INT4) = default.a.c_nationkey (INT4)
=> 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(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)}
+ 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_000004 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan
index afc6b06..f5ee800 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -36,32 +36,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 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_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 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)
-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_000003 [ROOT]
=======================================================
[Incoming]
-[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)
+[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)
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: {(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)}
+ 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)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan
index 0120a2b..412c05b 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -32,21 +32,21 @@ Block Id: eb_0000000000000_0000_000003 [ROOT]
=======================================================
[Enforcers]
- 0: type=Broadcast, tables=default.a
+ 0: type=Broadcast, tables=default.b
JOIN(5)(INNER)
=> Join Cond: default.b.n_nationkey (INT4) = default.a.c_nationkey (INT4)
=> 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(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)}
+ 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_000004 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan
index afc6b06..f5ee800 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -36,32 +36,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.b.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 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_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 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)
-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_000003 [ROOT]
=======================================================
[Incoming]
-[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)
+[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)
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: {(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)}
+ 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)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan
index 466c0be..41125d7 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
JOIN(15)(INNER)
=> 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)}
+ => 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)}
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(14)(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(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(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(13)(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)}
+ => 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(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_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)}
+ 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,7 +66,7 @@ Block Id: eb_0000000000000_0000_000009 [LEAF]
[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)
[Enforcers]
- 0: type=Broadcast, tables=default.partsupp
+ 0: type=Broadcast, tables=default.nation
1: type=Broadcast, tables=default.region
2: type=Broadcast, tables=joins.part_
3: type=Broadcast, tables=joins.supplier_
@@ -74,45 +74,45 @@ Block Id: eb_0000000000000_0000_000009 [LEAF]
SORT(26)
=> Sort Keys: joins.supplier_.s_acctbal (FLOAT8) (asc, nulls last),joins.supplier_.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),joins.part_.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: joins.supplier_.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: joins.supplier_.s_suppkey (INT4) = default.partsupp.ps_suppkey (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.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)}
+ => 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)}
JOIN(15)(INNER)
=> 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)}
+ => 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)}
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(14)(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(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(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(13)(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)}
+ => 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(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_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)}
+ 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]
[05/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Hash.plan
index 45923dc..6660a4d 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Hash.plan
@@ -38,21 +38,90 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
+1: eb_0000000000000_0000_000002
+2: eb_0000000000000_0000_000003
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000001
+5: eb_0000000000000_0000_000007
+6: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
+SCAN(1) on default.customer as b
+ => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
+ => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ => in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_custkey (INT4), num=32)
+
+SCAN(3) on default.orders as c
+ => target list: default.c.o_custkey (INT4)
+ => out schema: {(1) default.c.o_custkey (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_000004 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_custkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
+JOIN(9)(LEFT_OUTER)
+ => Join Cond: default.b.c_custkey (INT4) = default.c.o_custkey (INT4)
+ => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
+ => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ => in schema: {(4) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.c.o_custkey (INT4)}
+ SCAN(14) on eb_0000000000000_0000_000003
+ => out schema: {(1) default.c.o_custkey (INT4)}
+ => in schema: {(1) default.c.o_custkey (INT4)}
+ SCAN(13) on eb_0000000000000_0000_000002
+ => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ => in schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.a.l_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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000007 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.b
- 1: type=Broadcast, tables=default.c
- 2: type=Broadcast, tables=default.d
+ 0: type=Broadcast, tables=default.d
JOIN(11)(LEFT_OUTER)
=> Join Cond: default.a.l_orderkey (INT4) = default.d.n_nationkey (INT4)
@@ -68,23 +137,12 @@ JOIN(11)(LEFT_OUTER)
=> target list: default.a.l_orderkey (INT4), default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
=> out schema: {(4) default.a.l_orderkey (INT4), default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
=> in schema: {(4) default.a.l_orderkey (INT4), default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
- JOIN(9)(LEFT_OUTER)
- => Join Cond: default.b.c_custkey (INT4) = default.c.o_custkey (INT4)
- => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
+ SCAN(16) on eb_0000000000000_0000_000004
=> out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
- => in schema: {(4) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.c.o_custkey (INT4)}
- SCAN(3) on default.orders as c
- => target list: default.c.o_custkey (INT4)
- => out schema: {(1) default.c.o_custkey (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.customer as b
- => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
- => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
- => in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
- SCAN(0) on default.lineitem as a
- => target list: default.a.l_orderkey (INT4)
+ => in schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ SCAN(15) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.a.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Sort.plan
index 45923dc..6660a4d 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin2.Sort.plan
@@ -38,21 +38,90 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000007
-2: eb_0000000000000_0000_000008
+1: eb_0000000000000_0000_000002
+2: eb_0000000000000_0000_000003
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000001
+5: eb_0000000000000_0000_000007
+6: eb_0000000000000_0000_000008
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
+SCAN(1) on default.customer as b
+ => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
+ => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ => in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_custkey (INT4), num=32)
+
+SCAN(3) on default.orders as c
+ => target list: default.c.o_custkey (INT4)
+ => out schema: {(1) default.c.o_custkey (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_000004 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_custkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
+JOIN(9)(LEFT_OUTER)
+ => Join Cond: default.b.c_custkey (INT4) = default.c.o_custkey (INT4)
+ => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
+ => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ => in schema: {(4) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.c.o_custkey (INT4)}
+ SCAN(14) on eb_0000000000000_0000_000003
+ => out schema: {(1) default.c.o_custkey (INT4)}
+ => in schema: {(1) default.c.o_custkey (INT4)}
+ SCAN(13) on eb_0000000000000_0000_000002
+ => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ => in schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.a.l_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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000007 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.b.c_custkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.b
- 1: type=Broadcast, tables=default.c
- 2: type=Broadcast, tables=default.d
+ 0: type=Broadcast, tables=default.d
JOIN(11)(LEFT_OUTER)
=> Join Cond: default.a.l_orderkey (INT4) = default.d.n_nationkey (INT4)
@@ -68,23 +137,12 @@ JOIN(11)(LEFT_OUTER)
=> target list: default.a.l_orderkey (INT4), default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
=> out schema: {(4) default.a.l_orderkey (INT4), default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
=> in schema: {(4) default.a.l_orderkey (INT4), default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
- JOIN(9)(LEFT_OUTER)
- => Join Cond: default.b.c_custkey (INT4) = default.c.o_custkey (INT4)
- => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
+ SCAN(16) on eb_0000000000000_0000_000004
=> out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
- => in schema: {(4) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.c.o_custkey (INT4)}
- SCAN(3) on default.orders as c
- => target list: default.c.o_custkey (INT4)
- => out schema: {(1) default.c.o_custkey (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.customer as b
- => target list: default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)
- => out schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
- => in schema: {(8) default.b.c_acctbal (FLOAT8), default.b.c_address (TEXT), default.b.c_comment (TEXT), default.b.c_custkey (INT4), default.b.c_mktsegment (TEXT), default.b.c_name (TEXT), default.b.c_nationkey (INT4), default.b.c_phone (TEXT)}
- SCAN(0) on default.lineitem as a
- => target list: default.a.l_orderkey (INT4)
+ => in schema: {(3) default.b.c_custkey (INT4), default.b.c_name (TEXT), default.b.c_nationkey (INT4)}
+ SCAN(15) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.a.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan
index 637657b..e392c04 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan
@@ -10,41 +10,41 @@ JOIN(17)(LEFT_OUTER)
=> out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
=> in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
SCAN(5) on default.orders as d
=> target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
=> 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(14)(LEFT_OUTER)
+ => Join Cond: default.b.l_orderkey (INT4) = default.c.o_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), 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: {(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.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)}
+ => 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)}
@@ -56,73 +56,189 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000012)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000012
|-eb_0000000000000_0000_000011
+ |-eb_0000000000000_0000_000010
+ |-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000008
+7: eb_0000000000000_0000_000009
+8: eb_0000000000000_0000_000010
+9: eb_0000000000000_0000_000011
+10: eb_0000000000000_0000_000012
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000011 [ROOT]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_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)}
+
=======================================================
+Block Id: eb_0000000000000_0000_000003 [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)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 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
+ => 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]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (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)}
+
+=======================================================
+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)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 9 (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)
+ => 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(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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.b
- 1: type=Broadcast, tables=default.c
- 2: type=Broadcast, tables=default.d
- 3: type=Broadcast, tables=default.e
- 4: type=Broadcast, tables=default.f
+ 0: type=Broadcast, tables=default.e
+
+JOIN(15)(LEFT_OUTER)
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
+ SCAN(5) on default.orders as d
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
+ => 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 11 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+
+JOIN(16)(LEFT_OUTER)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ SCAN(26) on eb_0000000000000_0000_000008
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ SCAN(25) on eb_0000000000000_0000_000005
+ => 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: {(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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000010 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.f.p_partkey (INT4), num=32)
+
+SCAN(9) on default.part as f
+ => target list: default.f.p_name (TEXT), default.f.p_partkey (INT4)
+ => out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
+ => in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000011 [ROOT]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 9 => 11 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 10 => 11 (type=HASH_SHUFFLE, key=default.f.p_partkey (INT4), num=32)
JOIN(17)(LEFT_OUTER)
=> Join Cond: default.f.p_partkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.e.n_name (TEXT), default.f.p_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.e.n_name (TEXT), default.f.p_name (TEXT)}
=> in schema: {(10) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4)}
- SCAN(9) on default.part as f
- => target list: default.f.p_name (TEXT), default.f.p_partkey (INT4)
+ SCAN(28) on eb_0000000000000_0000_000010
=> out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
- => in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
- JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => in schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
+ SCAN(27) on eb_0000000000000_0000_000009
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
- JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- SCAN(5) on default.orders as d
- => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => 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.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: {(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.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)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000012 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan
index 04d0ae6..a21d2b0 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan
@@ -10,41 +10,41 @@ JOIN(17)(LEFT_OUTER)
=> out schema: {(2) default.f.p_name (TEXT), default.f.p_partkey (INT4)}
=> in schema: {(9) default.f.p_brand (TEXT), default.f.p_comment (TEXT), default.f.p_container (TEXT), default.f.p_mfgr (TEXT), default.f.p_name (TEXT), default.f.p_partkey (INT4), default.f.p_retailprice (FLOAT8), default.f.p_size (INT4), default.f.p_type (TEXT)}
JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
SCAN(5) on default.orders as d
=> target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
=> 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(14)(LEFT_OUTER)
+ => Join Cond: default.b.l_orderkey (INT4) = default.c.o_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), 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: {(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.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)}
+ => 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)}
@@ -59,23 +59,23 @@ 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_000003
- |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
|-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-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
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000006
+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
@@ -84,11 +84,23 @@ Order of Execution
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 3 (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_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32)
SCAN(1) on default.lineitem as b
=> target list: default.b.l_orderkey (INT4)
@@ -96,11 +108,34 @@ SCAN(1) on default.lineitem as b
=> 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_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000003 [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)
+
+[Outgoing]
+[q_0000000000000_0000] 3 => 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
+ => 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]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.o_orderkey (INT4), num=32)
SCAN(3) on default.orders as c
=> target list: default.c.o_orderdate (TEXT), default.c.o_orderkey (INT4)
@@ -108,132 +143,97 @@ SCAN(3) on default.orders as c
=> 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_000004 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [LEAF]
=======================================================
-[Incoming]
-[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] 4 => 5 (type=HASH_SHUFFLE, key=default.b.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
-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(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(5) on default.orders as d
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
+ => 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)}
=======================================================
-Block Id: eb_0000000000000_0000_000001 [LEAF]
+Block Id: eb_0000000000000_0000_000007 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.e.n_nationkey (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(7) on default.nation as e
+ => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[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] 5 => 7 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
JOIN(14)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.b.l_orderkey (INT4)
+ => Join Cond: default.b.l_orderkey (INT4) = default.c.o_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: {(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(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_000006 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
-
-SCAN(5) on default.orders as d
- => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => 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)}
+ => 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)}
=======================================================
-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.a.c_custkey (INT4), num=32)
-[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.e.n_nationkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
JOIN(15)(LEFT_OUTER)
- => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- SCAN(24) on eb_0000000000000_0000_000006
+ => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => target list: default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(4) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000007
+ => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ SCAN(23) on eb_0000000000000_0000_000006
=> out schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
=> in schema: {(2) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- SCAN(23) on eb_0000000000000_0000_000005
- => 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: {(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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000008 [LEAF]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.n_nationkey (INT4), num=32)
-
-SCAN(7) on default.nation as e
- => target list: default.e.n_name (TEXT), default.e.n_nationkey (INT4)
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(4) default.e.n_comment (TEXT), default.e.n_name (TEXT), default.e.n_nationkey (INT4), default.e.n_regionkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 7 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.e.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.a.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 11 (type=HASH_SHUFFLE, key=default.d.o_orderkey (INT4), num=32)
JOIN(16)(LEFT_OUTER)
- => Join Cond: default.d.o_orderkey (INT4) = default.e.n_nationkey (INT4)
+ => Join Cond: default.a.c_custkey (INT4) = default.d.o_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), default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)
=> out schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
- => in schema: {(9) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
+ => in schema: {(8) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
SCAN(26) on eb_0000000000000_0000_000008
- => out schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- => in schema: {(2) default.e.n_name (TEXT), default.e.n_nationkey (INT4)}
- SCAN(25) on eb_0000000000000_0000_000007
- => out schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
- => in schema: {(7) 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.d.o_orderdate (TEXT), default.d.o_orderkey (INT4)}
+ => out schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ => in schema: {(3) default.d.o_orderdate (TEXT), default.d.o_orderkey (INT4), default.e.n_name (TEXT)}
+ SCAN(25) on eb_0000000000000_0000_000005
+ => 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: {(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)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [LEAF]
[11/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan
index 3c8a90f..cd38b64 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(15)(INNER)
- => 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(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: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(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)}
+ JOIN(14)(INNER)
+ => 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(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(13)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) on default.part
=> target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
=> out schema: {(2) default.part.p_mfgr (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)}
- JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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
-------------------------------
-------------------------------------------------------------------------------
@@ -50,69 +50,127 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000011
|-eb_0000000000000_0000_000010
|-eb_0000000000000_0000_000009
+ |-eb_0000000000000_0000_000008
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000009
-2: eb_0000000000000_0000_000010
-3: eb_0000000000000_0000_000011
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000008
+5: eb_0000000000000_0000_000009
+6: eb_0000000000000_0000_000010
+7: eb_0000000000000_0000_000011
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000009 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(0) on default.part
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
+ => out schema: {(2) default.part.p_mfgr (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.partsupp.ps_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 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+
+JOIN(13)(INNER)
+ => Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
+ => out schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)}
+ => in schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (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_000008 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Enforcers]
- 0: type=Broadcast, tables=default.part
- 1: type=Broadcast, tables=default.partsupp
- 2: type=Broadcast, tables=default.region
- 3: type=Broadcast, tables=default.supplier
+ 0: type=Broadcast, tables=default.nation
+ 1: type=Broadcast, tables=default.region
+
+JOIN(15)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(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)}
+ JOIN(14)(INNER)
+ => 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(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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
SORT(26)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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)}
- JOIN(15)(INNER)
- => 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(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: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
- SCAN(0) on default.part
- => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
- => out schema: {(2) default.part.p_mfgr (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)}
- JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ => in schema: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(25) on eb_0000000000000_0000_000008
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan
index 441b576..3721404 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan
@@ -3,45 +3,45 @@ explain
SORT(6)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
JOIN(15)(INNER)
- => 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(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: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(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)}
+ JOIN(14)(INNER)
+ => 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(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(13)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
SCAN(0) on default.part
=> target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
=> out schema: {(2) default.part.p_mfgr (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)}
- JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(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)}
+ 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,21 +53,21 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000011)
|-eb_0000000000000_0000_000008
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
- |-eb_0000000000000_0000_000005
- |-eb_0000000000000_0000_000004
- |-eb_0000000000000_0000_000003
- |-eb_0000000000000_0000_000002
- |-eb_0000000000000_0000_000001
+ |-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000004
+ |-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-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
-5: eb_0000000000000_0000_000006
-6: eb_0000000000000_0000_000007
-7: eb_0000000000000_0000_000005
+3: eb_0000000000000_0000_000004
+4: eb_0000000000000_0000_000005
+5: eb_0000000000000_0000_000003
+6: eb_0000000000000_0000_000006
+7: eb_0000000000000_0000_000007
8: eb_0000000000000_0000_000008
9: eb_0000000000000_0000_000009
10: eb_0000000000000_0000_000010
@@ -79,7 +79,7 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
SCAN(2) on default.partsupp
=> target list: default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)
@@ -91,42 +91,7 @@ Block Id: eb_0000000000000_0000_000002 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.supplier.s_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)}
-
-=======================================================
-Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
-=======================================================
-
-[Incoming]
-[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)
-
-JOIN(13)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => 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(19) on eb_0000000000000_0000_000002
- => 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]
-=======================================================
-
-[Outgoing]
-[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
SCAN(0) on default.part
=> target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)
@@ -134,11 +99,11 @@ SCAN(0) 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_000006 [LEAF]
+Block Id: eb_0000000000000_0000_000004 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (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)
@@ -146,11 +111,11 @@ SCAN(3) on default.nation
=> 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]
+Block Id: eb_0000000000000_0000_000005 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
SCAN(4) on default.region
=> target list: default.region.r_regionkey (INT4)
@@ -158,58 +123,93 @@ SCAN(4) on default.region
=> 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]
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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=default.part.p_partkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_partkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
-JOIN(14)(INNER)
+JOIN(13)(INNER)
=> Join Cond: default.part.p_partkey (INT4) = default.partsupp.ps_partkey (INT4)
- => target list: default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.part.p_mfgr (TEXT), default.part.p_partkey (INT4), 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)}
- SCAN(21) on eb_0000000000000_0000_000004
+ => target list: default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(4) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ SCAN(19) on eb_0000000000000_0000_000002
=> out schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)}
=> in schema: {(2) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4)}
- SCAN(20) on eb_0000000000000_0000_000003
- => 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: {(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)}
+ 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_000008 [INTERMEDIATE]
+Block Id: eb_0000000000000_0000_000006 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[q_0000000000000_0000] 4 => 6 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32)
+[q_0000000000000_0000] 5 => 6 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32)
[Outgoing]
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
-JOIN(15)(INNER)
+JOIN(14)(INNER)
=> 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
+ SCAN(21) on eb_0000000000000_0000_000005
=> out schema: {(1) default.region.r_regionkey (INT4)}
=> in schema: {(1) default.region.r_regionkey (INT4)}
- SCAN(22) on eb_0000000000000_0000_000006
+ SCAN(20) on eb_0000000000000_0000_000004
=> 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_000007 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000008 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 6 => 8 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 7 => 8 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
+
+JOIN(15)(INNER)
+ => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => target list: default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)
+ => out schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(9) default.nation.n_name (TEXT), default.nation.n_nationkey (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(23) on eb_0000000000000_0000_000007
+ => 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(22) on eb_0000000000000_0000_000006
+ => 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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
=======================================================
[Incoming]
-[q_0000000000000_0000] 5 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
-[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 3 => 9 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
+[q_0000000000000_0000] 8 => 9 (type=HASH_SHUFFLE, key=default.supplier.s_suppkey (INT4), num=32)
[Outgoing]
[q_0000000000000_0000] 9 => 10 (type=RANGE_SHUFFLE, key=default.nation.n_name (TEXT), default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
@@ -217,16 +217,16 @@ Block Id: eb_0000000000000_0000_000009 [INTERMEDIATE]
SORT(26)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.nation.n_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
JOIN(16)(INNER)
- => Join Cond: default.supplier.s_nationkey (INT4) = default.nation.n_nationkey (INT4)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
=> target list: default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)
=> out schema: {(8) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT)}
- => in schema: {(10) default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.part.p_mfgr (TEXT), default.part.p_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: {(10) default.nation.n_name (TEXT), default.part.p_mfgr (TEXT), default.part.p_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_phone (TEXT), default.supplier.s_suppkey (INT4)}
SCAN(25) on eb_0000000000000_0000_000008
- => 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: {(8) default.part.p_mfgr (TEXT), default.part.p_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: {(8) default.part.p_mfgr (TEXT), default.part.p_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.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ => in schema: {(7) default.nation.n_name (TEXT), default.supplier.s_acctbal (FLOAT8), default.supplier.s_address (TEXT), default.supplier.s_comment (TEXT), default.supplier.s_name (TEXT), default.supplier.s_phone (TEXT), default.supplier.s_suppkey (INT4)}
+ SCAN(24) on eb_0000000000000_0000_000003
+ => out schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
+ => in schema: {(3) default.part.p_mfgr (TEXT), default.part.p_partkey (INT4), default.partsupp.ps_suppkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000010 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan
index 882929c..a5ceb2a 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan
@@ -32,24 +32,91 @@ 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_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000006
+7: 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.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.partsupp
- 1: type=Broadcast, tables=default.supplier
+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.supplier.s_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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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)
+
+JOIN(9)(INNER)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
+ => 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(13) on eb_0000000000000_0000_000002
+ => 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]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(0) 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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=default.part.p_partkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
SORT(16)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
@@ -58,23 +125,12 @@ SORT(16)
=> target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(3) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
=> in schema: {(4) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- SCAN(0) on default.part
- => target list: default.part.p_partkey (INT4)
+ SCAN(15) on eb_0000000000000_0000_000004
=> 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)}
- JOIN(9)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
+ => in schema: {(1) default.part.p_partkey (INT4)}
+ SCAN(14) on eb_0000000000000_0000_000003
=> 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(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)}
+ => in schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan
index 882929c..a5ceb2a 100644
--- a/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan
@@ -32,24 +32,91 @@ 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_000003
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
+6: eb_0000000000000_0000_000006
+7: 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.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.partsupp.ps_suppkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.partsupp
- 1: type=Broadcast, tables=default.supplier
+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.supplier.s_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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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)
+
+JOIN(9)(INNER)
+ => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
+ => 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(13) on eb_0000000000000_0000_000002
+ => 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]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.part.p_partkey (INT4), num=32)
+
+SCAN(0) 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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[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=default.part.p_partkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT), num=32)
SORT(16)
=> Sort Keys: default.supplier.s_acctbal (FLOAT8) (asc, nulls last),default.supplier.s_name (TEXT) (asc, nulls last),default.part.p_partkey (INT4) (asc, nulls last)
@@ -58,23 +125,12 @@ SORT(16)
=> target list: default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
=> out schema: {(3) default.part.p_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
=> in schema: {(4) default.part.p_partkey (INT4), default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
- SCAN(0) on default.part
- => target list: default.part.p_partkey (INT4)
+ SCAN(15) on eb_0000000000000_0000_000004
=> 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)}
- JOIN(9)(INNER)
- => Join Cond: default.supplier.s_suppkey (INT4) = default.partsupp.ps_suppkey (INT4)
- => target list: default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)
+ => in schema: {(1) default.part.p_partkey (INT4)}
+ SCAN(14) on eb_0000000000000_0000_000003
=> 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(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)}
+ => in schema: {(3) default.partsupp.ps_partkey (INT4), default.supplier.s_acctbal (FLOAT8), default.supplier.s_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
[06/17] tajo git commit: TAJO-2007: By default,
Optimizer should use the table volume in TableStat.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan
index 63ac101..c0c3fc1 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan
@@ -32,24 +32,64 @@ 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_000003
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
-3: eb_0000000000000_0000_000007
+1: eb_0000000000000_0000_000003
+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_000003 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.region.r_name (TEXT), s1 (TEXT), num=32)
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
[Enforcers]
0: type=Broadcast, tables=default.region
- 1: type=Broadcast, tables=default.supplier
+
+JOIN(8)(INNER)
+ => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4)
+ => 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(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_000004 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+SCAN(3) on default.supplier
+ => target list: default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
+ => out schema: {(2) default.supplier.s_name (TEXT), default.supplier.s_nationkey (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_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+[Outgoing]
+[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.region.r_name (TEXT), s1 (TEXT), num=32)
SORT(15)
=> Sort Keys: default.region.r_name (TEXT) (asc, nulls last),s1 (TEXT) (asc, nulls last)
@@ -58,23 +98,12 @@ SORT(15)
=> target list: CASE WHEN default.supplier.s_name (TEXT) IS NULL THEN N/O ELSE default.supplier.s_name (TEXT) END as s1, default.region.r_name (TEXT)
=> out schema: {(2) default.region.r_name (TEXT), s1 (TEXT)}
=> in schema: {(4) default.nation.n_nationkey (INT4), default.region.r_name (TEXT), default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
- SCAN(3) on default.supplier
- => target list: default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)
+ SCAN(14) on eb_0000000000000_0000_000004
=> out schema: {(2) default.supplier.s_name (TEXT), default.supplier.s_nationkey (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(8)(INNER)
- => Join Cond: default.nation.n_regionkey (INT4) = default.region.r_regionkey (INT4)
- => target list: default.nation.n_nationkey (INT4), default.region.r_name (TEXT)
+ => in schema: {(2) default.supplier.s_name (TEXT), default.supplier.s_nationkey (INT4)}
+ SCAN(13) on eb_0000000000000_0000_000003
=> 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(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)}
+ => in schema: {(2) default.nation.n_nationkey (INT4), default.region.r_name (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Hash.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Hash.plan
index 894197b..48b756d 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Hash.plan
@@ -36,24 +36,55 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007)
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+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] 1 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+
+SCAN(1) on default.nation
+ => target list: default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)
+ => out schema: {(4) default.nation.n_comment (TEXT), 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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+SCAN(2) 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_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+[Outgoing]
[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.region.r_name (TEXT), s1 (TEXT), num=32)
[Enforcers]
0: type=Broadcast, tables=default.region
- 1: type=Broadcast, tables=default.supplier
SORT(17)
=> Sort Keys: default.region.r_name (TEXT) (asc, nulls last),s1 (TEXT) (asc, nulls last)
@@ -79,12 +110,10 @@ SORT(17)
=> target list: default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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)
=> out schema: {(11) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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)}
=> in schema: {(11) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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.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)
+ SCAN(14) on eb_0000000000000_0000_000002
=> 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(1) on default.nation
- => target list: default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)
+ SCAN(13) on eb_0000000000000_0000_000001
=> out schema: {(4) default.nation.n_comment (TEXT), 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)}
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Sort.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Sort.plan
index 894197b..48b756d 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen2.Sort.plan
@@ -36,24 +36,55 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007)
|-eb_0000000000000_0000_000007
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-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_000002
+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] 1 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+
+SCAN(1) on default.nation
+ => target list: default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)
+ => out schema: {(4) default.nation.n_comment (TEXT), 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_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+SCAN(2) 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_000005 [INTERMEDIATE]
+=======================================================
+
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.nation.n_nationkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.supplier.s_nationkey (INT4), num=32)
+
+[Outgoing]
[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.region.r_name (TEXT), s1 (TEXT), num=32)
[Enforcers]
0: type=Broadcast, tables=default.region
- 1: type=Broadcast, tables=default.supplier
SORT(17)
=> Sort Keys: default.region.r_name (TEXT) (asc, nulls last),s1 (TEXT) (asc, nulls last)
@@ -79,12 +110,10 @@ SORT(17)
=> target list: default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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)
=> out schema: {(11) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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)}
=> in schema: {(11) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (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.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)
+ SCAN(14) on eb_0000000000000_0000_000002
=> 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(1) on default.nation
- => target list: default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)
+ SCAN(13) on eb_0000000000000_0000_000001
=> out schema: {(4) default.nation.n_comment (TEXT), 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)}
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan
index ceb96f9..2f2ca89 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan
@@ -30,20 +30,51 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000005
+4: eb_0000000000000_0000_000006
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.l_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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000005 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_orderkey (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.a.l_orderkey (INT4) = default.c.c_custkey (INT4)
@@ -60,14 +91,12 @@ 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(1) on default.orders as b
- => target list: default.b.o_orderkey (INT4)
+ SCAN(12) on eb_0000000000000_0000_000002
=> 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)
+ => 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: {(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)}
+ => in schema: {(1) default.a.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan
index ceb96f9..2f2ca89 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan
@@ -30,20 +30,51 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000005
+4: eb_0000000000000_0000_000006
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.l_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)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_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)}
+
+=======================================================
Block Id: eb_0000000000000_0000_000005 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.l_orderkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.b.o_orderkey (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.a.l_orderkey (INT4) = default.c.c_custkey (INT4)
@@ -60,14 +91,12 @@ 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(1) on default.orders as b
- => target list: default.b.o_orderkey (INT4)
+ SCAN(12) on eb_0000000000000_0000_000002
=> 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)
+ => 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: {(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)}
+ => in schema: {(1) default.a.l_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000006 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Hash.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Hash.plan
index 2c990f8..0e93c56 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Hash.plan
@@ -33,20 +33,59 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000005
+4: eb_0000000000000_0000_000006
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.c.c_custkey (INT4), num=32)
+
+SCAN(0) on default.customer as c
+ => target list: default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)
+ => out schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
+ => in schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
+
+TABLE_SUBQUERY(3) as default.n
+ => Targets: default.n.n_nationkey (INT4)
+ => out schema: {(1) default.n.n_nationkey (INT4)}
+ => in schema: {(1) default.n.n_nationkey (INT4)}
+ PROJECTION(2)
+ => Targets: default.nation.n_nationkey (INT4)
+ => out schema: {(1) default.nation.n_nationkey (INT4)}
+ => in schema: {(1) default.nation.n_nationkey (INT4)}
+ SCAN(1) on default.nation
+ => target list: default.nation.n_nationkey (INT4)
+ => out schema: {(1) default.nation.n_nationkey (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_000005 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.c.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.c
- 1: type=Broadcast, tables=default.r
+ 0: type=Broadcast, tables=default.r
JOIN(10)(INNER)
=> Join Cond: default.r.r_regionkey (INT4) = default.c.c_custkey (INT4)
@@ -62,20 +101,10 @@ JOIN(10)(INNER)
=> target list: default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT), default.n.n_nationkey (INT4)
=> out schema: {(9) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT), default.n.n_nationkey (INT4)}
=> in schema: {(9) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT), default.n.n_nationkey (INT4)}
- TABLE_SUBQUERY(3) as default.n
- => Targets: default.n.n_nationkey (INT4)
+ SCAN(13) on eb_0000000000000_0000_000002
=> out schema: {(1) default.n.n_nationkey (INT4)}
- => in schema: {(1) default.n.n_nationkey (INT4)}
- PROJECTION(2)
- => Targets: default.nation.n_nationkey (INT4)
- => out schema: {(1) default.nation.n_nationkey (INT4)}
- => in schema: {(1) default.nation.n_nationkey (INT4)}
- SCAN(1) on default.nation
- => target list: default.nation.n_nationkey (INT4)
- => out schema: {(1) default.nation.n_nationkey (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.customer as c
- => target list: default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)
+ => in schema: {(1) default.n.n_nationkey (INT4)}
+ SCAN(12) on eb_0000000000000_0000_000001
=> out schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
=> in schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Sort.plan b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Sort.plan
index 2c990f8..0e93c56 100644
--- a/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestMultipleJoinTypes/testJoinWithMultipleJoinTypes.Sort.plan
@@ -33,20 +33,59 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000006
|-eb_0000000000000_0000_000005
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000005
-2: eb_0000000000000_0000_000006
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000005
+4: eb_0000000000000_0000_000006
-------------------------------------------------------------------------------
=======================================================
+Block Id: eb_0000000000000_0000_000001 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.c.c_custkey (INT4), num=32)
+
+SCAN(0) on default.customer as c
+ => target list: default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)
+ => out schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
+ => in schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
+
+=======================================================
+Block Id: eb_0000000000000_0000_000002 [LEAF]
+=======================================================
+
+[Outgoing]
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
+
+TABLE_SUBQUERY(3) as default.n
+ => Targets: default.n.n_nationkey (INT4)
+ => out schema: {(1) default.n.n_nationkey (INT4)}
+ => in schema: {(1) default.n.n_nationkey (INT4)}
+ PROJECTION(2)
+ => Targets: default.nation.n_nationkey (INT4)
+ => out schema: {(1) default.nation.n_nationkey (INT4)}
+ => in schema: {(1) default.nation.n_nationkey (INT4)}
+ SCAN(1) on default.nation
+ => target list: default.nation.n_nationkey (INT4)
+ => out schema: {(1) default.nation.n_nationkey (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_000005 [ROOT]
=======================================================
+[Incoming]
+[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.c.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 2 => 5 (type=HASH_SHUFFLE, key=default.n.n_nationkey (INT4), num=32)
+
[Enforcers]
- 0: type=Broadcast, tables=default.c
- 1: type=Broadcast, tables=default.r
+ 0: type=Broadcast, tables=default.r
JOIN(10)(INNER)
=> Join Cond: default.r.r_regionkey (INT4) = default.c.c_custkey (INT4)
@@ -62,20 +101,10 @@ JOIN(10)(INNER)
=> target list: default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT), default.n.n_nationkey (INT4)
=> out schema: {(9) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT), default.n.n_nationkey (INT4)}
=> in schema: {(9) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT), default.n.n_nationkey (INT4)}
- TABLE_SUBQUERY(3) as default.n
- => Targets: default.n.n_nationkey (INT4)
+ SCAN(13) on eb_0000000000000_0000_000002
=> out schema: {(1) default.n.n_nationkey (INT4)}
- => in schema: {(1) default.n.n_nationkey (INT4)}
- PROJECTION(2)
- => Targets: default.nation.n_nationkey (INT4)
- => out schema: {(1) default.nation.n_nationkey (INT4)}
- => in schema: {(1) default.nation.n_nationkey (INT4)}
- SCAN(1) on default.nation
- => target list: default.nation.n_nationkey (INT4)
- => out schema: {(1) default.nation.n_nationkey (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.customer as c
- => target list: default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)
+ => in schema: {(1) default.n.n_nationkey (INT4)}
+ SCAN(12) on eb_0000000000000_0000_000001
=> out schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
=> in schema: {(8) default.c.c_acctbal (FLOAT8), default.c.c_address (TEXT), default.c.c_comment (TEXT), default.c.c_custkey (INT4), default.c.c_mktsegment (TEXT), default.c.c_name (TEXT), default.c.c_nationkey (INT4), default.c.c_phone (TEXT)}
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan
index 8c98e69..62c8cbb 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 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_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.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_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[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)
[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.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)}
+ SCAN(8) on eb_0000000000000_0000_000001
+ => out schema: {(1) default.orders.o_orderkey (INT4)}
+ => in schema: {(1) default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan
index 8c98e69..62c8cbb 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 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_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.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_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[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)
[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.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)}
+ SCAN(8) on eb_0000000000000_0000_000001
+ => out schema: {(1) default.orders.o_orderkey (INT4)}
+ => in schema: {(1) default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan
index 8c98e69..62c8cbb 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 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_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.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_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[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)
[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.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)}
+ SCAN(8) on eb_0000000000000_0000_000001
+ => out schema: {(1) default.orders.o_orderkey (INT4)}
+ => in schema: {(1) default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan
index 8c98e69..62c8cbb 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan
+++ b/tajo-core-tests/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(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)}
+ 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)}
explain
-------------------------------
-------------------------------------------------------------------------------
@@ -40,32 +40,32 @@ Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 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_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.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_000003 [INTERMEDIATE]
=======================================================
[Incoming]
-[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)
+[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)
[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.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)}
+ SCAN(8) on eb_0000000000000_0000_000001
+ => out schema: {(1) default.orders.o_orderkey (INT4)}
+ => in schema: {(1) default.orders.o_orderkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Hash.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Hash.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Hash.plan
index 0c6e74c..68050ca 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Hash.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Hash.plan
@@ -23,23 +23,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(10)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -48,14 +77,12 @@ SORT(10)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
=> out schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(9) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(8) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]
http://git-wip-us.apache.org/repos/asf/tajo/blob/c577102e/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Sort.plan
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Sort.plan b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Sort.plan
index 0c6e74c..68050ca 100644
--- a/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Sort.plan
+++ b/tajo-core-tests/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin1.Sort.plan
@@ -23,23 +23,52 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005)
|-eb_0000000000000_0000_000005
|-eb_0000000000000_0000_000004
|-eb_0000000000000_0000_000003
+ |-eb_0000000000000_0000_000002
+ |-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
-1: eb_0000000000000_0000_000003
-2: eb_0000000000000_0000_000004
-3: eb_0000000000000_0000_000005
+1: eb_0000000000000_0000_000001
+2: eb_0000000000000_0000_000002
+3: eb_0000000000000_0000_000003
+4: eb_0000000000000_0000_000004
+5: eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
=======================================================
-Block Id: eb_0000000000000_0000_000003 [LEAF]
+Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
-[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.orders.o_orderkey (INT4), num=32)
+[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32)
-[Enforcers]
- 0: type=Broadcast, tables=default.orders
+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.orders.o_orderkey (INT4), num=32)
+
+SCAN(1) on default.orders
+ => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ => out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ => 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.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)
SORT(10)
=> Sort Keys: default.customer.c_custkey (INT4) (asc, nulls last),default.orders.o_orderkey (INT4) (asc, nulls last)
@@ -48,14 +77,12 @@ SORT(10)
=> target list: default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
=> out schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
=> in schema: {(4) default.customer.c_custkey (INT4), default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- SCAN(1) on default.orders
- => target list: default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)
+ SCAN(9) on eb_0000000000000_0000_000002
=> out schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
- => 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.customer
- => target list: default.customer.c_custkey (INT4)
+ => in schema: {(3) default.orders.o_orderdate (TEXT), default.orders.o_orderkey (INT4), default.orders.o_orderstatus (TEXT)}
+ SCAN(8) on eb_0000000000000_0000_000001
=> 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)}
+ => in schema: {(1) default.customer.c_custkey (INT4)}
=======================================================
Block Id: eb_0000000000000_0000_000004 [ROOT]