You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2017/06/22 07:18:11 UTC

[4/6] hive git commit: HIVE-16885: Non-equi Joins: Filter clauses should be pushed into the ON clause (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/94e92858/ql/src/test/results/clientpositive/llap/explainuser_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/explainuser_1.q.out b/ql/src/test/results/clientpositive/llap/explainuser_1.q.out
index 28ca13b..b68ec63 100644
--- a/ql/src/test/results/clientpositive/llap/explainuser_1.q.out
+++ b/ql/src/test/results/clientpositive/llap/explainuser_1.q.out
@@ -358,75 +358,73 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 4 llap
-      File Output Operator [FS_39]
-        Select Operator [SEL_37] (rows=1 width=20)
+      File Output Operator [FS_37]
+        Select Operator [SEL_35] (rows=1 width=20)
           Output:["_col0","_col1","_col2"]
         <-Reducer 3 [SIMPLE_EDGE] llap
-          SHUFFLE [RS_36]
-            Select Operator [SEL_35] (rows=1 width=28)
+          SHUFFLE [RS_34]
+            Select Operator [SEL_33] (rows=1 width=28)
               Output:["_col0","_col1","_col2","_col3"]
-              Group By Operator [GBY_34] (rows=1 width=20)
+              Group By Operator [GBY_32] (rows=1 width=20)
                 Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1
               <-Reducer 2 [SIMPLE_EDGE] llap
-                SHUFFLE [RS_33]
+                SHUFFLE [RS_31]
                   PartitionCols:_col0, _col1
-                  Group By Operator [GBY_32] (rows=1 width=20)
+                  Group By Operator [GBY_30] (rows=1 width=20)
                     Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col4, _col1
-                    Select Operator [SEL_31] (rows=1 width=20)
+                    Select Operator [SEL_29] (rows=1 width=20)
                       Output:["_col1","_col4"]
-                      Filter Operator [FIL_29] (rows=1 width=20)
-                        predicate:(((_col3 + _col6) >= 0) and ((_col3 > 0) or (_col1 >= 0)))
-                        Merge Join Operator [MERGEJOIN_49] (rows=3 width=20)
-                          Conds:RS_25._col0=RS_26._col0(Inner),RS_26._col0=RS_27._col0(Inner),Output:["_col1","_col3","_col4","_col6"]
-                        <-Map 1 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_25]
-                            PartitionCols:_col0
-                            Select Operator [SEL_2] (rows=18 width=84)
-                              Output:["_col0","_col1"]
-                              Filter Operator [FIL_46] (rows=18 width=84)
-                                predicate:key is not null
-                                TableScan [TS_0] (rows=20 width=84)
-                                  default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
-                        <-Reducer 10 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_27]
-                            PartitionCols:_col0
-                            Select Operator [SEL_23] (rows=1 width=89)
-                              Output:["_col0","_col1"]
-                            <-Reducer 9 [SIMPLE_EDGE] llap
-                              SHUFFLE [RS_22]
-                                Select Operator [SEL_20] (rows=1 width=105)
-                                  Output:["_col0","_col1","_col2","_col5"]
-                                  Group By Operator [GBY_19] (rows=1 width=101)
-                                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                                  <-Map 8 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_18]
-                                      PartitionCols:_col0, _col1, _col2
-                                      Group By Operator [GBY_17] (rows=2 width=101)
-                                        Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                        Filter Operator [FIL_48] (rows=5 width=93)
-                                          predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and key is not null)
-                                          TableScan [TS_14] (rows=20 width=88)
-                                            default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-                        <-Reducer 7 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_26]
-                            PartitionCols:_col0
-                            Select Operator [SEL_12] (rows=1 width=97)
-                              Output:["_col0","_col1","_col2"]
-                            <-Reducer 6 [SIMPLE_EDGE] llap
-                              SHUFFLE [RS_11]
-                                Select Operator [SEL_9] (rows=1 width=97)
-                                  Output:["_col0","_col1","_col2"]
-                                  Group By Operator [GBY_8] (rows=1 width=101)
-                                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                                  <-Map 5 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_7]
-                                      PartitionCols:_col0, _col1, _col2
-                                      Group By Operator [GBY_6] (rows=2 width=101)
-                                        Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                        Filter Operator [FIL_47] (rows=5 width=93)
-                                          predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and key is not null)
-                                          TableScan [TS_3] (rows=20 width=88)
-                                            default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                      Merge Join Operator [MERGEJOIN_47] (rows=1 width=20)
+                        Conds:RS_25._col0=RS_26._col0(Inner),RS_26._col0=RS_27._col0(Inner),Output:["_col1","_col3","_col4","_col6"],residual filter predicates:{((_col3 > 0) or (_col1 >= 0))} {((_col3 + _col6) >= 0)}
+                      <-Map 1 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_25]
+                          PartitionCols:_col0
+                          Select Operator [SEL_2] (rows=18 width=84)
+                            Output:["_col0","_col1"]
+                            Filter Operator [FIL_44] (rows=18 width=84)
+                              predicate:key is not null
+                              TableScan [TS_0] (rows=20 width=84)
+                                default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+                      <-Reducer 10 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_27]
+                          PartitionCols:_col0
+                          Select Operator [SEL_23] (rows=1 width=89)
+                            Output:["_col0","_col1"]
+                          <-Reducer 9 [SIMPLE_EDGE] llap
+                            SHUFFLE [RS_22]
+                              Select Operator [SEL_20] (rows=1 width=105)
+                                Output:["_col0","_col1","_col2","_col5"]
+                                Group By Operator [GBY_19] (rows=1 width=101)
+                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                                <-Map 8 [SIMPLE_EDGE] llap
+                                  SHUFFLE [RS_18]
+                                    PartitionCols:_col0, _col1, _col2
+                                    Group By Operator [GBY_17] (rows=2 width=101)
+                                      Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                      Filter Operator [FIL_46] (rows=5 width=93)
+                                        predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and key is not null)
+                                        TableScan [TS_14] (rows=20 width=88)
+                                          default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                      <-Reducer 7 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_26]
+                          PartitionCols:_col0
+                          Select Operator [SEL_12] (rows=1 width=97)
+                            Output:["_col0","_col1","_col2"]
+                          <-Reducer 6 [SIMPLE_EDGE] llap
+                            SHUFFLE [RS_11]
+                              Select Operator [SEL_9] (rows=1 width=97)
+                                Output:["_col0","_col1","_col2"]
+                                Group By Operator [GBY_8] (rows=1 width=101)
+                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                                <-Map 5 [SIMPLE_EDGE] llap
+                                  SHUFFLE [RS_7]
+                                    PartitionCols:_col0, _col1, _col2
+                                    Group By Operator [GBY_6] (rows=2 width=101)
+                                      Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                      Filter Operator [FIL_45] (rows=5 width=93)
+                                        predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and key is not null)
+                                        TableScan [TS_3] (rows=20 width=88)
+                                          default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
 
 PREHOOK: query: explain select cbo_t3.c_int, c, count(*) from (select key as a, c_int+1 as b, sum(c_int) as c from cbo_t1 where (cbo_t1.c_int + 1 >= 0) and (cbo_t1.c_int > 0 or cbo_t1.c_float >= 0)  group by c_float, cbo_t1.c_int, key having cbo_t1.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0 order by b % c asc, b desc) cbo_t1 left outer join (select key as p, c_int+1 as q, sum(c_int) as r from cbo_t2 where (cbo_t2.c_int + 1 >= 0) and (cbo_t2.c_int > 0 or cbo_t2.c_float >= 0)  group by c_float, cbo_t2.c_int, key  having cbo_t2.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0) cbo_t2 on cbo_t1.a=p left outer join cbo_t3 on cbo_t1.a=key where (b + cbo_t2.q >= 0) and (b > 0 or c_int >= 0) group by cbo_t3.c_int, c  having cbo_t3.c_int > 0 and (c_int >=1 or c >= 1) and (c_int + c) >= 0  order by cbo_t3.c_int % c asc, cbo_t3.c_int desc
 PREHOOK: type: QUERY
@@ -447,71 +445,69 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 4 llap
-      File Output Operator [FS_38]
-        Select Operator [SEL_36] (rows=1 width=20)
+      File Output Operator [FS_34]
+        Select Operator [SEL_32] (rows=1 width=20)
           Output:["_col0","_col1","_col2"]
         <-Reducer 3 [SIMPLE_EDGE] llap
-          SHUFFLE [RS_35]
-            Select Operator [SEL_34] (rows=1 width=28)
+          SHUFFLE [RS_31]
+            Select Operator [SEL_30] (rows=1 width=28)
               Output:["_col0","_col1","_col2","_col3"]
-              Group By Operator [GBY_33] (rows=1 width=20)
+              Group By Operator [GBY_29] (rows=1 width=20)
                 Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1
               <-Reducer 2 [SIMPLE_EDGE] llap
