http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort.plan new file mode 100644 index 0000000..0f5e52f --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort.plan @@ -0,0 +1,105 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.a.id (INT4) (asc) + JOIN(6)(LEFT_OUTER) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) + => target list: default.a.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + => in schema: {(3) default.a.id (INT4), default.b.id (INT4), default.b.name (TEXT)} + SCAN(1) on default.jointable_large as b + => target list: default.b.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + SCAN(0) on default.jointable1 as a + => target list: default.a.id (INT4) + => out schema: {(1) default.a.id (INT4)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} +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.a.id (INT4), num=32) + +SCAN(0) on default.jointable1 as a + => target list: default.a.id (INT4) + => out schema: {(1) default.a.id (INT4)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +SCAN(1) on default.jointable_large as b + => target list: default.b.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.a.id (INT4), num=32) + +SORT(10) + => Sort Keys: default.a.id (INT4) (asc) + JOIN(6)(LEFT_OUTER) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) + => target list: default.a.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + => in schema: {(3) default.a.id (INT4), default.b.id (INT4), default.b.name (TEXT)} + SCAN(9) on eb_0000000000000_0000_000002 + => out schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.a.id (INT4)} + => in schema: {(1) default.a.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.a.id (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.a.id (INT4) (asc) + SCAN(11) on eb_0000000000000_0000_000003 + => out schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +=======================================================
http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort_NoBroadcast.plan new file mode 100644 index 0000000..0f5e52f --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.Sort_NoBroadcast.plan @@ -0,0 +1,105 @@ +explain +------------------------------- +SORT(3) + => Sort Keys: default.a.id (INT4) (asc) + JOIN(6)(LEFT_OUTER) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) + => target list: default.a.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + => in schema: {(3) default.a.id (INT4), default.b.id (INT4), default.b.name (TEXT)} + SCAN(1) on default.jointable_large as b + => target list: default.b.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + SCAN(0) on default.jointable1 as a + => target list: default.a.id (INT4) + => out schema: {(1) default.a.id (INT4)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} +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.a.id (INT4), num=32) + +SCAN(0) on default.jointable1 as a + => target list: default.a.id (INT4) + => out schema: {(1) default.a.id (INT4)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000002 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +SCAN(1) on default.jointable_large as b + => target list: default.b.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.a.id (INT4), num=32) + +SORT(10) + => Sort Keys: default.a.id (INT4) (asc) + JOIN(6)(LEFT_OUTER) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) + => target list: default.a.id (INT4), default.b.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + => in schema: {(3) default.a.id (INT4), default.b.id (INT4), default.b.name (TEXT)} + SCAN(9) on eb_0000000000000_0000_000002 + => out schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.b.id (INT4), default.b.name (TEXT)} + SCAN(8) on eb_0000000000000_0000_000001 + => out schema: {(1) default.a.id (INT4)} + => in schema: {(1) default.a.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 4 (type=RANGE_SHUFFLE, key=default.a.id (INT4), num=32) + +[Enforcers] + 0: sorted input=eb_0000000000000_0000_000003 + +SORT(3) + => Sort Keys: default.a.id (INT4) (asc) + SCAN(11) on eb_0000000000000_0000_000003 + => out schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.b.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [TERMINAL] +======================================================= http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.result b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.result new file mode 100644 index 0000000..a58e428 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinLeftSideSmallTable.1.result @@ -0,0 +1,7 @@ +id,name +------------------------------- +2,this is testLeftOuterJoinLeftSideSmallTabletestLeftOuterJoinLeftSideSmallTable2 +3,this is testLeftOuterJoinLeftSideSmallTabletestLeftOuterJoinLeftSideSmallTable3 +4,this is testLeftOuterJoinLeftSideSmallTabletestLeftOuterJoinLeftSideSmallTable4 +1000000,null +1000001,null http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Hash.plan new file mode 100644 index 0000000..b6064cc --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Hash.plan @@ -0,0 +1,72 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) AND default.t2.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 + => 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) AND default.t2.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 + => 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/testLeftOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan new file mode 100644 index 0000000..19ae617 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan @@ -0,0 +1,128 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) AND default.t2.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 + => 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), default.t2.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), 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), default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), default.t3.id (INT4), num=32) + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) AND default.t2.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/testLeftOuterJoinPredicationCaseByCase1.1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Sort.plan new file mode 100644 index 0000000..b6064cc --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Sort.plan @@ -0,0 +1,72 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) AND default.t2.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 + => 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) AND default.t2.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 + => 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/testLeftOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan new file mode 100644 index 0000000..19ae617 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan @@ -0,0 +1,128 @@ +explain +------------------------------- +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) AND default.t2.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 + => 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), default.t2.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), 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), default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), default.t3.id (INT4), num=32) + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t3.id (INT4) AND default.t2.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/testLeftOuterJoinPredicationCaseByCase1.1.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.result b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.result new file mode 100644 index 0000000..c693f68 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase1.1.result @@ -0,0 +1,7 @@ +id,name,id,id +------------------------------- +1,table11-1,1,null +2,table11-2,2,2 +3,table11-3,null,null +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/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan new file mode 100644 index 0000000..0a22bad --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan @@ -0,0 +1,91 @@ +explain +------------------------------- +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.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(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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 + 2: type=Broadcast, tables=default.t4 + +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.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(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +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.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan new file mode 100644 index 0000000..1af94bc --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan @@ -0,0 +1,176 @@ +explain +------------------------------- +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.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(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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 + => 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.t2.id (INT4), num=32) + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[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 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(16) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) + +SCAN(5) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000007 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) + +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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(18) on eb_0000000000000_0000_000006 + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(1) default.t4.id (INT4)} + SCAN(17) on eb_0000000000000_0000_000005 + => 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)} + +======================================================= +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.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan new file mode 100644 index 0000000..0a22bad --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan @@ -0,0 +1,91 @@ +explain +------------------------------- +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.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(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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 + 2: type=Broadcast, tables=default.t4 + +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.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(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +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.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan new file mode 100644 index 0000000..1af94bc --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan @@ -0,0 +1,176 @@ +explain +------------------------------- +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.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(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +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 + => 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.t2.id (INT4), num=32) + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000002 + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(1) default.t2.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[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 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +JOIN(10)(LEFT_OUTER) + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} + SCAN(16) on eb_0000000000000_0000_000004 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000003 + => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + +======================================================= +Block Id: eb_0000000000000_0000_000006 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) + +SCAN(5) on default.jointable14 as t4 + => target list: default.t4.id (INT4) + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000007 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 6 => 7 (type=HASH_SHUFFLE, key=default.t4.id (INT4), num=32) + +JOIN(11)(INNER) + => Join Cond: default.t2.id (INT4) = default.t4.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(18) on eb_0000000000000_0000_000006 + => out schema: {(1) default.t4.id (INT4)} + => in schema: {(1) default.t4.id (INT4)} + SCAN(17) on eb_0000000000000_0000_000005 + => 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)} + +======================================================= +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.result ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.result b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.result new file mode 100644 index 0000000..f0ed197 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.result @@ -0,0 +1,4 @@ +id,name,id,id,id +------------------------------- +1,table11-1,1,null,1 +2,table11-2,2,2,2 http://git-wip-us.apache.org/repos/asf/tajo/blob/4b1b7799/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Hash.plan new file mode 100644 index 0000000..ab1b487 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Hash.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.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Hash_NoBroadcast.plan new file mode 100644 index 0000000..f022519 --- /dev/null +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2_1.1.Hash_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] +=======================================================
