http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan new file mode 100644 index 0000000..a71bd54 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan @@ -0,0 +1,105 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.customer.c_custkey (INT4) = default.empty_orders.o_orderkey (INT4) + => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) + +SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + +======================================================= +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(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_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) + +SORT(11) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.customer.c_custkey (INT4) = default.empty_orders.o_orderkey (INT4) + => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + SCAN(10) on eb_0000000000000_0000_000002 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +=======================================================
http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan new file mode 100644 index 0000000..d83cdb8 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan @@ -0,0 +1,79 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.customer.c_custkey (INT4) = default.empty_orders.o_orderkey (INT4) + => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +explain +------------------------------- +------------------------------------------------------------------------------- +Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005) +------------------------------------------------------------------------------- +|-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000003 +------------------------------------------------------------------------------- +Order of Execution +------------------------------------------------------------------------------- +1: eb_0000000000000_0000_000003 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000005 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000003 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.empty_orders + 1: type=Broadcast, tables=default.customer + +SORT(9) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.customer.c_custkey (INT4) = default.empty_orders.o_orderkey (INT4) + => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + SCAN(10) on eb_0000000000000_0000_000003 + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan new file mode 100644 index 0000000..a71bd54 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan @@ -0,0 +1,105 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.customer.c_custkey (INT4) = default.empty_orders.o_orderkey (INT4) + => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + SCAN(0) on default.customer + => target list: default.customer.c_custkey (INT4) + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(8) default.customer.c_acctbal (FLOAT8), default.customer.c_address (TEXT), default.customer.c_comment (TEXT), default.customer.c_custkey (INT4), default.customer.c_mktsegment (TEXT), default.customer.c_name (TEXT), default.customer.c_nationkey (INT4), default.customer.c_phone (TEXT)} + SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) + +SCAN(1) on default.empty_orders + => target list: default.empty_orders.o_orderkey (INT4) + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(9) default.empty_orders.o_clerk (TEXT), default.empty_orders.o_comment (TEXT), default.empty_orders.o_custkey (INT4), default.empty_orders.o_orderdate (TEXT), default.empty_orders.o_orderkey (INT4), default.empty_orders.o_orderpriority (TEXT), default.empty_orders.o_orderstatus (TEXT), default.empty_orders.o_shippriority (INT4), default.empty_orders.o_totalprice (FLOAT8)} + +======================================================= +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(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_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.empty_orders.o_orderkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.customer.c_custkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) + +SORT(11) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.customer.c_custkey (INT4) = default.empty_orders.o_orderkey (INT4) + => target list: default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4) + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + SCAN(10) on eb_0000000000000_0000_000002 + => out schema: {(1) default.customer.c_custkey (INT4)} + => in schema: {(1) default.customer.c_custkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(1) default.empty_orders.o_orderkey (INT4)} + => in schema: {(1) default.empty_orders.o_orderkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.customer.c_custkey (INT4) (asc),default.empty_orders.o_orderkey (INT4) (asc) + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + => in schema: {(2) default.customer.c_custkey (INT4), default.empty_orders.o_orderkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.result b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.result new file mode 100644 index 0000000..e27c711 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.result @@ -0,0 +1,2 @@ +c_custkey,o_orderkey +------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan new file mode 100644 index 0000000..f39025c --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan @@ -0,0 +1,64 @@ +explain +------------------------------- +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004) +------------------------------------------------------------------------------- +|-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000003 +------------------------------------------------------------------------------- +Order of Execution +------------------------------------------------------------------------------- +1: eb_0000000000000_0000_000003 +2: eb_0000000000000_0000_000004 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Enforcers] + 0: type=Broadcast, tables=default.a + 1: type=Broadcast, tables=default.b + +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan new file mode 100644 index 0000000..6cf1244 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan @@ -0,0 +1,90 @@ +explain +------------------------------- +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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) + +SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) + +SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) + +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(9) on eb_0000000000000_0000_000002 + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan new file mode 100644 index 0000000..f39025c --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan @@ -0,0 +1,64 @@ +explain +------------------------------- +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004) +------------------------------------------------------------------------------- +|-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000003 +------------------------------------------------------------------------------- +Order of Execution +------------------------------------------------------------------------------- +1: eb_0000000000000_0000_000003 +2: eb_0000000000000_0000_000004 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Enforcers] + 0: type=Broadcast, tables=default.a + 1: type=Broadcast, tables=default.b + +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan new file mode 100644 index 0000000..6cf1244 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan @@ -0,0 +1,90 @@ +explain +------------------------------- +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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) + +SCAN(0) on default.region as a + => target list: default.a.r_name (TEXT) as a_name, default.a.r_name (TEXT) + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(3) default.a.r_comment (TEXT), default.a.r_name (TEXT), default.a.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) + +SCAN(1) on default.region as b + => target list: default.b.r_name (TEXT) as b_name, default.b.r_name (TEXT) + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(3) default.b.r_comment (TEXT), default.b.r_name (TEXT), default.b.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE) + +PROJECTION(3) + => Targets: a_name (TEXT), b_name (TEXT) + => out schema: {(2) a_name (TEXT), b_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SELECTION(2) + => Search Cond: default.a.r_name (TEXT) < default.b.r_name (TEXT) + JOIN(6)(CROSS) + => target list: a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT) + => out schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(4) a_name (TEXT), b_name (TEXT), default.a.r_name (TEXT), default.b.r_name (TEXT)} + SCAN(9) on eb_0000000000000_0000_000002 + => out schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + => in schema: {(2) b_name (TEXT), default.b.r_name (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + => in schema: {(2) a_name (TEXT), default.a.r_name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.result b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.result new file mode 100644 index 0000000..8ddc197 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.result @@ -0,0 +1,12 @@ +a_name,b_name +------------------------------- +AFRICA,AMERICA +AFRICA,ASIA +AFRICA,EUROPE +AFRICA,MIDDLE EAST +AMERICA,ASIA +AMERICA,EUROPE +AMERICA,MIDDLE EAST +ASIA,EUROPE +ASIA,MIDDLE EAST +EUROPE,MIDDLE EAST http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash.plan new file mode 100644 index 0000000..2478dda --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash.plan @@ -0,0 +1,54 @@ +explain +------------------------------- +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004) +------------------------------------------------------------------------------- +|-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000003 +------------------------------------------------------------------------------- +Order of Execution +------------------------------------------------------------------------------- +1: eb_0000000000000_0000_000003 +2: eb_0000000000000_0000_000004 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Enforcers] + 0: type=Broadcast, tables=default.t4 + 1: type=Broadcast, tables=default.t3 + +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash_NoBroadcast.plan new file mode 100644 index 0000000..890f935 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Hash_NoBroadcast.plan @@ -0,0 +1,80 @@ +explain +------------------------------- +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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=?int8_1 (INT8), num=32) + +SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT8), num=32) + +SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?int8_1 (INT8), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT8), num=32) + +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(8) on eb_0000000000000_0000_000002 + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(7) on eb_0000000000000_0000_000001 + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort.plan new file mode 100644 index 0000000..2478dda --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort.plan @@ -0,0 +1,54 @@ +explain +------------------------------- +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +Execution Block Graph (TERMINAL - eb_0000000000000_0000_000004) +------------------------------------------------------------------------------- +|-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000003 +------------------------------------------------------------------------------- +Order of Execution +------------------------------------------------------------------------------- +1: eb_0000000000000_0000_000003 +2: eb_0000000000000_0000_000004 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Enforcers] + 0: type=Broadcast, tables=default.t4 + 1: type=Broadcast, tables=default.t3 + +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort_NoBroadcast.plan new file mode 100644 index 0000000..890f935 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.Sort_NoBroadcast.plan @@ -0,0 +1,80 @@ +explain +------------------------------- +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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=?int8_1 (INT8), num=32) + +SCAN(1) on default.table21 as t4 + => target list: CAST (default.t4.id (INT4) AS INT8) as ?int8_1, default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(4) default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT8), num=32) + +SCAN(0) on default.table20 as t3 + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT) + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=?int8_1 (INT8), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t3.id (INT8), num=32) + +JOIN(5)(INNER) + => Join Cond: default.t3.id (INT8) = ?int8_1 (INT8) + => target list: default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT) + => out schema: {(8) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(9) ?int8_1 (INT8), default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + SCAN(8) on eb_0000000000000_0000_000002 + => out schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + => in schema: {(4) default.t3.id (INT8), default.t3.name (TEXT), default.t3.score (FLOAT4), default.t3.type (TEXT)} + SCAN(7) on eb_0000000000000_0000_000001 + => out schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + => in schema: {(5) ?int8_1 (INT8), default.t4.id (INT4), default.t4.name (TEXT), default.t4.score (FLOAT4), default.t4.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.result b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.result new file mode 100644 index 0000000..3626882 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testDifferentTypesJoinCondition.result @@ -0,0 +1,7 @@ +id,name,score,type,id,name,score,type +------------------------------- +1,ooo,1.1,a,1,ooo,1.1,a +2,ppp,2.3,b,2,ppp,2.3,b +3,qqq,3.4,c,3,qqq,3.4,c +4,rrr,4.5,d,4,rrr,4.5,d +5,xxx,5.6,e,5,xxx,5.6,e http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan new file mode 100644 index 0000000..c083fa1 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan @@ -0,0 +1,79 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005) +------------------------------------------------------------------------------- +|-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000003 +------------------------------------------------------------------------------- +Order of Execution +------------------------------------------------------------------------------- +1: eb_0000000000000_0000_000003 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000005 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000003 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.region + 1: type=Broadcast, tables=default.nation + +SORT(9) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + SCAN(10) on eb_0000000000000_0000_000003 + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan new file mode 100644 index 0000000..48ecb91 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan @@ -0,0 +1,105 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) + +SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) + +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +SORT(11) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(10) on eb_0000000000000_0000_000002 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan new file mode 100644 index 0000000..c083fa1 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan @@ -0,0 +1,79 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +Execution Block Graph (TERMINAL - eb_0000000000000_0000_000005) +------------------------------------------------------------------------------- +|-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000003 +------------------------------------------------------------------------------- +Order of Execution +------------------------------------------------------------------------------- +1: eb_0000000000000_0000_000003 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000005 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000003 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.region + 1: type=Broadcast, tables=default.nation + +SORT(9) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + SCAN(10) on eb_0000000000000_0000_000003 + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan new file mode 100644 index 0000000..48ecb91 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan @@ -0,0 +1,105 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) + +SCAN(0) on default.region + => target list: CASE WHEN default.region.r_regionkey (INT4) = 1 THEN one WHEN default.region.r_regionkey (INT4) = 2 THEN two WHEN default.region.r_regionkey (INT4) = 3 THEN three WHEN default.region.r_regionkey (INT4) = 4 THEN four ELSE zero END as cond, default.region.r_regionkey (INT4) + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(3) default.region.r_comment (TEXT), default.region.r_name (TEXT), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) + +SCAN(1) on default.nation + => target list: default.nation.n_regionkey (INT4) + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(4) default.nation.n_comment (TEXT), default.nation.n_name (TEXT), default.nation.n_nationkey (INT4), default.nation.n_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.region.r_regionkey (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.nation.n_regionkey (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +SORT(11) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + JOIN(7)(INNER) + => Join Cond: default.region.r_regionkey (INT4) = default.nation.n_regionkey (INT4) + => target list: cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4) + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + SCAN(10) on eb_0000000000000_0000_000002 + => out schema: {(1) default.nation.n_regionkey (INT4)} + => in schema: {(1) default.nation.n_regionkey (INT4)} + SCAN(9) on eb_0000000000000_0000_000001 + => out schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + => in schema: {(2) cond (TEXT), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.region.r_regionkey (INT4) (asc),default.nation.n_regionkey (INT4) (asc) + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + => in schema: {(3) cond (TEXT), default.nation.n_regionkey (INT4), default.region.r_regionkey (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.result b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.result new file mode 100644 index 0000000..0ac2083 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.result @@ -0,0 +1,27 @@ +r_regionkey,n_regionkey,cond +------------------------------- +0,0,zero +0,0,zero +0,0,zero +0,0,zero +0,0,zero +1,1,one +1,1,one +1,1,one +1,1,one +1,1,one +2,2,two +2,2,two +2,2,two +2,2,two +2,2,two +3,3,three +3,3,three +3,3,three +3,3,three +3,3,three +4,4,four +4,4,four +4,4,four +4,4,four +4,4,four