-                SHUFFLE [RS_32]
+                SHUFFLE [RS_28]
                   PartitionCols:_col0, _col1
-                  Group By Operator [GBY_31] (rows=1 width=20)
+                  Group By Operator [GBY_27] (rows=1 width=20)
                     Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col1, _col4
-                    Select Operator [SEL_30] (rows=1 width=20)
+                    Select Operator [SEL_26] (rows=1 width=20)
                       Output:["_col1","_col4"]
-                      Filter Operator [FIL_26] (rows=1 width=20)
-                        predicate:(((_col3 + _col6) >= 0) and ((UDFToLong(_col1) + _col4) >= 0) and ((_col1 >= 1) or (_col4 >= 1)) and ((_col3 > 0) or (_col1 >= 0)))
-                        Merge Join Operator [MERGEJOIN_48] (rows=3 width=20)
-                          Conds:RS_22._col0=RS_23._col0(Inner),RS_23._col0=RS_24._col0(Inner),Output:["_col1","_col3","_col4","_col6"]
-                        <-Map 1 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_22]
-                            PartitionCols:_col0
-                            Select Operator [SEL_2] (rows=18 width=84)
-                              Output:["_col0","_col1"]
-                              Filter Operator [FIL_45] (rows=18 width=84)
-                                predicate:((c_int > 0) and key is not null)
-                                TableScan [TS_0] (rows=20 width=84)
-                                  default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
-                        <-Reducer 7 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_23]
-                            PartitionCols:_col0
-                            Select Operator [SEL_12] (rows=1 width=97)
-                              Output:["_col0","_col1","_col2"]
-                            <-Reducer 6 [SIMPLE_EDGE] llap
-                              SHUFFLE [RS_11]
-                                Select Operator [SEL_9] (rows=1 width=105)
-                                  Output:["_col0","_col1","_col2","_col5"]
-                                  Group By Operator [GBY_8] (rows=1 width=101)
-                                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                                  <-Map 5 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_7]
-                                      PartitionCols:_col0, _col1, _col2
-                                      Group By Operator [GBY_6] (rows=1 width=101)
-                                        Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                        Filter Operator [FIL_46] (rows=2 width=93)
-                                          predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                          TableScan [TS_3] (rows=20 width=88)
-                                            default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-                        <-Reducer 9 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_24]
-                            PartitionCols:_col0
-                            Select Operator [SEL_20] (rows=1 width=89)
-                              Output:["_col0","_col1"]
-                              Group By Operator [GBY_19] (rows=1 width=93)
-                                Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2
-                              <-Map 8 [SIMPLE_EDGE] llap
-                                SHUFFLE [RS_18]
-                                  PartitionCols:_col0, _col1, _col2
-                                  Group By Operator [GBY_17] (rows=1 width=93)
-                                    Output:["_col0","_col1","_col2"],keys:key, c_int, c_float
-                                    Filter Operator [FIL_47] (rows=2 width=93)
-                                      predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                      TableScan [TS_14] (rows=20 width=88)
-                                        default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                      Merge Join Operator [MERGEJOIN_44] (rows=1 width=20)
+                        Conds:RS_22._col0=RS_23._col0(Inner),RS_23._col0=RS_24._col0(Inner),Output:["_col1","_col3","_col4","_col6"],residual filter predicates:{((_col3 > 0) or (_col1 >= 0))} {((_col1 >= 1) or (_col4 >= 1))} {((UDFToLong(_col1) + _col4) >= 0)} {((_col3 + _col6) >= 0)}
+                      <-Map 1 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_22]
+                          PartitionCols:_col0
+                          Select Operator [SEL_2] (rows=18 width=84)
+                            Output:["_col0","_col1"]
+                            Filter Operator [FIL_41] (rows=18 width=84)
+                              predicate:((c_int > 0) and key is not null)
+                              TableScan [TS_0] (rows=20 width=84)
+                                default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+                      <-Reducer 7 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_23]
+                          PartitionCols:_col0
+                          Select Operator [SEL_12] (rows=1 width=97)
+                            Output:["_col0","_col1","_col2"]
+                          <-Reducer 6 [SIMPLE_EDGE] llap
+                            SHUFFLE [RS_11]
+                              Select Operator [SEL_9] (rows=1 width=105)
+                                Output:["_col0","_col1","_col2","_col5"]
+                                Group By Operator [GBY_8] (rows=1 width=101)
+                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                                <-Map 5 [SIMPLE_EDGE] llap
+                                  SHUFFLE [RS_7]
+                                    PartitionCols:_col0, _col1, _col2
+                                    Group By Operator [GBY_6] (rows=1 width=101)
+                                      Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                      Filter Operator [FIL_42] (rows=2 width=93)
+                                        predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                                        TableScan [TS_3] (rows=20 width=88)
+                                          default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                      <-Reducer 9 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_24]
+                          PartitionCols:_col0
+                          Select Operator [SEL_20] (rows=1 width=89)
+                            Output:["_col0","_col1"]
+                            Group By Operator [GBY_19] (rows=1 width=93)
+                              Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2
+                            <-Map 8 [SIMPLE_EDGE] llap
+                              SHUFFLE [RS_18]
+                                PartitionCols:_col0, _col1, _col2
+                                Group By Operator [GBY_17] (rows=1 width=93)
+                                  Output:["_col0","_col1","_col2"],keys:key, c_int, c_float
+                                  Filter Operator [FIL_43] (rows=2 width=93)
+                                    predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                                    TableScan [TS_14] (rows=20 width=88)
+                                      default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
 
 PREHOOK: query: explain select cbo_t3.c_int, c, count(*) from (select key as a, c_int+1 as b, sum(c_int) as c from cbo_t1 where (cbo_t1.c_int + 1 >= 0) and (cbo_t1.c_int > 0 or cbo_t1.c_float >= 0)  group by c_float, cbo_t1.c_int, key having cbo_t1.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0 order by b+c, a desc) cbo_t1 right outer join (select key as p, c_int+1 as q, sum(c_int) as r from cbo_t2 where (cbo_t2.c_int + 1 >= 0) and (cbo_t2.c_int > 0 or cbo_t2.c_float >= 0)  group by c_float, cbo_t2.c_int, key having cbo_t2.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0) cbo_t2 on cbo_t1.a=p right outer join cbo_t3 on cbo_t1.a=key where (b + cbo_t2.q >= 2) and (b > 0 or c_int >= 0) group by cbo_t3.c_int, c
 PREHOOK: type: QUERY
@@ -531,65 +527,63 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 3 llap
-      File Output Operator [FS_33]
-        Group By Operator [GBY_31] (rows=1 width=20)
+      File Output Operator [FS_31]
+        Group By Operator [GBY_29] (rows=1 width=20)
           Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1
         <-Reducer 2 [SIMPLE_EDGE] llap
-          SHUFFLE [RS_30]
+          SHUFFLE [RS_28]
             PartitionCols:_col0, _col1
-            Group By Operator [GBY_29] (rows=1 width=20)
+            Group By Operator [GBY_27] (rows=1 width=20)
               Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col1, _col4
-              Select Operator [SEL_28] (rows=1 width=20)
+              Select Operator [SEL_26] (rows=1 width=20)
                 Output:["_col1","_col4"]
