http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/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 index f5e0586..e3bb20c 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -38,21 +38,63 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) ------------------------------------------------------------------------------- |-eb_0000000000000_0000_000008 |-eb_0000000000000_0000_000007 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000007 -2: eb_0000000000000_0000_000008 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000007 +4: eb_0000000000000_0000_000008 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000007 [ROOT] +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + ======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Enforcers] 0: type=Broadcast, tables=default.t3 - 1: type=Broadcast, tables=default.t2 - 2: type=Broadcast, tables=default.t4 + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000007 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.t4 JOIN(11)(INNER) => Join Cond: default.t2.id (INT4) = default.t4.id (INT4) @@ -64,27 +106,16 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(16) on eb_0000000000000_0000_000004 + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL]
http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/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 index 1af94bc..d4104e3 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -41,16 +41,16 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 @@ -58,86 +58,86 @@ Order of Execution ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(14) on eb_0000000000000_0000_000002 + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000003 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000002 => out schema: {(1) default.t2.id (INT4)} => in schema: {(1) default.t2.id (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} SCAN(16) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(1) default.t3.id (INT4)} - SCAN(15) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/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 index f5e0586..e3bb20c 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -38,21 +38,63 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) ------------------------------------------------------------------------------- |-eb_0000000000000_0000_000008 |-eb_0000000000000_0000_000007 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000007 -2: eb_0000000000000_0000_000008 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000007 +4: eb_0000000000000_0000_000008 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000007 [ROOT] +Block Id: eb_0000000000000_0000_000001 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) + +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + ======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Enforcers] 0: type=Broadcast, tables=default.t3 - 1: type=Broadcast, tables=default.t2 - 2: type=Broadcast, tables=default.t4 + +JOIN(9)(LEFT_OUTER) + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} + SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000007 [ROOT] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 7 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) + +[Enforcers] + 0: type=Broadcast, tables=default.t4 JOIN(11)(INNER) => Join Cond: default.t2.id (INT4) = default.t4.id (INT4) @@ -64,27 +106,16 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} - JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(16) on eb_0000000000000_0000_000004 + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000008 [TERMINAL] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/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 index 1af94bc..d4104e3 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan @@ -10,27 +10,27 @@ JOIN(11)(INNER) => out schema: {(1) default.t4.id (INT4)} => in schema: {(2) default.t4.id (INT4), default.t4.name (TEXT)} JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} - SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} SCAN(1) on default.jointable12 as t2 => target list: default.t2.id (INT4) => out schema: {(1) default.t2.id (INT4)} => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} - SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -41,16 +41,16 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000008) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 @@ -58,86 +58,86 @@ Order of Execution ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -SCAN(0) on default.jointable11 as t1 - => target list: default.t1.id (INT4), default.t1.name (TEXT) - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} +SCAN(1) on default.jointable12 as t2 + => target list: default.t2.id (INT4) + => out schema: {(1) default.t2.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) -SCAN(1) on default.jointable12 as t2 - => target list: default.t2.id (INT4) - => out schema: {(1) default.t2.id (INT4)} - => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)} +SCAN(3) on default.jointable13 as t3 + => target list: default.t3.id (INT4) + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(9)(LEFT_OUTER) - => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) - => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4) - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - SCAN(14) on eb_0000000000000_0000_000002 + => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => target list: default.t2.id (INT4), default.t3.id (INT4) + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(14) on eb_0000000000000_0000_000003 + => out schema: {(1) default.t3.id (INT4)} + => in schema: {(1) default.t3.id (INT4)} + SCAN(13) on eb_0000000000000_0000_000002 => out schema: {(1) default.t2.id (INT4)} => in schema: {(1) default.t2.id (INT4)} - SCAN(13) on eb_0000000000000_0000_000001 - => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} - => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) -SCAN(3) on default.jointable13 as t3 - => target list: default.t3.id (INT4) - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)} +SCAN(0) on default.jointable11 as t1 + => target list: default.t1.id (INT4), default.t1.name (TEXT) + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t3.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.t1.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 7 (type=HASH_SHUFFLE, key=default.t2.id (INT4), num=32) JOIN(10)(LEFT_OUTER) - => Join Cond: default.t2.id (INT4) = default.t3.id (INT4) + => Join Cond: default.t1.id (INT4) = default.t2.id (INT4) => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4) => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)} SCAN(16) on eb_0000000000000_0000_000004 - => out schema: {(1) default.t3.id (INT4)} - => in schema: {(1) default.t3.id (INT4)} - SCAN(15) on eb_0000000000000_0000_000003 - => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} - => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)} + => out schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + => in schema: {(2) default.t2.id (INT4), default.t3.id (INT4)} + SCAN(15) on eb_0000000000000_0000_000001 + => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} + => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [LEAF] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan index 08ded3e..b336032 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -32,49 +32,78 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000007 |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000005 -2: eb_0000000000000_0000_000006 -3: eb_0000000000000_0000_000007 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000005 +4: eb_0000000000000_0000_000006 +5: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000005 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) + +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Enforcers] - 0: type=Broadcast, tables=default.b - 1: type=Broadcast, tables=default.c + 0: type=Broadcast, tables=default.c + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} - JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(14) on eb_0000000000000_0000_000004 + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan index e864dc9..02d893c 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -33,87 +33,87 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} +SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) -SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} +SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(12) on eb_0000000000000_0000_000002 + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + SCAN(11) on eb_0000000000000_0000_000002 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan index 08ded3e..b336032 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -32,49 +32,78 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000007 |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 + |-eb_0000000000000_0000_000004 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000005 -2: eb_0000000000000_0000_000006 -3: eb_0000000000000_0000_000007 +1: eb_0000000000000_0000_000001 +2: eb_0000000000000_0000_000004 +3: eb_0000000000000_0000_000005 +4: eb_0000000000000_0000_000006 +5: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000005 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) + +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000004 [LEAF] +======================================================= + +[Outgoing] +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Enforcers] - 0: type=Broadcast, tables=default.b - 1: type=Broadcast, tables=default.c + 0: type=Broadcast, tables=default.c + +JOIN(8)(LEFT_OUTER) + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} + +======================================================= +Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] +======================================================= + +[Incoming] +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) + +[Outgoing] +[q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} - JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(14) on eb_0000000000000_0000_000004 + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT] http://git-wip-us.apache.org/repos/asf/tajo/blob/bedce3aa/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan index e864dc9..02d893c 100644 --- a/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan +++ b/tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan @@ -3,27 +3,27 @@ explain SORT(5) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} SCAN(1) on default.testouterjoinandcasewhen2 as b => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} - SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} + SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} explain ------------------------------- ------------------------------------------------------------------------------- @@ -33,87 +33,87 @@ Execution Block Graph (TERMINAL - eb_0000000000000_0000_000007) |-eb_0000000000000_0000_000006 |-eb_0000000000000_0000_000005 |-eb_0000000000000_0000_000004 - |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 - |-eb_0000000000000_0000_000001 + |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- -1: eb_0000000000000_0000_000001 -2: eb_0000000000000_0000_000002 -3: eb_0000000000000_0000_000003 -4: eb_0000000000000_0000_000004 +1: eb_0000000000000_0000_000002 +2: eb_0000000000000_0000_000003 +3: eb_0000000000000_0000_000004 +4: eb_0000000000000_0000_000001 5: eb_0000000000000_0000_000005 6: eb_0000000000000_0000_000006 7: eb_0000000000000_0000_000007 ------------------------------------------------------------------------------- ======================================================= -Block Id: eb_0000000000000_0000_000001 [LEAF] +Block Id: eb_0000000000000_0000_000002 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -SCAN(0) on default.testouterjoinandcasewhen1 as a - => target list: default.a.id (INT4), default.a.name (TEXT) - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} +SCAN(1) on default.testouterjoinandcasewhen2 as b + => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 + => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000002 [LEAF] +Block Id: eb_0000000000000_0000_000003 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) -SCAN(1) on default.testouterjoinandcasewhen2 as b - => target list: default.b.id (INT4), default.b.id (INT4) as id2, default.b.name (TEXT), default.b.name (TEXT) as name2 - => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), default.b.score (FLOAT4), default.b.type (TEXT)} +SCAN(3) on default.testouterjoinandcasewhen1 as c + => target list: default.c.id (INT4), default.c.name (TEXT) + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000003 [INTERMEDIATE] +Block Id: eb_0000000000000_0000_000004 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 1 => 3 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -[q_0000000000000_0000] 2 => 3 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 2 => 4 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 3 => 4 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) [Outgoing] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) JOIN(8)(LEFT_OUTER) - => Join Cond: default.a.id (INT4) = default.b.id (INT4) - => target list: default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT) - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(12) on eb_0000000000000_0000_000002 + => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => target list: default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT) + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(6) default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(12) on eb_0000000000000_0000_000003 + => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} + SCAN(11) on eb_0000000000000_0000_000002 => out schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} => in schema: {(4) default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - SCAN(11) on eb_0000000000000_0000_000001 - => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} - => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= -Block Id: eb_0000000000000_0000_000004 [LEAF] +Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) -SCAN(3) on default.testouterjoinandcasewhen1 as c - => target list: default.c.id (INT4), default.c.name (TEXT) - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(4) default.c.id (INT4), default.c.name (TEXT), default.c.score (FLOAT4), default.c.type (TEXT)} +SCAN(0) on default.testouterjoinandcasewhen1 as a + => target list: default.a.id (INT4), default.a.name (TEXT) + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(4) default.a.id (INT4), default.a.name (TEXT), default.a.score (FLOAT4), default.a.type (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] ======================================================= [Incoming] -[q_0000000000000_0000] 3 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) -[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.c.id (INT4), num=32) +[q_0000000000000_0000] 1 => 5 (type=HASH_SHUFFLE, key=default.a.id (INT4), num=32) +[q_0000000000000_0000] 4 => 5 (type=HASH_SHUFFLE, key=default.b.id (INT4), num=32) [Outgoing] [q_0000000000000_0000] 5 => 6 (type=RANGE_SHUFFLE, key=default.a.id (INT4), default.a.name (TEXT), num=32) @@ -121,16 +121,16 @@ Block Id: eb_0000000000000_0000_000005 [INTERMEDIATE] SORT(15) => Sort Keys: default.a.id (INT4) (asc),default.a.name (TEXT) (asc) JOIN(9)(LEFT_OUTER) - => Join Cond: default.b.id (INT4) = default.c.id (INT4) + => Join Cond: default.a.id (INT4) = default.b.id (INT4) => target list: CASE WHEN default.b.name (TEXT) IS NULL THEN 9991231 ELSE default.b.name (TEXT) END as c1, CASE WHEN default.c.name (TEXT) IS NULL THEN 9991231 ELSE default.c.name (TEXT) END as c2, default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT) => out schema: {(6) c1 (TEXT), c2 (TEXT), default.a.id (INT4), default.a.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(8) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.id (INT4), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(7) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} SCAN(14) on eb_0000000000000_0000_000004 - => out schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - => in schema: {(2) default.c.id (INT4), default.c.name (TEXT)} - SCAN(13) on eb_0000000000000_0000_000003 - => out schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} - => in schema: {(6) default.a.id (INT4), default.a.name (TEXT), default.b.id (INT4), default.b.name (TEXT), id2 (INT4), name2 (TEXT)} + => out schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + => in schema: {(5) default.b.id (INT4), default.b.name (TEXT), default.c.name (TEXT), id2 (INT4), name2 (TEXT)} + SCAN(13) on eb_0000000000000_0000_000001 + => out schema: {(2) default.a.id (INT4), default.a.name (TEXT)} + => in schema: {(2) default.a.id (INT4), default.a.name (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000006 [ROOT]
