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]

Reply via email to