-                Filter Operator [FIL_26] (rows=1 width=20)
-                  predicate:(((_col3 + _col6) >= 2) and ((_col3 > 0) or (_col1 >= 0)))
-                  Merge Join Operator [MERGEJOIN_43] (rows=3 width=20)
-                    Conds:RS_22._col0=RS_23._col0(Inner),RS_23._col0=RS_24._col0(Inner),Output:["_col1","_col3","_col4","_col6"]
-                  <-Map 1 [SIMPLE_EDGE] llap
-                    SHUFFLE [RS_22]
-                      PartitionCols:_col0
-                      Select Operator [SEL_2] (rows=18 width=84)
-                        Output:["_col0","_col1"]
-                        Filter Operator [FIL_40] (rows=18 width=84)
-                          predicate:key is not null
-                          TableScan [TS_0] (rows=20 width=84)
-                            default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
-                  <-Reducer 6 [SIMPLE_EDGE] llap
-                    SHUFFLE [RS_23]
-                      PartitionCols:_col0
-                      Select Operator [SEL_12] (rows=1 width=97)
-                        Output:["_col0","_col1","_col2"]
-                      <-Reducer 5 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_11]
-                          Select Operator [SEL_9] (rows=1 width=105)
-                            Output:["_col0","_col1","_col2","_col5"]
-                            Group By Operator [GBY_8] (rows=1 width=101)
-                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                            <-Map 4 [SIMPLE_EDGE] llap
-                              SHUFFLE [RS_7]
-                                PartitionCols:_col0, _col1, _col2
-                                Group By Operator [GBY_6] (rows=1 width=101)
-                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                  Filter Operator [FIL_41] (rows=2 width=93)
-                                    predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                    TableScan [TS_3] (rows=20 width=88)
-                                      default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-                  <-Reducer 8 [SIMPLE_EDGE] llap
-                    SHUFFLE [RS_24]
-                      PartitionCols:_col0
-                      Select Operator [SEL_20] (rows=1 width=89)
-                        Output:["_col0","_col1"]
-                        Group By Operator [GBY_19] (rows=1 width=93)
-                          Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2
-                        <-Map 7 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_18]
-                            PartitionCols:_col0, _col1, _col2
-                            Group By Operator [GBY_17] (rows=1 width=93)
-                              Output:["_col0","_col1","_col2"],keys:key, c_int, c_float
-                              Filter Operator [FIL_42] (rows=2 width=93)
-                                predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                TableScan [TS_14] (rows=20 width=88)
-                                  default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                Merge Join Operator [MERGEJOIN_41] (rows=1 width=20)
+                  Conds:RS_22._col0=RS_23._col0(Inner),RS_23._col0=RS_24._col0(Inner),Output:["_col1","_col3","_col4","_col6"],residual filter predicates:{((_col3 > 0) or (_col1 >= 0))} {((_col3 + _col6) >= 2)}
+                <-Map 1 [SIMPLE_EDGE] llap
+                  SHUFFLE [RS_22]
+                    PartitionCols:_col0
+                    Select Operator [SEL_2] (rows=18 width=84)
+                      Output:["_col0","_col1"]
+                      Filter Operator [FIL_38] (rows=18 width=84)
+                        predicate:key is not null
+                        TableScan [TS_0] (rows=20 width=84)
+                          default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+                <-Reducer 6 [SIMPLE_EDGE] llap
+                  SHUFFLE [RS_23]
+                    PartitionCols:_col0
+                    Select Operator [SEL_12] (rows=1 width=97)
+                      Output:["_col0","_col1","_col2"]
+                    <-Reducer 5 [SIMPLE_EDGE] llap
+                      SHUFFLE [RS_11]
+                        Select Operator [SEL_9] (rows=1 width=105)
+                          Output:["_col0","_col1","_col2","_col5"]
+                          Group By Operator [GBY_8] (rows=1 width=101)
+                            Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                          <-Map 4 [SIMPLE_EDGE] llap
+                            SHUFFLE [RS_7]
+                              PartitionCols:_col0, _col1, _col2
+                              Group By Operator [GBY_6] (rows=1 width=101)
+                                Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                Filter Operator [FIL_39] (rows=2 width=93)
+                                  predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                                  TableScan [TS_3] (rows=20 width=88)
+                                    default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                <-Reducer 8 [SIMPLE_EDGE] llap
+                  SHUFFLE [RS_24]
+                    PartitionCols:_col0
+                    Select Operator [SEL_20] (rows=1 width=89)
+                      Output:["_col0","_col1"]
+                      Group By Operator [GBY_19] (rows=1 width=93)
+                        Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2
+                      <-Map 7 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_18]
+                          PartitionCols:_col0, _col1, _col2
+                          Group By Operator [GBY_17] (rows=1 width=93)
+                            Output:["_col0","_col1","_col2"],keys:key, c_int, c_float
+                            Filter Operator [FIL_40] (rows=2 width=93)
+                              predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                              TableScan [TS_14] (rows=20 width=88)
+                                default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
 
 PREHOOK: query: explain select cbo_t3.c_int, c, count(*) from (select key as a, c_int+1 as b, sum(c_int) as c from cbo_t1 where (cbo_t1.c_int + 1 >= 0) and (cbo_t1.c_int > 0 or cbo_t1.c_float >= 0)  group by c_float, cbo_t1.c_int, key having cbo_t1.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0 order by c+a desc) cbo_t1 full outer join (select key as p, c_int+1 as q, sum(c_int) as r from cbo_t2 where (cbo_t2.c_int + 1 >= 0) and (cbo_t2.c_int > 0 or cbo_t2.c_float >= 0)  group by c_float, cbo_t2.c_int, key having cbo_t2.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0 order by p+q desc, r asc) cbo_t2 on cbo_t1.a=p full outer join cbo_t3 on cbo_t1.a=key where (b + cbo_t2.q >= 0) and (b > 0 or c_int >= 0) group by cbo_t3.c_int, c having cbo_t3.c_int > 0 and (c_int >=1 or c >= 1) and (c_int + c) >= 0 order by cbo_t3.c_int
 PREHOOK: type: QUERY
@@ -611,73 +605,71 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 4 llap
-      File Output Operator [FS_40]
-        Select Operator [SEL_39] (rows=1 width=20)
+      File Output Operator [FS_36]
+        Select Operator [SEL_35] (rows=1 width=20)
           Output:["_col0","_col1","_col2"]
         <-Reducer 3 [SIMPLE_EDGE] llap
-          SHUFFLE [RS_38]
-            Group By Operator [GBY_36] (rows=1 width=20)
+          SHUFFLE [RS_34]
+            Group By Operator [GBY_32] (rows=1 width=20)
               Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1
             <-Reducer 2 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_35]
+              SHUFFLE [RS_31]
                 PartitionCols:_col0, _col1
-                Group By Operator [GBY_34] (rows=1 width=20)
+                Group By Operator [GBY_30] (rows=1 width=20)
                   Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col1, _col4
-                  Select Operator [SEL_33] (rows=1 width=20)
+                  Select Operator [SEL_29] (rows=1 width=20)
                     Output:["_col1","_col4"]
-                    Filter Operator [FIL_29] (rows=1 width=20)
-                      predicate:(((_col3 + _col6) >= 0) and ((UDFToLong(_col1) + _col4) >= 0) and ((_col1 >= 1) or (_col4 >= 1)) and ((_col3 > 0) or (_col1 >= 0)))
-                      Merge Join Operator [MERGEJOIN_50] (rows=3 width=20)
-                        Conds:RS_25._col0=RS_26._col0(Inner),RS_26._col0=RS_27._col0(Inner),Output:["_col1","_col3","_col4","_col6"]
-                      <-Map 1 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_25]
-                          PartitionCols:_col0
-                          Select Operator [SEL_2] (rows=18 width=84)
-                            Output:["_col0","_col1"]
-                            Filter Operator [FIL_47] (rows=18 width=84)
-                              predicate:((c_int > 0) and key is not null)
-                              TableScan [TS_0] (rows=20 width=84)
-                                default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
-                      <-Reducer 10 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_27]
-                          PartitionCols:_col0
-                          Select Operator [SEL_23] (rows=1 width=89)
-                            Output:["_col0","_col1"]
-                          <-Reducer 9 [SIMPLE_EDGE] llap
-                            SHUFFLE [RS_22]
-                              Select Operator [SEL_20] (rows=1 width=105)
-                                Output:["_col0","_col1","_col2","_col5"]
-                                Group By Operator [GBY_19] (rows=1 width=101)
-                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                                <-Map 8 [SIMPLE_EDGE] llap
-                                  SHUFFLE [RS_18]
-                                    PartitionCols:_col0, _col1, _col2
-                                    Group By Operator [GBY_17] (rows=1 width=101)
-                                      Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                      Filter Operator [FIL_49] (rows=2 width=93)
-                                        predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                        TableScan [TS_14] (rows=20 width=88)
-                                          default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-                      <-Reducer 7 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_26]
-                          PartitionCols:_col0
-                          Select Operator [SEL_12] (rows=1 width=97)
-                            Output:["_col0","_col1","_col2"]
-                          <-Reducer 6 [SIMPLE_EDGE] llap
-                            SHUFFLE [RS_11]
-                              Select Operator [SEL_9] (rows=1 width=105)
-                                Output:["_col0","_col1","_col2","_col5"]
-                                Group By Operator [GBY_8] (rows=1 width=101)
-                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                                <-Map 5 [SIMPLE_EDGE] llap
-                                  SHUFFLE [RS_7]
-                                    PartitionCols:_col0, _col1, _col2
-                                    Group By Operator [GBY_6] (rows=1 width=101)
-                                      Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                      Filter Operator [FIL_48] (rows=2 width=93)
-                                        predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                        TableScan [TS_3] (rows=20 width=88)
-                                          default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                    Merge Join Operator [MERGEJOIN_46] (rows=1 width=20)
+                      Conds:RS_25._col0=RS_26._col0(Inner),RS_26._col0=RS_27._col0(Inner),Output:["_col1","_col3","_col4","_col6"],residual filter predicates:{((_col3 > 0) or (_col1 >= 0))} {((_col1 >= 1) or (_col4 >= 1))} {((UDFToLong(_col1) + _col4) >= 0)} {((_col3 + _col6) >= 0)}
+                    <-Map 1 [SIMPLE_EDGE] llap
+                      SHUFFLE [RS_25]
+                        PartitionCols:_col0
+                        Select Operator [SEL_2] (rows=18 width=84)
+                          Output:["_col0","_col1"]
+                          Filter Operator [FIL_43] (rows=18 width=84)
+                            predicate:((c_int > 0) and key is not null)
+                            TableScan [TS_0] (rows=20 width=84)
+                              default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+                    <-Reducer 10 [SIMPLE_EDGE] llap
+                      SHUFFLE [RS_27]
+                        PartitionCols:_col0
+                        Select Operator [SEL_23] (rows=1 width=89)
+                          Output:["_col0","_col1"]
+                        <-Reducer 9 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_22]
+                            Select Operator [SEL_20] (rows=1 width=105)
+                              Output:["_col0","_col1","_col2","_col5"]
+                              Group By Operator [GBY_19] (rows=1 width=101)
+                                Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                              <-Map 8 [SIMPLE_EDGE] llap
+                                SHUFFLE [RS_18]
+                                  PartitionCols:_col0, _col1, _col2
+                                  Group By Operator [GBY_17] (rows=1 width=101)
+                                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                    Filter Operator [FIL_45] (rows=2 width=93)
+                                      predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                                      TableScan [TS_14] (rows=20 width=88)
+                                        default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                    <-Reducer 7 [SIMPLE_EDGE] llap
+                      SHUFFLE [RS_26]
+                        PartitionCols:_col0
+                        Select Operator [SEL_12] (rows=1 width=97)
+                          Output:["_col0","_col1","_col2"]
+                        <-Reducer 6 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_11]
+                            Select Operator [SEL_9] (rows=1 width=105)
+                              Output:["_col0","_col1","_col2","_col5"]
+                              Group By Operator [GBY_8] (rows=1 width=101)
+                                Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                              <-Map 5 [SIMPLE_EDGE] llap
+                                SHUFFLE [RS_7]
+                                  PartitionCols:_col0, _col1, _col2
+                                  Group By Operator [GBY_6] (rows=1 width=101)
+                                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                    Filter Operator [FIL_44] (rows=2 width=93)
+                                      predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                                      TableScan [TS_3] (rows=20 width=88)
+                                        default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
 
 PREHOOK: query: explain select cbo_t3.c_int, c, count(*) from (select key as a, c_int+1 as b, sum(c_int) as c from cbo_t1 where (cbo_t1.c_int + 1 >= 0) and (cbo_t1.c_int > 0 or cbo_t1.c_float >= 0)  group by c_float, cbo_t1.c_int, key having cbo_t1.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0) cbo_t1 join (select key as p, c_int+1 as q, sum(c_int) as r from cbo_t2 where (cbo_t2.c_int + 1 >= 0) and (cbo_t2.c_int > 0 or cbo_t2.c_float >= 0)  group by c_float, cbo_t2.c_int, key having cbo_t2.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0) cbo_t2 on cbo_t1.a=p join cbo_t3 on cbo_t1.a=key where (b + cbo_t2.q >= 0) and (b > 0 or c_int >= 0) group by cbo_t3.c_int, c
 PREHOOK: type: QUERY
