http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort.plan new file mode 100644 index 0000000..ab1b487 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort.plan @@ -0,0 +1,98 @@ +explain +------------------------------- +JOIN(12)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(5) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + JOIN(11)(LEFT_OUTER) + => Join Cond: default.t4.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => filter: default.t3.id (INT4) = 2 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(10)(INNER) + => Join Cond: default.t1.id (INT4) = default.t4.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + SCAN(1) on default.jointable14 as t4 + => filter: default.t4.id (INT4) > 1 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.id (INT4) > 1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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.t1 + 1: type=Broadcast, tables=default.t4 + 2: type=Broadcast, tables=default.t3 + 3: type=Broadcast, tables=default.t2 + +JOIN(12)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(5) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + JOIN(11)(LEFT_OUTER) + => Join Cond: default.t4.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => filter: default.t3.id (INT4) = 2 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(10)(INNER) + => Join Cond: default.t1.id (INT4) = default.t4.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + SCAN(1) on default.jointable14 as t4 + => filter: default.t4.id (INT4) > 1 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.id (INT4) > 1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +=======================================================
http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort_NoBroadcast.plan new file mode 100644 index 0000000..f022519 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Sort_NoBroadcast.plan @@ -0,0 +1,182 @@ +explain +------------------------------- +JOIN(12)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(5) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + JOIN(11)(LEFT_OUTER) + => Join Cond: default.t4.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => filter: default.t3.id (INT4) = 2 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(10)(INNER) + => Join Cond: default.t1.id (INT4) = default.t4.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + SCAN(1) on default.jointable14 as t4 + => filter: default.t4.id (INT4) > 1 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.id (INT4) > 1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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 +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.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => filter: default.t1.id (INT4) > 1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) + +SCAN(1) on default.jointable14 as t4 + => filter: default.t4.id (INT4) > 1 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) + +JOIN(10)(INNER) + => Join Cond: default.t1.id (INT4) = default.t4.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(1) default.t4.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +SCAN(3) on default.jointable13 as t3 + => filter: default.t3.id (INT4) = 2 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +JOIN(11)(LEFT_OUTER) + => Join Cond: default.t4.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(17) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(16) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t4.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +SCAN(5) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000007 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +JOIN(12)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4) + => out schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(5) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4), default.t4.id (INT4)} + SCAN(19) on eb_0000000000000_0000_000006 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(18) on eb_0000000000000_0000_000005 + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t3.id (INT4), default.t4.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000008 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.result b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.result new file mode 100644 index 0000000..2f671cd --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.result @@ -0,0 +1,5 @@ +id,name,id,id,id +------------------------------- +2,table11-2,2,2,2 +3,table11-3,null,null,3 +4,table11-4,null,null,4 http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash.plan new file mode 100644 index 0000000..50c41c9 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash.plan @@ -0,0 +1,72 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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.t2 + 1: type=Broadcast, tables=default.t3 + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash_NoBroadcast.plan new file mode 100644 index 0000000..b2a14d0 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Hash_NoBroadcast.plan @@ -0,0 +1,128 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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 +6: eb_0000000000000_0000_000006 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(11) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(10) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort.plan new file mode 100644 index 0000000..50c41c9 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort.plan @@ -0,0 +1,72 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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.t2 + 1: type=Broadcast, tables=default.t3 + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort_NoBroadcast.plan new file mode 100644 index 0000000..b2a14d0 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.Sort_NoBroadcast.plan @@ -0,0 +1,128 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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 +6: eb_0000000000000_0000_000006 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) AND concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33 + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(11) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(10) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.result b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.result new file mode 100644 index 0000000..d57c273 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase3.1.result @@ -0,0 +1,7 @@ +id,name,id,id +------------------------------- +1,table11-1,1,null +2,table11-2,2,2 +3,table11-3,null,3 +4,table11-4,null,null +5,table11-5,null,null http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash.plan new file mode 100644 index 0000000..1e2809e --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash.plan @@ -0,0 +1,74 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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.t2 + 1: type=Broadcast, tables=default.t3 + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash_NoBroadcast.plan new file mode 100644 index 0000000..5b3b661 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Hash_NoBroadcast.plan @@ -0,0 +1,130 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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 +6: eb_0000000000000_0000_000006 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(11) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(10) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort.plan new file mode 100644 index 0000000..1e2809e --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort.plan @@ -0,0 +1,74 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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.t2 + 1: type=Broadcast, tables=default.t3 + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort_NoBroadcast.plan new file mode 100644 index 0000000..5b3b661 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.Sort_NoBroadcast.plan @@ -0,0 +1,130 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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 +6: eb_0000000000000_0000_000006 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +SCAN(1) on default.jointable12 as t2 + => filter: default.t2.id (INT4) > 1 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +JOIN(7)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(11) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(10) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.result b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.result new file mode 100644 index 0000000..f2d54a1 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase4.1.result @@ -0,0 +1,7 @@ +id,name,id,id +------------------------------- +1,table11-1,null,null +2,table11-2,2,2 +3,table11-3,null,3 +4,table11-4,null,null +5,table11-5,null,null http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash.plan new file mode 100644 index 0000000..88a955f --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash.plan @@ -0,0 +1,74 @@ +explain +------------------------------- +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.name (TEXT) > table11-1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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.t2 + 1: type=Broadcast, tables=default.t3 + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.name (TEXT) > table11-1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash_NoBroadcast.plan new file mode 100644 index 0000000..6b37e4f --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Hash_NoBroadcast.plan @@ -0,0 +1,130 @@ +explain +------------------------------- +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.name (TEXT) > table11-1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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_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 +6: eb_0000000000000_0000_000006 +------------------------------------------------------------------------------- + +======================================================= +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => filter: default.t1.name (TEXT) > table11-1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(12) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(11) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Sort.plan new file mode 100644 index 0000000..88a955f --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase5.1.Sort.plan @@ -0,0 +1,74 @@ +explain +------------------------------- +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.name (TEXT) > table11-1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +explain +------------------------------- +------------------------------------------------------------------------------- +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.t2 + 1: type=Broadcast, tables=default.t3 + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => filter: default.t1.name (TEXT) > table11-1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [TERMINAL] +=======================================================