@@ -696,61 +688,59 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 3 llap
-      File Output Operator [FS_30]
-        Group By Operator [GBY_28] (rows=1 width=20)
+      File Output Operator [FS_28]
+        Group By Operator [GBY_26] (rows=1 width=20)
           Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1
         <-Reducer 2 [SIMPLE_EDGE] llap
-          SHUFFLE [RS_27]
+          SHUFFLE [RS_25]
             PartitionCols:_col0, _col1
-            Group By Operator [GBY_26] (rows=1 width=20)
+            Group By Operator [GBY_24] (rows=1 width=20)
               Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col1, _col4
-              Select Operator [SEL_25] (rows=1 width=20)
+              Select Operator [SEL_23] (rows=1 width=20)
                 Output:["_col1","_col4"]
-                Filter Operator [FIL_23] (rows=1 width=20)
-                  predicate:(((_col3 + _col6) >= 0) and ((_col3 > 0) or (_col1 >= 0)))
-                  Merge Join Operator [MERGEJOIN_40] (rows=3 width=20)
-                    Conds:RS_19._col0=RS_20._col0(Inner),RS_20._col0=RS_21._col0(Inner),Output:["_col1","_col3","_col4","_col6"]
-                  <-Map 1 [SIMPLE_EDGE] llap
-                    SHUFFLE [RS_19]
-                      PartitionCols:_col0
-                      Select Operator [SEL_2] (rows=18 width=84)
-                        Output:["_col0","_col1"]
-                        Filter Operator [FIL_37] (rows=18 width=84)
-                          predicate:key is not null
-                          TableScan [TS_0] (rows=20 width=84)
-                            default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
-                  <-Reducer 5 [SIMPLE_EDGE] llap
-                    SHUFFLE [RS_20]
-                      PartitionCols:_col0
-                      Select Operator [SEL_9] (rows=1 width=97)
-                        Output:["_col0","_col1","_col2"]
-                        Group By Operator [GBY_8] (rows=1 width=101)
-                          Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                        <-Map 4 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_7]
-                            PartitionCols:_col0, _col1, _col2
-                            Group By Operator [GBY_6] (rows=1 width=101)
-                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                              Filter Operator [FIL_38] (rows=2 width=93)
-                                predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                TableScan [TS_3] (rows=20 width=88)
-                                  default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-                  <-Reducer 7 [SIMPLE_EDGE] llap
-                    SHUFFLE [RS_21]
-                      PartitionCols:_col0
-                      Select Operator [SEL_17] (rows=1 width=89)
-                        Output:["_col0","_col1"]
-                        Group By Operator [GBY_16] (rows=1 width=93)
-                          Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2
-                        <-Map 6 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_15]
-                            PartitionCols:_col0, _col1, _col2
-                            Group By Operator [GBY_14] (rows=1 width=93)
-                              Output:["_col0","_col1","_col2"],keys:key, c_int, c_float
-                              Filter Operator [FIL_39] (rows=2 width=93)
-                                predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
-                                TableScan [TS_11] (rows=20 width=88)
-                                  default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                Merge Join Operator [MERGEJOIN_38] (rows=1 width=20)
+                  Conds:RS_19._col0=RS_20._col0(Inner),RS_20._col0=RS_21._col0(Inner),Output:["_col1","_col3","_col4","_col6"],residual filter predicates:{((_col3 > 0) or (_col1 >= 0))} {((_col3 + _col6) >= 0)}
+                <-Map 1 [SIMPLE_EDGE] llap
+                  SHUFFLE [RS_19]
+                    PartitionCols:_col0
+                    Select Operator [SEL_2] (rows=18 width=84)
+                      Output:["_col0","_col1"]
+                      Filter Operator [FIL_35] (rows=18 width=84)
+                        predicate:key is not null
+                        TableScan [TS_0] (rows=20 width=84)
+                          default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+                <-Reducer 5 [SIMPLE_EDGE] llap
+                  SHUFFLE [RS_20]
+                    PartitionCols:_col0
+                    Select Operator [SEL_9] (rows=1 width=97)
+                      Output:["_col0","_col1","_col2"]
+                      Group By Operator [GBY_8] (rows=1 width=101)
+                        Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                      <-Map 4 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_7]
+                          PartitionCols:_col0, _col1, _col2
+                          Group By Operator [GBY_6] (rows=1 width=101)
+                            Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                            Filter Operator [FIL_36] (rows=2 width=93)
+                              predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                              TableScan [TS_3] (rows=20 width=88)
+                                default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                <-Reducer 7 [SIMPLE_EDGE] llap
+                  SHUFFLE [RS_21]
+                    PartitionCols:_col0
+                    Select Operator [SEL_17] (rows=1 width=89)
+                      Output:["_col0","_col1"]
+                      Group By Operator [GBY_16] (rows=1 width=93)
+                        Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2
+                      <-Map 6 [SIMPLE_EDGE] llap
+                        SHUFFLE [RS_15]
+                          PartitionCols:_col0, _col1, _col2
+                          Group By Operator [GBY_14] (rows=1 width=93)
+                            Output:["_col0","_col1","_col2"],keys:key, c_int, c_float
+                            Filter Operator [FIL_37] (rows=2 width=93)
+                              predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)) and (c_float > 0) and ((c_int >= 1) or (c_float >= 1)) and ((UDFToFloat(c_int) + c_float) >= 0) and key is not null)
+                              TableScan [TS_11] (rows=20 width=88)
+                                default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
 
 PREHOOK: query: explain select unionsrc.key FROM (select 'tst1' as key, count(1) as value from src) unionsrc
 PREHOOK: type: QUERY
@@ -1132,40 +1122,38 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 2 llap
-      File Output Operator [FS_16]
-        Select Operator [SEL_15] (rows=72 width=101)
+      File Output Operator [FS_14]
+        Select Operator [SEL_13] (rows=72 width=101)
           Output:["_col0","_col1","_col2","_col3","_col4"]
-          Filter Operator [FIL_13] (rows=72 width=101)
-            predicate:(((_col1 > 0) or (_col6 >= 0)) and ((_col1 + _col4) = 2))
-            Merge Join Operator [MERGEJOIN_26] (rows=145 width=101)
-              Conds:RS_9._col0=RS_10._col0(Inner),RS_9._col0=RS_11._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6"]
-            <-Map 1 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_9]
-                PartitionCols:_col0
-                Select Operator [SEL_2] (rows=9 width=93)
-                  Output:["_col0","_col1","_col2"]
-                  Filter Operator [FIL_23] (rows=9 width=93)
-                    predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
-                    TableScan [TS_0] (rows=20 width=88)
-                      default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-            <-Map 3 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_10]
-                PartitionCols:_col0
-                Select Operator [SEL_5] (rows=9 width=89)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_24] (rows=9 width=93)
-                    predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
-                    TableScan [TS_3] (rows=20 width=88)
-                      default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-            <-Map 4 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_11]
-                PartitionCols:_col0
-                Select Operator [SEL_8] (rows=18 width=84)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_25] (rows=18 width=84)
-                    predicate:key is not null
-                    TableScan [TS_6] (rows=20 width=84)
-                      default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+          Merge Join Operator [MERGEJOIN_24] (rows=72 width=101)
+            Conds:RS_9._col0=RS_10._col0(Inner),RS_9._col0=RS_11._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6"],residual filter predicates:{((_col1 + _col4) = 2)} {((_col1 > 0) or (_col6 >= 0))}
+          <-Map 1 [SIMPLE_EDGE] llap
+            SHUFFLE [RS_9]
+              PartitionCols:_col0
+              Select Operator [SEL_2] (rows=9 width=93)
+                Output:["_col0","_col1","_col2"]
+                Filter Operator [FIL_21] (rows=9 width=93)
+                  predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
+                  TableScan [TS_0] (rows=20 width=88)
+                    default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+          <-Map 3 [SIMPLE_EDGE] llap
+            SHUFFLE [RS_10]
+              PartitionCols:_col0
+              Select Operator [SEL_5] (rows=9 width=89)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_22] (rows=9 width=93)
+                  predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
+                  TableScan [TS_3] (rows=20 width=88)
+                    default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+          <-Map 4 [SIMPLE_EDGE] llap
+            SHUFFLE [RS_11]
+              PartitionCols:_col0
+              Select Operator [SEL_8] (rows=18 width=84)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_23] (rows=18 width=84)
+                  predicate:key is not null
+                  TableScan [TS_6] (rows=20 width=84)
+                    default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
 
 PREHOOK: query: explain select * from (select q, b, cbo_t2.p, cbo_t1.c, cbo_t3.c_int from (select key as a, c_int as b, cbo_t1.c_float as c from cbo_t1  where (cbo_t1.c_int + 1 == 2) and (cbo_t1.c_int > 0 or cbo_t1.c_float >= 0)) cbo_t1 right outer join (select cbo_t2.key as p, cbo_t2.c_int as q, c_float as r from cbo_t2  where (cbo_t2.c_int + 1 == 2) and (cbo_t2.c_int > 0 or cbo_t2.c_float >= 0)) cbo_t2 on cbo_t1.a=p right outer join cbo_t3 on cbo_t1.a=key where (b + cbo_t2.q == 2) and (b > 0 or c_int >= 0)) R where  (q + 1 = 2) and (R.b > 0 or c_int >= 0)
 PREHOOK: type: QUERY
@@ -1181,40 +1169,38 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 2 llap
-      File Output Operator [FS_16]
-        Select Operator [SEL_15] (rows=72 width=101)
+      File Output Operator [FS_14]
+        Select Operator [SEL_13] (rows=72 width=101)
           Output:["_col0","_col1","_col2","_col3","_col4"]
-          Filter Operator [FIL_13] (rows=72 width=101)
-            predicate:(((_col1 > 0) or (_col6 >= 0)) and ((_col1 + _col4) = 2))
-            Merge Join Operator [MERGEJOIN_26] (rows=145 width=101)
-              Conds:RS_9._col0=RS_10._col0(Inner),RS_9._col0=RS_11._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6"]
-            <-Map 1 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_9]
-                PartitionCols:_col0
-                Select Operator [SEL_2] (rows=9 width=93)
-                  Output:["_col0","_col1","_col2"]
-                  Filter Operator [FIL_23] (rows=9 width=93)
-                    predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
-                    TableScan [TS_0] (rows=20 width=88)
-                      default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-            <-Map 3 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_10]
-                PartitionCols:_col0
-                Select Operator [SEL_5] (rows=9 width=89)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_24] (rows=9 width=93)
-                    predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
-                    TableScan [TS_3] (rows=20 width=88)
-                      default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-            <-Map 4 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_11]
-                PartitionCols:_col0
-                Select Operator [SEL_8] (rows=18 width=84)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_25] (rows=18 width=84)
-                    predicate:key is not null
-                    TableScan [TS_6] (rows=20 width=84)
-                      default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+          Merge Join Operator [MERGEJOIN_24] (rows=72 width=101)
+            Conds:RS_9._col0=RS_10._col0(Inner),RS_9._col0=RS_11._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6"],residual filter predicates:{((_col1 + _col4) = 2)} {((_col1 > 0) or (_col6 >= 0))}
+          <-Map 1 [SIMPLE_EDGE] llap
+            SHUFFLE [RS_9]
+              PartitionCols:_col0
+              Select Operator [SEL_2] (rows=9 width=93)
+                Output:["_col0","_col1","_col2"]
+                Filter Operator [FIL_21] (rows=9 width=93)
+                  predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
+                  TableScan [TS_0] (rows=20 width=88)
+                    default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+          <-Map 3 [SIMPLE_EDGE] llap
+            SHUFFLE [RS_10]
+              PartitionCols:_col0
+              Select Operator [SEL_5] (rows=9 width=89)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_22] (rows=9 width=93)
+                  predicate:(((c_int + 1) = 2) and ((c_int > 0) or (c_float >= 0)) and key is not null)
+                  TableScan [TS_3] (rows=20 width=88)
+                    default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+          <-Map 4 [SIMPLE_EDGE] llap
+            SHUFFLE [RS_11]
+              PartitionCols:_col0
+              Select Operator [SEL_8] (rows=18 width=84)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_23] (rows=18 width=84)
+                  predicate:key is not null
+                  TableScan [TS_6] (rows=20 width=84)
+                    default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
 
 PREHOOK: query: explain select key, (c_int+1)+2 as x, sum(c_int) from cbo_t1 group by c_float, cbo_t1.c_int, key order by x limit 1
 PREHOOK: type: QUERY
@@ -1372,85 +1358,83 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 6 llap
-      File Output Operator [FS_46]
-        Limit [LIM_44] (rows=1 width=28)
+      File Output Operator [FS_44]
+        Limit [LIM_42] (rows=1 width=28)
           Number of rows:5
-          Select Operator [SEL_43] (rows=1 width=28)
+          Select Operator [SEL_41] (rows=1 width=28)
             Output:["_col0","_col1","_col2"]
           <-Reducer 5 [SIMPLE_EDGE] llap
-            SHUFFLE [RS_42]
-              Select Operator [SEL_41] (rows=1 width=28)
+            SHUFFLE [RS_40]
+              Select Operator [SEL_39] (rows=1 width=28)
                 Output:["_col0","_col1","_col2","_col3"]
-                Group By Operator [GBY_40] (rows=1 width=20)
+                Group By Operator [GBY_38] (rows=1 width=20)
                   Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1
                 <-Reducer 4 [SIMPLE_EDGE] llap
-                  SHUFFLE [RS_39]
+                  SHUFFLE [RS_37]
                     PartitionCols:_col0, _col1
-                    Group By Operator [GBY_38] (rows=1 width=20)
+                    Group By Operator [GBY_36] (rows=1 width=20)
                       Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col4, _col6
-                      Select Operator [SEL_37] (rows=3 width=20)
+                      Select Operator [SEL_35] (rows=2 width=20)
                         Output:["_col4","_col6"]
-                        Filter Operator [FIL_35] (rows=3 width=20)
-                          predicate:(((_col3 > 0) or (_col6 >= 0)) and ((_col3 + _col1) >= 0))
-                          Merge Join Operator [MERGEJOIN_58] (rows=7 width=20)
-                            Conds:RS_31._col0=RS_32._col0(Inner),RS_32._col0=RS_33._col0(Inner),Output:["_col1","_col3","_col4","_col6"]
-                          <-Map 10 [SIMPLE_EDGE] llap
-                            SHUFFLE [RS_33]
-                              PartitionCols:_col0
-                              Select Operator [SEL_30] (rows=18 width=84)
-                                Output:["_col0","_col1"]
-                                Filter Operator [FIL_57] (rows=18 width=84)
-                                  predicate:key is not null
-                                  TableScan [TS_28] (rows=20 width=84)
-                                    default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
-                          <-Reducer 3 [SIMPLE_EDGE] llap
-                            SHUFFLE [RS_31]
-                              PartitionCols:_col0
-                              Filter Operator [FIL_12] (rows=2 width=105)
-                                predicate:_col0 is not null
-                                Limit [LIM_10] (rows=3 width=105)
-                                  Number of rows:5
-                                  Select Operator [SEL_9] (rows=3 width=105)
-                                    Output:["_col0","_col1"]
-                                  <-Reducer 2 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_8]
-                                      Select Operator [SEL_6] (rows=3 width=105)
-                                        Output:["_col0","_col1","_col2","_col5"]
-                                        Group By Operator [GBY_5] (rows=3 width=101)
-                                          Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                                        <-Map 1 [SIMPLE_EDGE] llap
-                                          SHUFFLE [RS_4]
-                                            PartitionCols:_col0, _col1, _col2
-                                            Group By Operator [GBY_3] (rows=3 width=101)
-                                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                              Filter Operator [FIL_54] (rows=6 width=93)
-                                                predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)))
-                                                TableScan [TS_0] (rows=20 width=88)
-                                                  default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
-                          <-Reducer 9 [SIMPLE_EDGE] llap
-                            SHUFFLE [RS_32]
-                              PartitionCols:_col0
-                              Filter Operator [FIL_26] (rows=2 width=97)
-                                predicate:_col0 is not null
-                                Limit [LIM_24] (rows=3 width=97)
-                                  Number of rows:5
-                                  Select Operator [SEL_23] (rows=3 width=97)
-                                    Output:["_col0","_col1","_col2"]
-                                  <-Reducer 8 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_22]
-                                      Select Operator [SEL_20] (rows=3 width=97)
-                                        Output:["_col0","_col1","_col2"]
-                                        Group By Operator [GBY_19] (rows=3 width=101)
-                                          Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
-                                        <-Map 7 [SIMPLE_EDGE] llap
-                                          SHUFFLE [RS_18]
-                                            PartitionCols:_col0, _col1, _col2
-                                            Group By Operator [GBY_17] (rows=3 width=101)
-                                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
-                                              Filter Operator [FIL_56] (rows=6 width=93)
-                                                predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)))
-                                                TableScan [TS_14] (rows=20 width=88)
-                                                  default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                        Merge Join Operator [MERGEJOIN_56] (rows=2 width=20)
+                          Conds:RS_31._col0=RS_32._col0(Inner),RS_32._col0=RS_33._col0(Inner),Output:["_col1","_col3","_col4","_col6"],residual filter predicates:{((_col3 + _col1) >= 0)} {((_col3 > 0) or (_col6 >= 0))}
+                        <-Map 10 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_33]
+                            PartitionCols:_col0
+                            Select Operator [SEL_30] (rows=18 width=84)
+                              Output:["_col0","_col1"]
+                              Filter Operator [FIL_55] (rows=18 width=84)
+                                predicate:key is not null
+                                TableScan [TS_28] (rows=20 width=84)
+                                  default@cbo_t3,cbo_t3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int"]
+                        <-Reducer 3 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_31]
+                            PartitionCols:_col0
+                            Filter Operator [FIL_12] (rows=2 width=105)
+                              predicate:_col0 is not null
+                              Limit [LIM_10] (rows=3 width=105)
+                                Number of rows:5
+                                Select Operator [SEL_9] (rows=3 width=105)
+                                  Output:["_col0","_col1"]
+                                <-Reducer 2 [SIMPLE_EDGE] llap
+                                  SHUFFLE [RS_8]
+                                    Select Operator [SEL_6] (rows=3 width=105)
+                                      Output:["_col0","_col1","_col2","_col5"]
+                                      Group By Operator [GBY_5] (rows=3 width=101)
+                                        Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                                      <-Map 1 [SIMPLE_EDGE] llap
+                                        SHUFFLE [RS_4]
+                                          PartitionCols:_col0, _col1, _col2
+                                          Group By Operator [GBY_3] (rows=3 width=101)
+                                            Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                            Filter Operator [FIL_52] (rows=6 width=93)
+                                              predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)))
+                                              TableScan [TS_0] (rows=20 width=88)
+                                                default@cbo_t2,cbo_t2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
+                        <-Reducer 9 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_32]
+                            PartitionCols:_col0
+                            Filter Operator [FIL_26] (rows=2 width=97)
+                              predicate:_col0 is not null
+                              Limit [LIM_24] (rows=3 width=97)
+                                Number of rows:5
+                                Select Operator [SEL_23] (rows=3 width=97)
+                                  Output:["_col0","_col1","_col2"]
+                                <-Reducer 8 [SIMPLE_EDGE] llap
+                                  SHUFFLE [RS_22]
+                                    Select Operator [SEL_20] (rows=3 width=97)
+                                      Output:["_col0","_col1","_col2"]
+                                      Group By Operator [GBY_19] (rows=3 width=101)
+                                        Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                                      <-Map 7 [SIMPLE_EDGE] llap
+                                        SHUFFLE [RS_18]
+                                          PartitionCols:_col0, _col1, _col2
+                                          Group By Operator [GBY_17] (rows=3 width=101)
+                                            Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(c_int)"],keys:key, c_int, c_float
+                                            Filter Operator [FIL_54] (rows=6 width=93)
+                                              predicate:(((c_int + 1) >= 0) and ((c_int > 0) or (c_float >= 0)))
+                                              TableScan [TS_14] (rows=20 width=88)
+                                                default@cbo_t1,cbo_t1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","c_int","c_float"]
 
 PREHOOK: query: explain select cbo_t1.c_int           from cbo_t1 left semi join   cbo_t2 on cbo_t1.key=cbo_t2.key where (cbo_t1.c_int + 1 == 2) and (cbo_t1.c_int > 0 or cbo_t1.c_float >= 0)
 PREHOOK: type: QUERY

http://git-wip-us.apache.org/repos/asf/hive/blob/94e92858/ql/src/test/results/clientpositive/llap/lineage3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/lineage3.q.out b/ql/src/test/results/clientpositive/llap/lineage3.q.out
index 25f0439..2c53bec 100644
--- a/ql/src/test/results/clientpositive/llap/lineage3.q.out
+++ b/ql/src/test/results/clientpositive/llap/lineage3.q.out
@@ -135,7 +135,7 @@ and x.ctinyint + length(c.cstring2) < 1000
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-{"version":"1.0","engine":"tez","database":"default","hash":"3a12ad24b2622a8958df12d0bdc60f8a","queryText":"select x.ctinyint, x.cint, c.cbigint-100, c.cstring1\nfrom alltypesorc c\njoin (\n   select a.ctinyint ctinyint, b.cint cint\n   from (select * from alltypesorc a where cboolean1=false) a\n   join alltypesorc b on (a.cint = b.cbigint - 224870380)\n ) x on (x.cint = c.cint)\nwhere x.ctinyint > 10\nand x.cint < 4.5\nand x.ctinyint + length(c.cstring2) < 1000","edges":[{"sources":[4],"targets":[0],"edgeType":"PROJECTION"},{"sources":[5],"targets":[1],"edgeType":"PROJECTION"},{"sources":[6],"targets":[2],"expression":"(c.cbigint - 100)","edgeType":"PROJECTION"},{"sources":[7],"targets":[3],"edgeType":"PROJECTION"},{"sources":[5],"targets":[0,1,2,3],"expression":"(CAST( c.cint AS decimal(11,1)) < 4.5)","edgeType":"PREDICATE"},{"sources":[5],"targets":[0,1,2,3],"expression":"(c.cint = b.cint)","edgeType":"PREDICATE"},{"sources":[5,6],"targets":[0,1,2,3],"expression":"((CAST( b.cint 
 AS decimal(11,1)) < 4.5) and b.cbigint is not null)","edgeType":"PREDICATE"},{"sources":[6,5],"targets":[0,1,2,3],"expression":"((b.cbigint - 224870380) = UDFToLong(a.cint))","edgeType":"PREDICATE"},{"sources":[8,4,5],"targets":[0,1,2,3],"expression":"((a.cboolean1 = false) and (a.ctinyint > 10) and a.cint is not null)","edgeType":"PREDICATE"},{"sources":[4,9],"targets":[0,1,2,3],"expression":"((UDFToInteger(a.ctinyint) + length(c.cstring2)) < 1000)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"x.ctinyint"},{"id":1,"vertexType":"COLUMN","vertexId":"x.cint"},{"id":2,"vertexType":"COLUMN","vertexId":"_c2"},{"id":3,"vertexType":"COLUMN","vertexId":"c.cstring1"},{"id":4,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":5,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":6,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cbigint"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":8,"
 vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"},{"id":9,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring2"}]}
+{"version":"1.0","engine":"tez","database":"default","hash":"3a12ad24b2622a8958df12d0bdc60f8a","queryText":"select x.ctinyint, x.cint, c.cbigint-100, c.cstring1\nfrom alltypesorc c\njoin (\n   select a.ctinyint ctinyint, b.cint cint\n   from (select * from alltypesorc a where cboolean1=false) a\n   join alltypesorc b on (a.cint = b.cbigint - 224870380)\n ) x on (x.cint = c.cint)\nwhere x.ctinyint > 10\nand x.cint < 4.5\nand x.ctinyint + length(c.cstring2) < 1000","edges":[{"sources":[4],"targets":[0],"edgeType":"PROJECTION"},{"sources":[5],"targets":[1],"edgeType":"PROJECTION"},{"sources":[6],"targets":[2],"expression":"(c.cbigint - 100)","edgeType":"PROJECTION"},{"sources":[7],"targets":[3],"edgeType":"PROJECTION"},{"sources":[5],"targets":[0,1,2,3],"expression":"(CAST( c.cint AS decimal(11,1)) < 4.5)","edgeType":"PREDICATE"},{"sources":[5],"targets":[0,1,2,3],"expression":"(c.cint = b.cint)","edgeType":"PREDICATE"},{"sources":[5,6],"targets":[0,1,2,3],"expression":"((CAST( b.cint 
 AS decimal(11,1)) < 4.5) and b.cbigint is not null)","edgeType":"PREDICATE"},{"sources":[6,5],"targets":[0,1,2,3],"expression":"((b.cbigint - 224870380) = UDFToLong(a.cint))","edgeType":"PREDICATE"},{"sources":[8,4,5],"targets":[0,1,2,3],"expression":"((a.cboolean1 = false) and (a.ctinyint > 10) and a.cint is not null)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"x.ctinyint"},{"id":1,"vertexType":"COLUMN","vertexId":"x.cint"},{"id":2,"vertexType":"COLUMN","vertexId":"_c2"},{"id":3,"vertexType":"COLUMN","vertexId":"c.cstring1"},{"id":4,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":5,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":6,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cbigint"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":8,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"}]}
 11	-654374827	857266369	OEfPnHnIYueoup
 PREHOOK: query: select c1, x2, x3
 from (
@@ -297,7 +297,7 @@ PREHOOK: type: CREATEVIEW
 PREHOOK: Input: default@alltypesorc
 PREHOOK: Output: database:default
 PREHOOK: Output: default@dest_v3
-{"version":"1.0","engine":"tez","database":"default","hash":"a0c2481ce1c24895a43a950f93a10da7","queryText":"create view dest_v3 (a1, a2, a3, a4, a5, a6, a7) as\n  select x.csmallint, x.cbigint bint1, x.ctinyint, c.cbigint bint2, x.cint, x.cfloat, c.cstring1\n  from alltypesorc c\n  join (\n     select a.csmallint csmallint, a.ctinyint ctinyint, a.cstring2 cstring2,\n           a.cint cint, a.cstring1 ctring1, b.cfloat cfloat, b.cbigint cbigint\n     from ( select * from alltypesorc a where cboolean1=true ) a\n     join alltypesorc b on (a.csmallint = b.cint)\n   ) x on (x.ctinyint = c.cbigint)\n  where x.csmallint=11\n  and x.cint > 899\n  and x.cfloat > 4.5\n  and c.cstring1 < '7'\n  and x.cint + x.cfloat + length(c.cstring1) < 1000","edges":[{"sources":[],"targets":[0],"expression":"11","edgeType":"PROJECTION"},{"sources":[7],"targets":[1,2],"edgeType":"PROJECTION"},{"sources":[8],"targets":[3],"edgeType":"PROJECTION"},{"sources":[9],"targets":[4],"edgeType":"PROJECTION"},{"source
 s":[10],"targets":[5],"edgeType":"PROJECTION"},{"sources":[11],"targets":[6],"edgeType":"PROJECTION"},{"sources":[11,7],"targets":[0,1,3,2,4,5,6],"expression":"((c.cstring1 < '7') and c.cbigint is not null)","edgeType":"PREDICATE"},{"sources":[7,8],"targets":[0,1,3,2,4,5,6],"expression":"(c.cbigint = UDFToLong(a.ctinyint))","edgeType":"PREDICATE"},{"sources":[10,9],"targets":[0,1,3,2,4,5,6],"expression":"((b.cfloat > 4.5) and (11 = b.cint))","edgeType":"PREDICATE"},{"sources":[12,13,9,8],"targets":[0,1,3,2,4,5,6],"expression":"(a.cboolean1 and (a.csmallint = 11) and (a.cint > 899) and a.ctinyint is not null)","edgeType":"PREDICATE"},{"sources":[9,10,11],"targets":[0,1,3,2,4,5,6],"expression":"(((UDFToFloat(a.cint) + b.cfloat) + UDFToFloat(length(c.cstring1))) < 1000)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"default.dest_v3.csmallint"},{"id":1,"vertexType":"COLUMN","vertexId":"default.dest_v3.bint1"},{"id":2,"vertexType":"COLUMN","vertexId":"def
 ault.dest_v3.bint2"},{"id":3,"vertexType":"COLUMN","vertexId":"default.dest_v3.ctinyint"},{"id":4,"vertexType":"COLUMN","vertexId":"default.dest_v3.cint"},{"id":5,"vertexType":"COLUMN","vertexId":"default.dest_v3.cfloat"},{"id":6,"vertexType":"COLUMN","vertexId":"default.dest_v3.cstring1"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cbigint"},{"id":8,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":9,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":10,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cfloat"},{"id":11,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":12,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"},{"id":13,"vertexType":"COLUMN","vertexId":"default.alltypesorc.csmallint"}]}
+{"version":"1.0","engine":"tez","database":"default","hash":"a0c2481ce1c24895a43a950f93a10da7","queryText":"create view dest_v3 (a1, a2, a3, a4, a5, a6, a7) as\n  select x.csmallint, x.cbigint bint1, x.ctinyint, c.cbigint bint2, x.cint, x.cfloat, c.cstring1\n  from alltypesorc c\n  join (\n     select a.csmallint csmallint, a.ctinyint ctinyint, a.cstring2 cstring2,\n           a.cint cint, a.cstring1 ctring1, b.cfloat cfloat, b.cbigint cbigint\n     from ( select * from alltypesorc a where cboolean1=true ) a\n     join alltypesorc b on (a.csmallint = b.cint)\n   ) x on (x.ctinyint = c.cbigint)\n  where x.csmallint=11\n  and x.cint > 899\n  and x.cfloat > 4.5\n  and c.cstring1 < '7'\n  and x.cint + x.cfloat + length(c.cstring1) < 1000","edges":[{"sources":[],"targets":[0],"expression":"11","edgeType":"PROJECTION"},{"sources":[7],"targets":[1,2],"edgeType":"PROJECTION"},{"sources":[8],"targets":[3],"edgeType":"PROJECTION"},{"sources":[9],"targets":[4],"edgeType":"PROJECTION"},{"source
 s":[10],"targets":[5],"edgeType":"PROJECTION"},{"sources":[11],"targets":[6],"edgeType":"PROJECTION"},{"sources":[11,7],"targets":[0,1,3,2,4,5,6],"expression":"((c.cstring1 < '7') and c.cbigint is not null)","edgeType":"PREDICATE"},{"sources":[7,8],"targets":[0,1,3,2,4,5,6],"expression":"(c.cbigint = UDFToLong(a.ctinyint))","edgeType":"PREDICATE"},{"sources":[10,9],"targets":[0,1,3,2,4,5,6],"expression":"((b.cfloat > 4.5) and (11 = b.cint))","edgeType":"PREDICATE"},{"sources":[12,13,9,8],"targets":[0,1,3,2,4,5,6],"expression":"(a.cboolean1 and (a.csmallint = 11) and (a.cint > 899) and a.ctinyint is not null)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"default.dest_v3.csmallint"},{"id":1,"vertexType":"COLUMN","vertexId":"default.dest_v3.bint1"},{"id":2,"vertexType":"COLUMN","vertexId":"default.dest_v3.bint2"},{"id":3,"vertexType":"COLUMN","vertexId":"default.dest_v3.ctinyint"},{"id":4,"vertexType":"COLUMN","vertexId":"default.dest_v3.cint"},{"id":5
 ,"vertexType":"COLUMN","vertexId":"default.dest_v3.cfloat"},{"id":6,"vertexType":"COLUMN","vertexId":"default.dest_v3.cstring1"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cbigint"},{"id":8,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":9,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":10,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cfloat"},{"id":11,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":12,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"},{"id":13,"vertexType":"COLUMN","vertexId":"default.alltypesorc.csmallint"}]}
 PREHOOK: query: alter view dest_v3 as
   select * from (
     select sum(a.ctinyint) over (partition by a.csmallint order by a.csmallint) a,

http://git-wip-us.apache.org/repos/asf/hive/blob/94e92858/ql/src/test/results/clientpositive/llap/subquery_in.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_in.q.out b/ql/src/test/results/clientpositive/llap/subquery_in.q.out
index 1f9c9e4..f2bc558 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_in.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_in.q.out
@@ -4272,7 +4272,7 @@ POSTHOOK: Input: default@part
 85768	almond antique chartreuse lavender yellow	Manufacturer#1	Brand#12	LARGE BRUSHED STEEL	34	SM BAG	1753.76	refull
 86428	almond aquamarine burnished black steel	Manufacturer#1	Brand#12	STANDARD ANODIZED STEEL	28	WRAP BAG	1414.42	arefully 
 90681	almond antique chartreuse khaki white	Manufacturer#3	Brand#31	MEDIUM BURNISHED TIN	17	SM CASE	1671.68	are slyly after the sl
-Warning: Shuffle Join MERGEJOIN[30][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
+Warning: Shuffle Join MERGEJOIN[29][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
 PREHOOK: query: explain select * from part where p_size in (select min(pp.p_size) from part pp where pp.p_partkey > part.p_partkey)
 PREHOOK: type: QUERY
 POSTHOOK: query: explain select * from part where p_size in (select min(pp.p_size) from part pp where pp.p_partkey > part.p_partkey)
@@ -4369,26 +4369,24 @@ STAGE PLANS:
                   0 
                   1 
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 338 Data size: 4056 Basic stats: COMPLETE Column stats: COMPLETE
-                Filter Operator
-                  predicate: (_col0 > _col2) (type: boolean)
+                residual filter predicates: {(_col0 > _col2)}
+                Statistics: Num rows: 112 Data size: 1344 Basic stats: COMPLETE Column stats: COMPLETE
+                Select Operator
+                  expressions: _col1 (type: int), _col2 (type: int)
+                  outputColumnNames: _col1, _col2
                   Statistics: Num rows: 112 Data size: 1344 Basic stats: COMPLETE Column stats: COMPLETE
-                  Select Operator
-                    expressions: _col1 (type: int), _col2 (type: int)
-                    outputColumnNames: _col1, _col2
-                    Statistics: Num rows: 112 Data size: 1344 Basic stats: COMPLETE Column stats: COMPLETE
-                    Group By Operator
-                      aggregations: min(_col1)
-                      keys: _col2 (type: int)
-                      mode: hash
-                      outputColumnNames: _col0, _col1
+                  Group By Operator
+                    aggregations: min(_col1)
+                    keys: _col2 (type: int)
+                    mode: hash
+                    outputColumnNames: _col0, _col1
+                    Statistics: Num rows: 8 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: int)
+                      sort order: +
+                      Map-reduce partition columns: _col0 (type: int)
                       Statistics: Num rows: 8 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: int)
-                        sort order: +
-                        Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 8 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
-                        value expressions: _col1 (type: int)
+                      value expressions: _col1 (type: int)
         Reducer 5 
             Execution mode: llap
             Reduce Operator Tree:
@@ -4426,7 +4424,7 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
-Warning: Shuffle Join MERGEJOIN[30][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
+Warning: Shuffle Join MERGEJOIN[29][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
 PREHOOK: query: select * from part where p_size in (select min(pp.p_size) from part pp where pp.p_partkey > part.p_partkey)
 PREHOOK: type: QUERY
 PREHOOK: Input: default@part

http://git-wip-us.apache.org/repos/asf/hive/blob/94e92858/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_notin.q.out b/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
index b4af915..7b9785f 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
@@ -7228,8 +7228,8 @@ PREHOOK: query: drop table t1
 PREHOOK: type: DROPTABLE
 POSTHOOK: query: drop table t1
 POSTHOOK: type: DROPTABLE
-Warning: Shuffle Join MERGEJOIN[57][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
-Warning: Shuffle Join MERGEJOIN[59][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 6' is a cross product
+Warning: Shuffle Join MERGEJOIN[55][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
+Warning: Shuffle Join MERGEJOIN[57][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 6' is a cross product
 PREHOOK: query: explain select *
 from src b
 where b.key not in
@@ -7395,26 +7395,24 @@ STAGE PLANS:
                   0 
                   1 
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 35524 Data size: 9555956 Basic stats: COMPLETE Column stats: COMPLETE
-                Filter Operator
-                  predicate: (_col2 > _col1) (type: boolean)
+                residual filter predicates: {(_col2 > _col1)}
+                Statistics: Num rows: 11841 Data size: 3185229 Basic stats: COMPLETE Column stats: COMPLETE
+                Select Operator
+                  expressions: _col0 (type: string), _col2 (type: string)
+                  outputColumnNames: _col0, _col2
                   Statistics: Num rows: 11841 Data size: 3185229 Basic stats: COMPLETE Column stats: COMPLETE
-                  Select Operator
-                    expressions: _col0 (type: string), _col2 (type: string)
-                    outputColumnNames: _col0, _col2
-                    Statistics: Num rows: 11841 Data size: 3185229 Basic stats: COMPLETE Column stats: COMPLETE
-                    Group By Operator
-                      aggregations: count(), count(_col0)
-                      keys: _col2 (type: string)
-                      mode: hash
-                      outputColumnNames: _col0, _col1, _col2
+                  Group By Operator
+                    aggregations: count(), count(_col0)
+                    keys: _col2 (type: string)
+                    mode: hash
+                    outputColumnNames: _col0, _col1, _col2
+                    Statistics: Num rows: 72 Data size: 7704 Basic stats: COMPLETE Column stats: COMPLETE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: string)
+                      sort order: +
+                      Map-reduce partition columns: _col0 (type: string)
                       Statistics: Num rows: 72 Data size: 7704 Basic stats: COMPLETE Column stats: COMPLETE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: string)
-                        sort order: +
-                        Map-reduce partition columns: _col0 (type: string)
-                        Statistics: Num rows: 72 Data size: 7704 Basic stats: COMPLETE Column stats: COMPLETE
-                        value expressions: _col1 (type: bigint), _col2 (type: bigint)
+                      value expressions: _col1 (type: bigint), _col2 (type: bigint)
         Reducer 5 
             Execution mode: llap
             Reduce Operator Tree:
@@ -7440,24 +7438,22 @@ STAGE PLANS:
                   0 
                   1 
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 35524 Data size: 9555956 Basic stats: COMPLETE Column stats: COMPLETE
-                Filter Operator
-                  predicate: (_col2 > _col1) (type: boolean)
+                residual filter predicates: {(_col2 > _col1)}
+                Statistics: Num rows: 11841 Data size: 3185229 Basic stats: COMPLETE Column stats: COMPLETE
+                Select Operator
+                  expressions: _col0 (type: string), _col2 (type: string)
+                  outputColumnNames: _col0, _col2
                   Statistics: Num rows: 11841 Data size: 3185229 Basic stats: COMPLETE Column stats: COMPLETE
-                  Select Operator
-                    expressions: _col0 (type: string), _col2 (type: string)
-                    outputColumnNames: _col0, _col2
-                    Statistics: Num rows: 11841 Data size: 3185229 Basic stats: COMPLETE Column stats: COMPLETE
-                    Group By Operator
-                      keys: _col0 (type: string), _col2 (type: string)
-                      mode: hash
-                      outputColumnNames: _col0, _col1
+                  Group By Operator
+                    keys: _col0 (type: string), _col2 (type: string)
+                    mode: hash
+                    outputColumnNames: _col0, _col1
+                    Statistics: Num rows: 1656 Data size: 294768 Basic stats: COMPLETE Column stats: COMPLETE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: string), _col1 (type: string)
+                      sort order: ++
+                      Map-reduce partition columns: _col0 (type: string), _col1 (type: string)
                       Statistics: Num rows: 1656 Data size: 294768 Basic stats: COMPLETE Column stats: COMPLETE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: string), _col1 (type: string)
-                        sort order: ++
-                        Map-reduce partition columns: _col0 (type: string), _col1 (type: string)
-                        Statistics: Num rows: 1656 Data size: 294768 Basic stats: COMPLETE Column stats: COMPLETE
         Reducer 7 
             Execution mode: llap
             Reduce Operator Tree:
@@ -7498,8 +7494,8 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
-Warning: Shuffle Join MERGEJOIN[57][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
-Warning: Shuffle Join MERGEJOIN[59][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 6' is a cross product
+Warning: Shuffle Join MERGEJOIN[55][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 4' is a cross product
+Warning: Shuffle Join MERGEJOIN[57][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 6' is a cross product
 PREHOOK: query: select *
 from src b
 where b.key not in