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 2018/10/24 23:12:35 UTC

[1/6] hive git commit: HIVE-20788: Extended SJ reduction may backtrack columns incorrectly when creating filters (Jesus Camacho Rodriguez, reviewed by Deepak Jaiswal)

Repository: hive
Updated Branches:
  refs/heads/master 94d499183 -> 3cbc13e92


http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/query24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query24.q.out b/ql/src/test/results/clientpositive/perf/tez/query24.q.out
index 902358a..43ece85 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query24.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query24.q.out
@@ -1,4 +1,4 @@
-Warning: Shuffle Join MERGEJOIN[290][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 8' is a cross product
+Warning: Shuffle Join MERGEJOIN[301][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product
 PREHOOK: query: explain
 with ssales as
 (select c_last_name
@@ -23,7 +23,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -79,7 +80,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -114,234 +116,242 @@ POSTHOOK: Output: hdfs://### HDFS PATH ###
 Plan optimized by CBO.
 
 Vertex dependency in root stage
-Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE)
-Map 24 <- Reducer 20 (BROADCAST_EDGE)
-Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE)
-Reducer 11 <- Map 9 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE)
-Reducer 12 <- Map 22 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE)
-Reducer 13 <- Map 23 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE)
-Reducer 14 <- Reducer 13 (SIMPLE_EDGE)
-Reducer 15 <- Reducer 14 (CUSTOM_SIMPLE_EDGE)
-Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE)
-Reducer 18 <- Map 16 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE)
-Reducer 19 <- Map 21 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE)
-Reducer 20 <- Map 16 (CUSTOM_SIMPLE_EDGE)
-Reducer 3 <- Map 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
-Reducer 4 <- Map 21 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
-Reducer 5 <- Map 22 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE)
-Reducer 6 <- Map 23 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE)
-Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
-Reducer 8 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE)
+Map 1 <- Reducer 16 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE)
+Map 24 <- Reducer 19 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE)
+Reducer 10 <- Map 23 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE)
+Reducer 11 <- Reducer 10 (SIMPLE_EDGE)
+Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE)
+Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE)
+Reducer 15 <- Map 22 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE)
+Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE)
+Reducer 17 <- Reducer 15 (CUSTOM_SIMPLE_EDGE)
+Reducer 18 <- Map 24 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE)
+Reducer 19 <- Reducer 15 (CUSTOM_SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+Reducer 20 <- Reducer 15 (CUSTOM_SIMPLE_EDGE)
+Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 4 <- Map 23 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (SIMPLE_EDGE)
+Reducer 6 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE)
+Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE)
+Reducer 9 <- Map 7 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
     limit:-1
     Stage-1
-      Reducer 8
-      File Output Operator [FS_91]
-        Select Operator [SEL_90] (rows=78393744 width=380)
+      Reducer 6
+      File Output Operator [FS_94]
+        Select Operator [SEL_93] (rows=1313165 width=380)
           Output:["_col0","_col1","_col2","_col3"]
-          Filter Operator [FIL_89] (rows=78393744 width=492)
+          Filter Operator [FIL_92] (rows=1313165 width=492)
             predicate:(_col3 > _col4)
-            Merge Join Operator [MERGEJOIN_290] (rows=235181232 width=492)
+            Merge Join Operator [MERGEJOIN_301] (rows=3939496 width=492)
               Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"]
-            <-Reducer 15 [CUSTOM_SIMPLE_EDGE] vectorized
-              PARTITION_ONLY_SHUFFLE [RS_345]
-                Select Operator [SEL_344] (rows=1 width=112)
+            <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized
+              PARTITION_ONLY_SHUFFLE [RS_351]
+                Select Operator [SEL_350] (rows=1 width=112)
                   Output:["_col0"]
-                  Group By Operator [GBY_343] (rows=1 width=120)
+                  Group By Operator [GBY_349] (rows=1 width=120)
                     Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"]
-                  <-Reducer 14 [CUSTOM_SIMPLE_EDGE] vectorized
-                    PARTITION_ONLY_SHUFFLE [RS_342]
-                      Group By Operator [GBY_341] (rows=1 width=120)
+                  <-Reducer 11 [CUSTOM_SIMPLE_EDGE] vectorized
+                    PARTITION_ONLY_SHUFFLE [RS_348]
+                      Group By Operator [GBY_347] (rows=1 width=120)
                         Output:["_col0","_col1"],aggregations:["sum(_col10)","count(_col10)"]
-                        Select Operator [SEL_340] (rows=2121289008973 width=932)
+                        Select Operator [SEL_346] (rows=576061174 width=932)
                           Output:["_col10"]
-                          Group By Operator [GBY_339] (rows=2121289008973 width=932)
+                          Group By Operator [GBY_345] (rows=576061174 width=932)
                             Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9
-                          <-Reducer 13 [SIMPLE_EDGE]
-                            SHUFFLE [RS_78]
+                          <-Reducer 10 [SIMPLE_EDGE]
+                            SHUFFLE [RS_81]
                               PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                              Group By Operator [GBY_77] (rows=2121289008973 width=932)
-                                Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col4)"],keys:_col11, _col12, _col6, _col8, _col15, _col16, _col17, _col18, _col19, _col22
-                                Merge Join Operator [MERGEJOIN_289] (rows=2121289008973 width=932)
-                                  Conds:RS_73._col9, _col13=RS_328._col1, upper(_col2)(Inner),Output:["_col4","_col6","_col8","_col11","_col12","_col15","_col16","_col17","_col18","_col19","_col22"]
+                              Group By Operator [GBY_80] (rows=576061174 width=932)
+                                Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col18)"],keys:_col11, _col12, _col1, _col5, _col7, _col20, _col21, _col22, _col23, _col24
+                                Merge Join Operator [MERGEJOIN_300] (rows=589731269 width=928)
+                                  Conds:RS_76._col14, _col17=RS_332._col0, _col1(Inner),Output:["_col1","_col5","_col7","_col11","_col12","_col18","_col20","_col21","_col22","_col23","_col24"]
                                 <-Map 23 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_328]
-                                    PartitionCols:_col1, upper(_col2)
-                                    Select Operator [SEL_326] (rows=40000000 width=272)
-                                      Output:["_col0","_col1","_col2"]
-                                      Filter Operator [FIL_325] (rows=40000000 width=272)
-                                        predicate:(ca_zip is not null and upper(ca_country) is not null)
-                                        TableScan [TS_15] (rows=40000000 width=272)
-                                          default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_state","ca_zip","ca_country"]
-                                <-Reducer 12 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_73]
-                                    PartitionCols:_col9, _col13
-                                    Merge Join Operator [MERGEJOIN_288] (rows=537799796 width=1023)
-                                      Conds:RS_70._col0, _col3=RS_324._col0, _col1(Inner),Output:["_col4","_col6","_col8","_col9","_col11","_col12","_col13","_col15","_col16","_col17","_col18","_col19"]
-                                    <-Map 22 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_324]
-                                        PartitionCols:_col0, _col1
-                                        Select Operator [SEL_322] (rows=57591150 width=8)
-                                          Output:["_col0","_col1"]
-                                          Filter Operator [FIL_321] (rows=57591150 width=8)
-                                            predicate:(sr_item_sk is not null and sr_ticket_number is not null)
-                                            TableScan [TS_12] (rows=57591150 width=8)
-                                              default@store_returns,store_returns,Tbl:COMPLETE,Col:COMPLETE,Output:["sr_item_sk","sr_ticket_number"]
-                                    <-Reducer 11 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_70]
-                                        PartitionCols:_col0, _col3
-                                        Merge Join Operator [MERGEJOIN_287] (rows=385681992 width=1029)
-                                          Conds:RS_67._col0=RS_297._col0(Inner),Output:["_col0","_col3","_col4","_col6","_col8","_col9","_col11","_col12","_col13","_col15","_col16","_col17","_col18","_col19"]
-                                        <-Map 9 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_297]
-                                            PartitionCols:_col0
-                                            Select Operator [SEL_294] (rows=462000 width=384)
-                                              Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
-                                              Filter Operator [FIL_292] (rows=462000 width=384)
-                                                predicate:i_item_sk is not null
-                                                TableScan [TS_3] (rows=462000 width=384)
-                                                  default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_current_price","i_size","i_color","i_units","i_manager_id"]
-                                        <-Reducer 19 [SIMPLE_EDGE]
-                                          SHUFFLE [RS_67]
-                                            PartitionCols:_col0
-                                            Merge Join Operator [MERGEJOIN_286] (rows=385681992 width=648)
-                                              Conds:RS_64._col1=RS_320._col0(Inner),Output:["_col0","_col3","_col4","_col6","_col8","_col9","_col11","_col12","_col13"]
-                                            <-Map 21 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_320]
-                                                PartitionCols:_col0
-                                                Select Operator [SEL_318] (rows=80000000 width=276)
-                                                  Output:["_col0","_col1","_col2","_col3"]
-                                                  Filter Operator [FIL_317] (rows=80000000 width=276)
-                                                    predicate:(c_birth_country is not null and c_customer_sk is not null)
-                                                    TableScan [TS_9] (rows=80000000 width=276)
-                                                      default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_first_name","c_last_name","c_birth_country"]
-                                            <-Reducer 18 [SIMPLE_EDGE]
-                                              SHUFFLE [RS_64]
-                                                PartitionCols:_col1
-                                                Merge Join Operator [MERGEJOIN_285] (rows=385681992 width=379)
-                                                  Conds:RS_338._col2=RS_306._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col6","_col8","_col9"]
-                                                <-Map 16 [SIMPLE_EDGE] vectorized
-                                                  SHUFFLE [RS_306]
-                                                    PartitionCols:_col0
-                                                    Select Operator [SEL_303] (rows=155 width=271)
-                                                      Output:["_col0","_col1","_col3","_col4"]
-                                                      Filter Operator [FIL_302] (rows=155 width=271)
-                                                        predicate:((s_market_id = 7) and s_store_sk is not null and s_zip is not null)
-                                                        TableScan [TS_6] (rows=1704 width=270)
-                                                          default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_store_name","s_market_id","s_state","s_zip"]
-                                                <-Map 24 [SIMPLE_EDGE] vectorized
-                                                  SHUFFLE [RS_338]
-                                                    PartitionCols:_col2
-                                                    Select Operator [SEL_337] (rows=525333486 width=122)
-                                                      Output:["_col0","_col1","_col2","_col3","_col4"]
-                                                      Filter Operator [FIL_336] (rows=525333486 width=122)
-                                                        predicate:((ss_store_sk BETWEEN DynamicValue(RS_62_store_s_store_sk_min) AND DynamicValue(RS_62_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_62_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_item_sk is not null and ss_store_sk is not null and ss_ticket_number is not null)
-                                                        TableScan [TS_43] (rows=575995635 width=122)
-                                                          default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"]
-                                                        <-Reducer 20 [BROADCAST_EDGE] vectorized
-                                                          BROADCAST [RS_335]
-                                                            Group By Operator [GBY_334] (rows=1 width=12)
-                                                              Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                            <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                              SHUFFLE [RS_311]
-                                                                Group By Operator [GBY_309] (rows=1 width=12)
-                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                  Select Operator [SEL_307] (rows=155 width=4)
-                                                                    Output:["_col0"]
-                                                                     Please refer to the previous Select Operator [SEL_303]
-            <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized
-              PARTITION_ONLY_SHUFFLE [RS_333]
-                Select Operator [SEL_332] (rows=235181232 width=380)
+                                  SHUFFLE [RS_332]
+                                    PartitionCols:_col0, _col1
+                                    Select Operator [SEL_330] (rows=57591150 width=8)
+                                      Output:["_col0","_col1"]
+                                      Filter Operator [FIL_329] (rows=57591150 width=8)
+                                        predicate:(sr_item_sk is not null and sr_ticket_number is not null)
+                                        TableScan [TS_23] (rows=57591150 width=8)
+                                          default@store_returns,store_returns,Tbl:COMPLETE,Col:COMPLETE,Output:["sr_item_sk","sr_ticket_number"]
+                                <-Reducer 9 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_76]
+                                    PartitionCols:_col14, _col17
+                                    Merge Join Operator [MERGEJOIN_299] (rows=576061174 width=936)
+                                      Conds:RS_73._col14=RS_308._col0(Inner),Output:["_col1","_col5","_col7","_col11","_col12","_col14","_col17","_col18","_col20","_col21","_col22","_col23","_col24"]
+                                    <-Map 7 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_308]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_305] (rows=462000 width=384)
+                                          Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+                                          Filter Operator [FIL_303] (rows=462000 width=384)
+                                            predicate:i_item_sk is not null
+                                            TableScan [TS_3] (rows=462000 width=384)
+                                              default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_current_price","i_size","i_color","i_units","i_manager_id"]
+                                    <-Reducer 18 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_73]
+                                        PartitionCols:_col14
+                                        Merge Join Operator [MERGEJOIN_298] (rows=576061174 width=555)
+                                          Conds:RS_70._col9, _col4=RS_344._col1, _col2(Inner),Output:["_col1","_col5","_col7","_col11","_col12","_col14","_col17","_col18"]
+                                        <-Reducer 15 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_70]
+                                            PartitionCols:_col9, _col4
+                                            Filter Operator [FIL_21] (rows=7276996 width=637)
+                                              predicate:(_col13 <> upper(_col3))
+                                              Merge Join Operator [MERGEJOIN_293] (rows=7276996 width=637)
+                                                Conds:RS_18._col0=RS_321._col1(Inner),Output:["_col1","_col3","_col4","_col5","_col7","_col9","_col11","_col12","_col13"]
+                                              <-Map 22 [SIMPLE_EDGE] vectorized
+                                                SHUFFLE [RS_321]
+                                                  PartitionCols:_col1
+                                                  Select Operator [SEL_320] (rows=80000000 width=280)
+                                                    Output:["_col0","_col1","_col2","_col3","_col4"]
+                                                    Filter Operator [FIL_319] (rows=80000000 width=280)
+                                                      predicate:(c_current_addr_sk is not null and c_customer_sk is not null)
+                                                      TableScan [TS_12] (rows=80000000 width=280)
+                                                        default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_addr_sk","c_first_name","c_last_name","c_birth_country"]
+                                              <-Reducer 14 [SIMPLE_EDGE]
+                                                SHUFFLE [RS_18]
+                                                  PartitionCols:_col0
+                                                  Merge Join Operator [MERGEJOIN_292] (rows=611379 width=365)
+                                                    Conds:RS_315._col2=RS_318._col4(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col7"]
+                                                  <-Map 13 [SIMPLE_EDGE] vectorized
+                                                    SHUFFLE [RS_315]
+                                                      PartitionCols:_col2
+                                                      Select Operator [SEL_314] (rows=40000000 width=276)
+                                                        Output:["_col0","_col1","_col2","_col3"]
+                                                        Filter Operator [FIL_313] (rows=40000000 width=276)
+                                                          predicate:(ca_address_sk is not null and ca_zip is not null)
+                                                          TableScan [TS_6] (rows=40000000 width=276)
+                                                            default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_state","ca_zip","ca_country"]
+                                                  <-Map 21 [SIMPLE_EDGE] vectorized
+                                                    SHUFFLE [RS_318]
+                                                      PartitionCols:_col4
+                                                      Select Operator [SEL_317] (rows=155 width=271)
+                                                        Output:["_col0","_col1","_col3","_col4"]
+                                                        Filter Operator [FIL_316] (rows=155 width=271)
+                                                          predicate:((s_market_id = 7) and s_store_sk is not null and s_zip is not null)
+                                                          TableScan [TS_9] (rows=1704 width=270)
+                                                            default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_store_name","s_market_id","s_state","s_zip"]
+                                        <-Map 24 [SIMPLE_EDGE] vectorized
+                                          SHUFFLE [RS_344]
+                                            PartitionCols:_col1, _col2
+                                            Select Operator [SEL_343] (rows=525333486 width=122)
+                                              Output:["_col0","_col1","_col2","_col3","_col4"]
+                                              Filter Operator [FIL_342] (rows=525333486 width=122)
+                                                predicate:((ss_customer_sk BETWEEN DynamicValue(RS_70_customer_c_customer_sk_min) AND DynamicValue(RS_70_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_70_customer_c_customer_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_70_store_s_store_sk_min) AND DynamicValue(RS_70_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_70_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_item_sk is not null and ss_store_sk is not null and ss_ticket_number is not null)
+                                                TableScan [TS_54] (rows=575995635 width=122)
+                                                  default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"]
+                                                <-Reducer 19 [BROADCAST_EDGE] vectorized
+                                                  BROADCAST [RS_339]
+                                                    Group By Operator [GBY_338] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=6636187)"]
+                                                    <-Reducer 15 [CUSTOM_SIMPLE_EDGE]
+                                                      SHUFFLE [RS_250]
+                                                        Group By Operator [GBY_249] (rows=1 width=12)
+                                                          Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=6636187)"]
+                                                          Select Operator [SEL_248] (rows=7276996 width=8)
+                                                            Output:["_col0"]
+                                                             Please refer to the previous Filter Operator [FIL_21]
+                                                <-Reducer 20 [BROADCAST_EDGE] vectorized
+                                                  BROADCAST [RS_341]
+                                                    Group By Operator [GBY_340] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                    <-Reducer 15 [CUSTOM_SIMPLE_EDGE]
+                                                      SHUFFLE [RS_255]
+                                                        Group By Operator [GBY_254] (rows=1 width=12)
+                                                          Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                          Select Operator [SEL_253] (rows=7276996 width=8)
+                                                            Output:["_col0"]
+                                                             Please refer to the previous Filter Operator [FIL_21]
+            <-Reducer 5 [CUSTOM_SIMPLE_EDGE] vectorized
+              PARTITION_ONLY_SHUFFLE [RS_337]
+                Select Operator [SEL_336] (rows=3939496 width=380)
                   Output:["_col0","_col1","_col2","_col3"]
-                  Group By Operator [GBY_331] (rows=235181232 width=380)
-                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col9)"],keys:_col1, _col2, _col7
-                    Select Operator [SEL_330] (rows=365777643230 width=843)
-                      Output:["_col1","_col2","_col7","_col9"]
-                      Group By Operator [GBY_329] (rows=365777643230 width=843)
+                  Group By Operator [GBY_335] (rows=3939496 width=380)
+                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col9)"],keys:_col4, _col5, _col7
+                    Select Operator [SEL_334] (rows=84010488 width=843)
+                      Output:["_col4","_col5","_col7","_col9"]
+                      Group By Operator [GBY_333] (rows=84010488 width=843)
                         Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8
-                      <-Reducer 6 [SIMPLE_EDGE]
-                        SHUFFLE [RS_35]
+                      <-Reducer 4 [SIMPLE_EDGE]
+                        SHUFFLE [RS_37]
                           PartitionCols:_col0, _col1, _col2
-                          Group By Operator [GBY_34] (rows=365777643230 width=843)
-                            Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col4)"],keys:_col17, _col18, _col12, _col22, _col6, _col7, _col9, _col10, _col14
-                            Merge Join Operator [MERGEJOIN_284] (rows=365777643230 width=843)
-                              Conds:RS_30._col15, _col19=RS_327._col1, upper(_col2)(Inner),Output:["_col4","_col6","_col7","_col9","_col10","_col12","_col14","_col17","_col18","_col22"]
+                          Group By Operator [GBY_36] (rows=84010488 width=843)
+                            Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col4)"],keys:_col13, _col14, _col21, _col6, _col7, _col9, _col10, _col17, _col23
+                            Merge Join Operator [MERGEJOIN_295] (rows=138508741 width=824)
+                              Conds:RS_32._col0, _col3=RS_331._col0, _col1(Inner),Output:["_col4","_col6","_col7","_col9","_col10","_col13","_col14","_col17","_col21","_col23"]
                             <-Map 23 [SIMPLE_EDGE] vectorized
-                              SHUFFLE [RS_327]
-                                PartitionCols:_col1, upper(_col2)
-                                 Please refer to the previous Select Operator [SEL_326]
-                            <-Reducer 5 [SIMPLE_EDGE]
-                              SHUFFLE [RS_30]
-                                PartitionCols:_col15, _col19
-                                Merge Join Operator [MERGEJOIN_283] (rows=92733777 width=910)
-                                  Conds:RS_27._col0, _col3=RS_323._col0, _col1(Inner),Output:["_col4","_col6","_col7","_col9","_col10","_col12","_col14","_col15","_col17","_col18","_col19"]
-                                <-Map 22 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_323]
-                                    PartitionCols:_col0, _col1
-                                     Please refer to the previous Select Operator [SEL_322]
-                                <-Reducer 4 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_27]
-                                    PartitionCols:_col0, _col3
-                                    Merge Join Operator [MERGEJOIN_282] (rows=56246341 width=899)
-                                      Conds:RS_24._col1=RS_319._col0(Inner),Output:["_col0","_col3","_col4","_col6","_col7","_col9","_col10","_col12","_col14","_col15","_col17","_col18","_col19"]
-                                    <-Map 21 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_319]
+                              SHUFFLE [RS_331]
+                                PartitionCols:_col0, _col1
+                                 Please refer to the previous Select Operator [SEL_330]
+                            <-Reducer 3 [SIMPLE_EDGE]
+                              SHUFFLE [RS_32]
+                                PartitionCols:_col0, _col3
+                                Merge Join Operator [MERGEJOIN_294] (rows=84010488 width=820)
+                                  Conds:RS_29._col1, _col2=RS_30._col0, _col9(Inner),Output:["_col0","_col3","_col4","_col6","_col7","_col9","_col10","_col13","_col14","_col17","_col21","_col23"]
+                                <-Reducer 15 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_30]
+                                    PartitionCols:_col0, _col9
+                                    Select Operator [SEL_22] (rows=7276996 width=637)
+                                      Output:["_col0","_col2","_col3","_col6","_col9","_col10","_col12"]
+                                       Please refer to the previous Filter Operator [FIL_21]
+                                <-Reducer 2 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_29]
+                                    PartitionCols:_col1, _col2
+                                    Merge Join Operator [MERGEJOIN_291] (rows=76612563 width=382)
+                                      Conds:RS_328._col0=RS_306._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col6","_col7","_col9","_col10"]
+                                    <-Map 7 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_306]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_304] (rows=7000 width=385)
+                                          Output:["_col0","_col1","_col2","_col4","_col5"]
+                                          Filter Operator [FIL_302] (rows=7000 width=384)
+                                            predicate:((i_color = 'orchid') and i_item_sk is not null)
+                                             Please refer to the previous TableScan [TS_3]
+                                    <-Map 1 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_328]
                                         PartitionCols:_col0
-                                         Please refer to the previous Select Operator [SEL_318]
-                                    <-Reducer 3 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_24]
-                                        PartitionCols:_col1
-                                        Merge Join Operator [MERGEJOIN_281] (rows=56246341 width=630)
-                                          Conds:RS_21._col2=RS_304._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col6","_col7","_col9","_col10","_col12","_col14","_col15"]
-                                        <-Map 16 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_304]
-                                            PartitionCols:_col0
-                                             Please refer to the previous Select Operator [SEL_303]
-                                        <-Reducer 2 [SIMPLE_EDGE]
-                                          SHUFFLE [RS_21]
-                                            PartitionCols:_col2
-                                            Merge Join Operator [MERGEJOIN_280] (rows=76612563 width=382)
-                                              Conds:RS_316._col0=RS_295._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col6","_col7","_col9","_col10"]
-                                            <-Map 9 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_295]
-                                                PartitionCols:_col0
-                                                Select Operator [SEL_293] (rows=7000 width=385)
-                                                  Output:["_col0","_col1","_col2","_col4","_col5"]
-                                                  Filter Operator [FIL_291] (rows=7000 width=384)
-                                                    predicate:((i_color = 'orchid') and i_item_sk is not null)
-                                                     Please refer to the previous TableScan [TS_3]
-                                            <-Map 1 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_316]
-                                                PartitionCols:_col0
-                                                Select Operator [SEL_315] (rows=525333486 width=122)
-                                                  Output:["_col0","_col1","_col2","_col3","_col4"]
-                                                  Filter Operator [FIL_314] (rows=525333486 width=122)
-                                                    predicate:((ss_item_sk BETWEEN DynamicValue(RS_19_item_i_item_sk_min) AND DynamicValue(RS_19_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_19_item_i_item_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_22_store_s_store_sk_min) AND DynamicValue(RS_22_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_22_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_item_sk is not null and ss_store_sk is not null and ss_ticket_number is not null)
-                                                    TableScan [TS_0] (rows=575995635 width=122)
-                                                      default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"]
-                                                    <-Reducer 10 [BROADCAST_EDGE] vectorized
-                                                      BROADCAST [RS_301]
-                                                        Group By Operator [GBY_300] (rows=1 width=12)
-                                                          Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                        <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                          SHUFFLE [RS_299]
-                                                            Group By Operator [GBY_298] (rows=1 width=12)
-                                                              Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                              Select Operator [SEL_296] (rows=7000 width=4)
-                                                                Output:["_col0"]
-                                                                 Please refer to the previous Select Operator [SEL_293]
-                                                    <-Reducer 17 [BROADCAST_EDGE] vectorized
-                                                      BROADCAST [RS_313]
-                                                        Group By Operator [GBY_312] (rows=1 width=12)
-                                                          Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                        <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                          SHUFFLE [RS_310]
-                                                            Group By Operator [GBY_308] (rows=1 width=12)
-                                                              Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                              Select Operator [SEL_305] (rows=155 width=4)
-                                                                Output:["_col0"]
-                                                                 Please refer to the previous Select Operator [SEL_303]
+                                        Select Operator [SEL_327] (rows=525333486 width=122)
+                                          Output:["_col0","_col1","_col2","_col3","_col4"]
+                                          Filter Operator [FIL_326] (rows=525333486 width=122)
+                                            predicate:((ss_customer_sk BETWEEN DynamicValue(RS_30_customer_c_customer_sk_min) AND DynamicValue(RS_30_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_30_customer_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_27_item_i_item_sk_min) AND DynamicValue(RS_27_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_27_item_i_item_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_30_store_s_store_sk_min) AND DynamicValue(RS_30_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_30_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_item_sk is not null and ss_store_sk is not null and ss_ticket_number is not null)
+                                            TableScan [TS_0] (rows=575995635 width=122)
+                                              default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"]
+                                            <-Reducer 16 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_323]
+                                                Group By Operator [GBY_322] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=6636187)"]
+                                                <-Reducer 15 [CUSTOM_SIMPLE_EDGE]
+                                                  SHUFFLE [RS_152]
+                                                    Group By Operator [GBY_151] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=6636187)"]
+                                                      Select Operator [SEL_150] (rows=7276996 width=4)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_22]
+                                            <-Reducer 17 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_325]
+                                                Group By Operator [GBY_324] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                <-Reducer 15 [CUSTOM_SIMPLE_EDGE]
+                                                  SHUFFLE [RS_157]
+                                                    Group By Operator [GBY_156] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                      Select Operator [SEL_155] (rows=7276996 width=8)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_22]
+                                            <-Reducer 8 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_312]
+                                                Group By Operator [GBY_311] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_310]
+                                                    Group By Operator [GBY_309] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                      Select Operator [SEL_307] (rows=7000 width=4)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_304]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/query59.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query59.q.out b/ql/src/test/results/clientpositive/perf/tez/query59.q.out
index 76b4a5e..2ac474a 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query59.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query59.q.out
@@ -110,51 +110,51 @@ Stage-0
     limit:100
     Stage-1
       Reducer 7 vectorized
-      File Output Operator [FS_210]
-        Limit [LIM_209] (rows=100 width=976)
+      File Output Operator [FS_208]
+        Limit [LIM_207] (rows=100 width=976)
           Number of rows:100
-          Select Operator [SEL_208] (rows=1012347 width=976)
+          Select Operator [SEL_206] (rows=1012347 width=976)
             Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"]
           <-Reducer 6 [SIMPLE_EDGE]
             SHUFFLE [RS_59]
               Select Operator [SEL_58] (rows=1012347 width=976)
                 Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"]
-                Merge Join Operator [MERGEJOIN_185] (rows=1012347 width=1648)
+                Merge Join Operator [MERGEJOIN_183] (rows=1012347 width=1648)
                   Conds:RS_55._col12, _col0=RS_56._col1, (_col0 - 52)(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col12","_col13","_col16","_col17","_col18","_col19","_col20","_col21"]
                 <-Reducer 10 [SIMPLE_EDGE]
                   SHUFFLE [RS_56]
                     PartitionCols:_col1, (_col0 - 52)
                     Select Operator [SEL_48] (rows=28847 width=776)
                       Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
-                      Merge Join Operator [MERGEJOIN_184] (rows=28847 width=776)
-                        Conds:RS_45._col1=RS_207._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col11"]
+                      Merge Join Operator [MERGEJOIN_182] (rows=28847 width=776)
+                        Conds:RS_45._col1=RS_205._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col11"]
                       <-Map 14 [SIMPLE_EDGE] vectorized
-                        SHUFFLE [RS_207]
+                        SHUFFLE [RS_205]
                           PartitionCols:_col0
-                          Select Operator [SEL_206] (rows=1704 width=104)
+                          Select Operator [SEL_204] (rows=1704 width=104)
                             Output:["_col0","_col1"]
-                            Filter Operator [FIL_205] (rows=1704 width=104)
+                            Filter Operator [FIL_203] (rows=1704 width=104)
                               predicate:(s_store_id is not null and s_store_sk is not null)
                               TableScan [TS_39] (rows=1704 width=104)
                                 default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_store_id"]
                       <-Reducer 9 [SIMPLE_EDGE]
                         SHUFFLE [RS_45]
                           PartitionCols:_col1
-                          Merge Join Operator [MERGEJOIN_183] (rows=28847 width=676)
-                            Conds:RS_204._col0=RS_199._col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+                          Merge Join Operator [MERGEJOIN_181] (rows=28847 width=676)
+                            Conds:RS_202._col0=RS_197._col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
                           <-Map 12 [SIMPLE_EDGE] vectorized
-                            SHUFFLE [RS_199]
+                            SHUFFLE [RS_197]
                               PartitionCols:_col1
-                              Select Operator [SEL_197] (rows=317 width=8)
+                              Select Operator [SEL_195] (rows=317 width=8)
                                 Output:["_col1"]
-                                Filter Operator [FIL_195] (rows=317 width=8)
+                                Filter Operator [FIL_193] (rows=317 width=8)
                                   predicate:(d_month_seq BETWEEN 1197 AND 1208 and d_week_seq is not null)
                                   TableScan [TS_15] (rows=73049 width=8)
                                     default@date_dim,d,Tbl:COMPLETE,Col:COMPLETE,Output:["d_month_seq","d_week_seq"]
                           <-Reducer 8 [SIMPLE_EDGE] vectorized
-                            SHUFFLE [RS_204]
+                            SHUFFLE [RS_202]
                               PartitionCols:_col0
-                              Group By Operator [GBY_203] (rows=1196832 width=679)
+                              Group By Operator [GBY_201] (rows=1196832 width=679)
                                 Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)","sum(VALUE._col5)"],keys:KEY._col0, KEY._col1
                               <-Reducer 2 [SIMPLE_EDGE]
                                 SHUFFLE [RS_33]
@@ -163,57 +163,57 @@ Stage-0
                                     Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)","sum(_col3)","sum(_col5)","sum(_col6)","sum(_col7)","sum(_col8)"],keys:_col0, _col1
                                     Select Operator [SEL_30] (rows=525329897 width=205)
                                       Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8"]
-                                      Merge Join Operator [MERGEJOIN_179] (rows=525329897 width=205)
-                                        Conds:RS_188._col0=RS_191._col0(Inner),Output:["_col1","_col2","_col4","_col5"]
+                                      Merge Join Operator [MERGEJOIN_177] (rows=525329897 width=205)
+                                        Conds:RS_186._col0=RS_189._col0(Inner),Output:["_col1","_col2","_col4","_col5"]
                                       <-Map 1 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_188]
+                                        SHUFFLE [RS_186]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_187] (rows=525329897 width=114)
+                                          Select Operator [SEL_185] (rows=525329897 width=114)
                                             Output:["_col0","_col1","_col2"]
-                                            Filter Operator [FIL_186] (rows=525329897 width=114)
+                                            Filter Operator [FIL_184] (rows=525329897 width=114)
                                               predicate:(ss_sold_date_sk is not null and ss_store_sk is not null)
                                               TableScan [TS_0] (rows=575995635 width=114)
                                                 default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_store_sk","ss_sales_price"]
                                       <-Map 11 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_191]
+                                        SHUFFLE [RS_189]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_190] (rows=73049 width=99)
+                                          Select Operator [SEL_188] (rows=73049 width=99)
                                             Output:["_col0","_col1","_col2"]
-                                            Filter Operator [FIL_189] (rows=73049 width=99)
+                                            Filter Operator [FIL_187] (rows=73049 width=99)
                                               predicate:(d_date_sk is not null and d_week_seq is not null)
                                               TableScan [TS_3] (rows=73049 width=99)
                                                 default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_week_seq","d_day_name"]
                 <-Reducer 5 [SIMPLE_EDGE]
                   SHUFFLE [RS_55]
                     PartitionCols:_col12, _col0
-                    Merge Join Operator [MERGEJOIN_181] (rows=28847 width=976)
-                      Conds:RS_52._col1=RS_202._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col12","_col13"]
+                    Merge Join Operator [MERGEJOIN_179] (rows=28847 width=976)
+                      Conds:RS_52._col1=RS_200._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col12","_col13"]
                     <-Map 13 [SIMPLE_EDGE] vectorized
-                      SHUFFLE [RS_202]
+                      SHUFFLE [RS_200]
                         PartitionCols:_col0
-                        Select Operator [SEL_201] (rows=1704 width=192)
+                        Select Operator [SEL_199] (rows=1704 width=192)
                           Output:["_col0","_col1","_col2"]
-                          Filter Operator [FIL_200] (rows=1704 width=192)
+                          Filter Operator [FIL_198] (rows=1704 width=192)
                             predicate:(s_store_id is not null and s_store_sk is not null)
                             TableScan [TS_18] (rows=1704 width=192)
                               default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_store_id","s_store_name"]
                     <-Reducer 4 [SIMPLE_EDGE]
                       SHUFFLE [RS_52]
                         PartitionCols:_col1
-                        Merge Join Operator [MERGEJOIN_180] (rows=28847 width=788)
-                          Conds:RS_193._col0=RS_198._col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
+                        Merge Join Operator [MERGEJOIN_178] (rows=28847 width=788)
+                          Conds:RS_191._col0=RS_196._col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
                         <-Map 12 [SIMPLE_EDGE] vectorized
-                          SHUFFLE [RS_198]
+                          SHUFFLE [RS_196]
                             PartitionCols:_col1
-                            Select Operator [SEL_196] (rows=317 width=8)
+                            Select Operator [SEL_194] (rows=317 width=8)
                               Output:["_col1"]
-                              Filter Operator [FIL_194] (rows=317 width=8)
+                              Filter Operator [FIL_192] (rows=317 width=8)
                                 predicate:(d_month_seq BETWEEN 1185 AND 1196 and d_week_seq is not null)
                                  Please refer to the previous TableScan [TS_15]
                         <-Reducer 3 [SIMPLE_EDGE] vectorized
-                          SHUFFLE [RS_193]
+                          SHUFFLE [RS_191]
                             PartitionCols:_col0
-                            Group By Operator [GBY_192] (rows=1196832 width=791)
+                            Group By Operator [GBY_190] (rows=1196832 width=791)
                               Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)","sum(VALUE._col5)","sum(VALUE._col6)"],keys:KEY._col0, KEY._col1
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_12]
@@ -222,5 +222,5 @@ Stage-0
                                   Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)","sum(_col8)"],keys:_col0, _col1
                                   Select Operator [SEL_9] (rows=525329897 width=205)
                                     Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
-                                     Please refer to the previous Merge Join Operator [MERGEJOIN_179]
+                                     Please refer to the previous Merge Join Operator [MERGEJOIN_177]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/query95.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query95.q.out b/ql/src/test/results/clientpositive/perf/tez/query95.q.out
index a88c534..49e8e86 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query95.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query95.q.out
@@ -104,123 +104,123 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 9 vectorized
-      File Output Operator [FS_296]
-        Limit [LIM_295] (rows=1 width=240)
+      File Output Operator [FS_302]
+        Limit [LIM_301] (rows=1 width=240)
           Number of rows:100
-          Select Operator [SEL_294] (rows=1 width=240)
+          Select Operator [SEL_300] (rows=1 width=240)
             Output:["_col0","_col1","_col2"]
           <-Reducer 8 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_293]
-              Select Operator [SEL_292] (rows=1 width=240)
+            SHUFFLE [RS_299]
+              Select Operator [SEL_298] (rows=1 width=240)
                 Output:["_col1","_col2","_col3"]
-                Group By Operator [GBY_291] (rows=1 width=232)
+                Group By Operator [GBY_297] (rows=1 width=232)
                   Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"]
                 <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized
-                  PARTITION_ONLY_SHUFFLE [RS_290]
-                    Group By Operator [GBY_289] (rows=1 width=232)
+                  PARTITION_ONLY_SHUFFLE [RS_296]
+                    Group By Operator [GBY_295] (rows=1 width=232)
                       Output:["_col0","_col1","_col2"],aggregations:["count(_col0)","sum(_col1)","sum(_col2)"]
-                      Group By Operator [GBY_288] (rows=2511437 width=228)
+                      Group By Operator [GBY_294] (rows=2511437 width=228)
                         Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0
                       <-Reducer 6 [SIMPLE_EDGE]
                         SHUFFLE [RS_115]
                           PartitionCols:_col0
                           Group By Operator [GBY_114] (rows=2511437 width=228)
                             Output:["_col0","_col2","_col3"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col3
-                            Merge Join Operator [MERGEJOIN_235] (rows=5022875 width=227)
-                              Conds:RS_61._col3=RS_287._col0(Inner),Output:["_col3","_col4","_col5"]
+                            Merge Join Operator [MERGEJOIN_241] (rows=5022875 width=227)
+                              Conds:RS_61._col3=RS_293._col0(Inner),Output:["_col3","_col4","_col5"]
                             <-Reducer 5 [ONE_TO_ONE_EDGE]
                               FORWARD [RS_61]
                                 PartitionCols:_col3
-                                Merge Join Operator [MERGEJOIN_234] (rows=5022875 width=227)
-                                  Conds:RS_58._col3=RS_273._col0(Inner),Output:["_col3","_col4","_col5"]
+                                Merge Join Operator [MERGEJOIN_240] (rows=5022875 width=227)
+                                  Conds:RS_58._col3=RS_279._col0(Inner),Output:["_col3","_col4","_col5"]
                                 <-Reducer 4 [SIMPLE_EDGE]
                                   SHUFFLE [RS_58]
                                     PartitionCols:_col3
-                                    Merge Join Operator [MERGEJOIN_230] (rows=5022875 width=227)
-                                      Conds:RS_55._col2=RS_254._col0(Inner),Output:["_col3","_col4","_col5"]
+                                    Merge Join Operator [MERGEJOIN_236] (rows=5022875 width=227)
+                                      Conds:RS_55._col2=RS_260._col0(Inner),Output:["_col3","_col4","_col5"]
                                     <-Map 16 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_254]
+                                      SHUFFLE [RS_260]
                                         PartitionCols:_col0
-                                        Select Operator [SEL_253] (rows=12 width=91)
+                                        Select Operator [SEL_259] (rows=12 width=91)
                                           Output:["_col0"]
-                                          Filter Operator [FIL_252] (rows=12 width=92)
+                                          Filter Operator [FIL_258] (rows=12 width=92)
                                             predicate:((web_company_name = 'pri') and web_site_sk is not null)
                                             TableScan [TS_9] (rows=84 width=92)
                                               default@web_site,web_site,Tbl:COMPLETE,Col:COMPLETE,Output:["web_site_sk","web_company_name"]
                                     <-Reducer 3 [SIMPLE_EDGE]
                                       SHUFFLE [RS_55]
                                         PartitionCols:_col2
-                                        Merge Join Operator [MERGEJOIN_229] (rows=15673790 width=231)
-                                          Conds:RS_52._col1=RS_246._col0(Inner),Output:["_col2","_col3","_col4","_col5"]
+                                        Merge Join Operator [MERGEJOIN_235] (rows=15673790 width=231)
+                                          Conds:RS_52._col1=RS_252._col0(Inner),Output:["_col2","_col3","_col4","_col5"]
                                         <-Map 14 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_246]
+                                          SHUFFLE [RS_252]
                                             PartitionCols:_col0
-                                            Select Operator [SEL_245] (rows=784314 width=90)
+                                            Select Operator [SEL_251] (rows=784314 width=90)
                                               Output:["_col0"]
-                                              Filter Operator [FIL_244] (rows=784314 width=90)
+                                              Filter Operator [FIL_250] (rows=784314 width=90)
                                                 predicate:((ca_state = 'TX') and ca_address_sk is not null)
                                                 TableScan [TS_6] (rows=40000000 width=90)
                                                   default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_state"]
                                         <-Reducer 2 [SIMPLE_EDGE]
                                           SHUFFLE [RS_52]
                                             PartitionCols:_col1
-                                            Merge Join Operator [MERGEJOIN_228] (rows=15987241 width=235)
-                                              Conds:RS_262._col0=RS_238._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"]
+                                            Merge Join Operator [MERGEJOIN_234] (rows=15987241 width=235)
+                                              Conds:RS_268._col0=RS_244._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"]
                                             <-Map 12 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_238]
+                                              SHUFFLE [RS_244]
                                                 PartitionCols:_col0
-                                                Select Operator [SEL_237] (rows=8116 width=98)
+                                                Select Operator [SEL_243] (rows=8116 width=98)
                                                   Output:["_col0"]
-                                                  Filter Operator [FIL_236] (rows=8116 width=98)
+                                                  Filter Operator [FIL_242] (rows=8116 width=98)
                                                     predicate:(CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1999-05-01 00:00:00' AND TIMESTAMP'1999-06-30 00:00:00' and d_date_sk is not null)
                                                     TableScan [TS_3] (rows=73049 width=98)
                                                       default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_date"]
                                             <-Map 1 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_262]
+                                              SHUFFLE [RS_268]
                                                 PartitionCols:_col0
-                                                Select Operator [SEL_261] (rows=143895019 width=239)
+                                                Select Operator [SEL_267] (rows=143895019 width=239)
                                                   Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
-                                                  Filter Operator [FIL_260] (rows=143895019 width=239)
+                                                  Filter Operator [FIL_266] (rows=143895019 width=239)
                                                     predicate:((ws_ship_addr_sk BETWEEN DynamicValue(RS_53_customer_address_ca_address_sk_min) AND DynamicValue(RS_53_customer_address_ca_address_sk_max) and in_bloom_filter(ws_ship_addr_sk, DynamicValue(RS_53_customer_address_ca_address_sk_bloom_filter))) and (ws_ship_date_sk BETWEEN DynamicValue(RS_50_date_dim_d_date_sk_min) AND DynamicValue(RS_50_date_dim_d_date_sk_max) and in_bloom_filter(ws_ship_date_sk, DynamicValue(RS_50_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_56_web_site_web_site_sk_min) AND DynamicValue(RS_56_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_56_web_site_web_site_sk_bloom_filter))) and ws_order_number is not null and ws_ship_addr_sk is not null and ws_ship_date_sk is not null and ws_web_site_sk is not null)
                                                     TableScan [TS_0] (rows=144002668 width=239)
                                                       default@web_sales,ws1,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_ship_date_sk","ws_ship_addr_sk","ws_web_site_sk","ws_order_number","ws_ext_ship_cost","ws_net_profit"]
                                                     <-Reducer 13 [BROADCAST_EDGE] vectorized
-                                                      BROADCAST [RS_243]
-                                                        Group By Operator [GBY_242] (rows=1 width=12)
+                                                      BROADCAST [RS_249]
+                                                        Group By Operator [GBY_248] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                         <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                          SHUFFLE [RS_241]
-                                                            Group By Operator [GBY_240] (rows=1 width=12)
+                                                          SHUFFLE [RS_247]
+                                                            Group By Operator [GBY_246] (rows=1 width=12)
                                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                              Select Operator [SEL_239] (rows=8116 width=4)
+                                                              Select Operator [SEL_245] (rows=8116 width=4)
                                                                 Output:["_col0"]
-                                                                 Please refer to the previous Select Operator [SEL_237]
+                                                                 Please refer to the previous Select Operator [SEL_243]
                                                     <-Reducer 15 [BROADCAST_EDGE] vectorized
-                                                      BROADCAST [RS_251]
-                                                        Group By Operator [GBY_250] (rows=1 width=12)
+                                                      BROADCAST [RS_257]
+                                                        Group By Operator [GBY_256] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                         <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                          SHUFFLE [RS_249]
-                                                            Group By Operator [GBY_248] (rows=1 width=12)
+                                                          SHUFFLE [RS_255]
+                                                            Group By Operator [GBY_254] (rows=1 width=12)
                                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                              Select Operator [SEL_247] (rows=784314 width=4)
+                                                              Select Operator [SEL_253] (rows=784314 width=4)
                                                                 Output:["_col0"]
-                                                                 Please refer to the previous Select Operator [SEL_245]
+                                                                 Please refer to the previous Select Operator [SEL_251]
                                                     <-Reducer 17 [BROADCAST_EDGE] vectorized
-                                                      BROADCAST [RS_259]
-                                                        Group By Operator [GBY_258] (rows=1 width=12)
+                                                      BROADCAST [RS_265]
+                                                        Group By Operator [GBY_264] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                         <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                          SHUFFLE [RS_257]
-                                                            Group By Operator [GBY_256] (rows=1 width=12)
+                                                          SHUFFLE [RS_263]
+                                                            Group By Operator [GBY_262] (rows=1 width=12)
                                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                              Select Operator [SEL_255] (rows=12 width=4)
+                                                              Select Operator [SEL_261] (rows=12 width=4)
                                                                 Output:["_col0"]
-                                                                 Please refer to the previous Select Operator [SEL_253]
+                                                                 Please refer to the previous Select Operator [SEL_259]
                                 <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized
-                                  FORWARD [RS_273]
+                                  FORWARD [RS_279]
                                     PartitionCols:_col0
-                                    Group By Operator [GBY_272] (rows=14686712 width=4)
+                                    Group By Operator [GBY_278] (rows=14686712 width=4)
                                       Output:["_col0"],keys:KEY._col0
                                     <-Reducer 19 [SIMPLE_EDGE]
                                       SHUFFLE [RS_24]
@@ -231,58 +231,58 @@ Stage-0
                                             Output:["_col1"]
                                             Filter Operator [FIL_21] (rows=1411940834 width=11)
                                               predicate:(_col0 <> _col2)
-                                              Merge Join Operator [MERGEJOIN_231] (rows=1411940834 width=11)
-                                                Conds:RS_268._col1=RS_271._col1(Inner),Output:["_col0","_col1","_col2"]
+                                              Merge Join Operator [MERGEJOIN_237] (rows=1411940834 width=11)
+                                                Conds:RS_274._col1=RS_277._col1(Inner),Output:["_col0","_col1","_col2"]
                                               <-Map 18 [SIMPLE_EDGE] vectorized
-                                                SHUFFLE [RS_268]
+                                                SHUFFLE [RS_274]
                                                   PartitionCols:_col1
-                                                  Select Operator [SEL_267] (rows=144002668 width=7)
+                                                  Select Operator [SEL_273] (rows=144002668 width=7)
                                                     Output:["_col0","_col1"]
-                                                    Filter Operator [FIL_266] (rows=144002668 width=7)
+                                                    Filter Operator [FIL_272] (rows=144002668 width=7)
                                                       predicate:((ws_order_number BETWEEN DynamicValue(RS_58_ws1_ws_order_number_min) AND DynamicValue(RS_58_ws1_ws_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_58_ws1_ws_order_number_bloom_filter))) and ws_order_number is not null)
                                                       TableScan [TS_12] (rows=144002668 width=7)
                                                         default@web_sales,ws1,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_warehouse_sk","ws_order_number"]
                                                       <-Reducer 11 [BROADCAST_EDGE] vectorized
-                                                        BROADCAST [RS_264]
-                                                          Group By Operator [GBY_263] (rows=1 width=12)
+                                                        BROADCAST [RS_270]
+                                                          Group By Operator [GBY_269] (rows=1 width=12)
                                                             Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                           <-Reducer 4 [CUSTOM_SIMPLE_EDGE]
-                                                            SHUFFLE [RS_183]
-                                                              Group By Operator [GBY_182] (rows=1 width=12)
+                                                            SHUFFLE [RS_193]
+                                                              Group By Operator [GBY_192] (rows=1 width=12)
                                                                 Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                Select Operator [SEL_181] (rows=5022875 width=8)
+                                                                Select Operator [SEL_191] (rows=5022875 width=8)
                                                                   Output:["_col0"]
-                                                                   Please refer to the previous Merge Join Operator [MERGEJOIN_230]
+                                                                   Please refer to the previous Merge Join Operator [MERGEJOIN_236]
                                               <-Map 21 [SIMPLE_EDGE] vectorized
-                                                SHUFFLE [RS_271]
+                                                SHUFFLE [RS_277]
                                                   PartitionCols:_col1
-                                                  Select Operator [SEL_270] (rows=144002668 width=7)
+                                                  Select Operator [SEL_276] (rows=144002668 width=7)
                                                     Output:["_col0","_col1"]
-                                                    Filter Operator [FIL_269] (rows=144002668 width=7)
+                                                    Filter Operator [FIL_275] (rows=144002668 width=7)
                                                       predicate:((ws_order_number BETWEEN DynamicValue(RS_58_ws1_ws_order_number_min) AND DynamicValue(RS_58_ws1_ws_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_58_ws1_ws_order_number_bloom_filter))) and ws_order_number is not null)
                                                       TableScan [TS_15] (rows=144002668 width=7)
                                                         default@web_sales,ws2,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_warehouse_sk","ws_order_number"]
                                                       <-Reducer 11 [BROADCAST_EDGE] vectorized
-                                                        BROADCAST [RS_265]
-                                                           Please refer to the previous Group By Operator [GBY_263]
+                                                        BROADCAST [RS_271]
+                                                           Please refer to the previous Group By Operator [GBY_269]
                             <-Reducer 25 [ONE_TO_ONE_EDGE] vectorized
-                              FORWARD [RS_287]
+                              FORWARD [RS_293]
                                 PartitionCols:_col0
-                                Group By Operator [GBY_286] (rows=8007986 width=4)
+                                Group By Operator [GBY_292] (rows=8007986 width=4)
                                   Output:["_col0"],keys:KEY._col0
                                 <-Reducer 24 [SIMPLE_EDGE]
                                   SHUFFLE [RS_46]
                                     PartitionCols:_col0
                                     Group By Operator [GBY_45] (rows=14398467 width=4)
                                       Output:["_col0"],keys:_col14
-                                      Merge Join Operator [MERGEJOIN_233] (rows=1384229738 width=4)
-                                        Conds:RS_41._col0=RS_285._col13(Inner),Output:["_col14"]
+                                      Merge Join Operator [MERGEJOIN_239] (rows=1384229738 width=4)
+                                        Conds:RS_41._col0=RS_291._col13(Inner),Output:["_col14"]
                                       <-Map 27 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_285]
+                                        SHUFFLE [RS_291]
                                           PartitionCols:_col13
-                                          Select Operator [SEL_284] (rows=14398467 width=272)
+                                          Select Operator [SEL_290] (rows=14398467 width=272)
                                             Output:["_col13"]
-                                            Filter Operator [FIL_283] (rows=14398467 width=4)
+                                            Filter Operator [FIL_289] (rows=14398467 width=4)
                                               predicate:wr_order_number is not null
                                               TableScan [TS_38] (rows=14398467 width=4)
                                                 default@web_returns,web_returns,Tbl:COMPLETE,Col:COMPLETE,Output:["wr_order_number"]
@@ -293,38 +293,38 @@ Stage-0
                                             Output:["_col0"]
                                             Filter Operator [FIL_36] (rows=1411940834 width=11)
                                               predicate:(_col0 <> _col2)
-                                              Merge Join Operator [MERGEJOIN_232] (rows=1411940834 width=11)
-                                                Conds:RS_279._col1=RS_282._col1(Inner),Output:["_col0","_col1","_col2"]
+                                              Merge Join Operator [MERGEJOIN_238] (rows=1411940834 width=11)
+                                                Conds:RS_285._col1=RS_288._col1(Inner),Output:["_col0","_col1","_col2"]
                                               <-Map 22 [SIMPLE_EDGE] vectorized
-                                                SHUFFLE [RS_279]
+                                                SHUFFLE [RS_285]
                                                   PartitionCols:_col1
-                                                  Select Operator [SEL_278] (rows=144002668 width=7)
+                                                  Select Operator [SEL_284] (rows=144002668 width=7)
                                                     Output:["_col0","_col1"]
-                                                    Filter Operator [FIL_277] (rows=144002668 width=7)
+                                                    Filter Operator [FIL_283] (rows=144002668 width=7)
                                                       predicate:((ws_order_number BETWEEN DynamicValue(RS_61_ws1_ws_order_number_min) AND DynamicValue(RS_61_ws1_ws_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_61_ws1_ws_order_number_bloom_filter))) and ws_order_number is not null)
                                                       TableScan [TS_27] (rows=144002668 width=7)
                                                         default@web_sales,ws1,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_warehouse_sk","ws_order_number"]
                                                       <-Reducer 10 [BROADCAST_EDGE] vectorized
-                                                        BROADCAST [RS_275]
-                                                          Group By Operator [GBY_274] (rows=1 width=12)
+                                                        BROADCAST [RS_281]
+                                                          Group By Operator [GBY_280] (rows=1 width=12)
                                                             Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                           <-Reducer 5 [CUSTOM_SIMPLE_EDGE]
-                                                            FORWARD [RS_202]
-                                                              Group By Operator [GBY_201] (rows=1 width=12)
+                                                            FORWARD [RS_212]
+                                                              Group By Operator [GBY_211] (rows=1 width=12)
                                                                 Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                Select Operator [SEL_200] (rows=5022875 width=8)
+                                                                Select Operator [SEL_210] (rows=5022875 width=8)
                                                                   Output:["_col0"]
-                                                                   Please refer to the previous Merge Join Operator [MERGEJOIN_234]
+                                                                   Please refer to the previous Merge Join Operator [MERGEJOIN_240]
                                               <-Map 26 [SIMPLE_EDGE] vectorized
-                                                SHUFFLE [RS_282]
+                                                SHUFFLE [RS_288]
                                                   PartitionCols:_col1
-                                                  Select Operator [SEL_281] (rows=144002668 width=7)
+                                                  Select Operator [SEL_287] (rows=144002668 width=7)
                                                     Output:["_col0","_col1"]
-                                                    Filter Operator [FIL_280] (rows=144002668 width=7)
+                                                    Filter Operator [FIL_286] (rows=144002668 width=7)
                                                       predicate:((ws_order_number BETWEEN DynamicValue(RS_61_ws1_ws_order_number_min) AND DynamicValue(RS_61_ws1_ws_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_61_ws1_ws_order_number_bloom_filter))) and ws_order_number is not null)
                                                       TableScan [TS_30] (rows=144002668 width=7)
                                                         default@web_sales,ws2,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_warehouse_sk","ws_order_number"]
                                                       <-Reducer 10 [BROADCAST_EDGE] vectorized
-                                                        BROADCAST [RS_276]
-                                                           Please refer to the previous Group By Operator [GBY_274]
+                                                        BROADCAST [RS_282]
+                                                           Please refer to the previous Group By Operator [GBY_280]
 


[3/6] hive git commit: HIVE-20788: Extended SJ reduction may backtrack columns incorrectly when creating filters (Jesus Camacho Rodriguez, reviewed by Deepak Jaiswal)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out
index cb94e4f..5ba912a 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out
@@ -203,57 +203,57 @@ Stage-0
     limit:100
     Stage-1
       Reducer 7 vectorized
-      File Output Operator [FS_375]
-        Limit [LIM_374] (rows=100 width=212)
+      File Output Operator [FS_371]
+        Limit [LIM_370] (rows=100 width=212)
           Number of rows:100
-          Select Operator [SEL_373] (rows=1717 width=212)
+          Select Operator [SEL_369] (rows=1717 width=212)
             Output:["_col0","_col1"]
           <-Reducer 6 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_372]
-              Group By Operator [GBY_371] (rows=1717 width=212)
+            SHUFFLE [RS_368]
+              Group By Operator [GBY_367] (rows=1717 width=212)
                 Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
               <-Union 5 [SIMPLE_EDGE]
                 <-Reducer 10 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_388]
+                  Reduce Output Operator [RS_384]
                     PartitionCols:_col0
-                    Group By Operator [GBY_387] (rows=1717 width=212)
+                    Group By Operator [GBY_383] (rows=1717 width=212)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Top N Key Operator [TNK_386] (rows=5151 width=212)
+                      Top N Key Operator [TNK_382] (rows=5151 width=212)
                         keys:_col0,sort order:+,top n:100
-                        Group By Operator [GBY_385] (rows=1717 width=212)
+                        Group By Operator [GBY_381] (rows=1717 width=212)
                           Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                         <-Reducer 9 [SIMPLE_EDGE]
                           SHUFFLE [RS_69]
                             PartitionCols:_col0
                             Group By Operator [GBY_68] (rows=1717 width=212)
                               Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                              Merge Join Operator [MERGEJOIN_305] (rows=746132 width=100)
+                              Merge Join Operator [MERGEJOIN_301] (rows=746132 width=100)
                                 Conds:RS_64._col0=RS_65._col3(Inner),Output:["_col1","_col7"]
                               <-Reducer 2 [SIMPLE_EDGE]
                                 SHUFFLE [RS_64]
                                   PartitionCols:_col0
-                                  Merge Join Operator [MERGEJOIN_295] (rows=34340 width=104)
-                                    Conds:RS_323._col1=RS_329._col0(Inner),Output:["_col0","_col1"]
+                                  Merge Join Operator [MERGEJOIN_291] (rows=34340 width=104)
+                                    Conds:RS_319._col1=RS_325._col0(Inner),Output:["_col0","_col1"]
                                   <-Map 1 [SIMPLE_EDGE] vectorized
-                                    SHUFFLE [RS_323]
+                                    SHUFFLE [RS_319]
                                       PartitionCols:_col1
-                                      Select Operator [SEL_322] (rows=462000 width=104)
+                                      Select Operator [SEL_318] (rows=462000 width=104)
                                         Output:["_col0","_col1"]
                                         TableScan [TS_0] (rows=462000 width=104)
                                           default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_id"]
                                   <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized
-                                    FORWARD [RS_329]
+                                    FORWARD [RS_325]
                                       PartitionCols:_col0
-                                      Group By Operator [GBY_328] (rows=23100 width=100)
+                                      Group By Operator [GBY_324] (rows=23100 width=100)
                                         Output:["_col0"],keys:KEY._col0
                                       <-Map 15 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_327]
+                                        SHUFFLE [RS_323]
                                           PartitionCols:_col0
-                                          Group By Operator [GBY_326] (rows=23100 width=100)
+                                          Group By Operator [GBY_322] (rows=23100 width=100)
                                             Output:["_col0"],keys:i_item_id
-                                            Select Operator [SEL_325] (rows=46200 width=190)
+                                            Select Operator [SEL_321] (rows=46200 width=190)
                                               Output:["i_item_id"]
-                                              Filter Operator [FIL_324] (rows=46200 width=190)
+                                              Filter Operator [FIL_320] (rows=46200 width=190)
                                                 predicate:(i_category = 'Children')
                                                 TableScan [TS_2] (rows=462000 width=190)
                                                   default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_id","i_category"]
@@ -262,235 +262,235 @@ Stage-0
                                   PartitionCols:_col3
                                   Select Operator [SEL_60] (rows=1550375 width=13)
                                     Output:["_col3","_col4"]
-                                    Merge Join Operator [MERGEJOIN_300] (rows=1550375 width=13)
-                                      Conds:RS_57._col1=RS_350._col0(Inner),Output:["_col2","_col3"]
+                                    Merge Join Operator [MERGEJOIN_296] (rows=1550375 width=13)
+                                      Conds:RS_57._col1=RS_346._col0(Inner),Output:["_col2","_col3"]
                                     <-Map 28 [SIMPLE_EDGE] vectorized
-                                      PARTITION_ONLY_SHUFFLE [RS_350]
+                                      PARTITION_ONLY_SHUFFLE [RS_346]
                                         PartitionCols:_col0
-                                        Select Operator [SEL_347] (rows=8000000 width=4)
+                                        Select Operator [SEL_343] (rows=8000000 width=4)
                                           Output:["_col0"]
-                                          Filter Operator [FIL_346] (rows=8000000 width=112)
+                                          Filter Operator [FIL_342] (rows=8000000 width=112)
                                             predicate:(ca_gmt_offset = -6)
                                             TableScan [TS_15] (rows=40000000 width=112)
                                               default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_gmt_offset"]
                                     <-Reducer 22 [SIMPLE_EDGE]
                                       SHUFFLE [RS_57]
                                         PartitionCols:_col1
-                                        Merge Join Operator [MERGEJOIN_299] (rows=7751872 width=98)
-                                          Conds:RS_384._col0=RS_334._col0(Inner),Output:["_col1","_col2","_col3"]
+                                        Merge Join Operator [MERGEJOIN_295] (rows=7751872 width=98)
+                                          Conds:RS_380._col0=RS_330._col0(Inner),Output:["_col1","_col2","_col3"]
                                         <-Map 20 [SIMPLE_EDGE] vectorized
-                                          PARTITION_ONLY_SHUFFLE [RS_334]
+                                          PARTITION_ONLY_SHUFFLE [RS_330]
                                             PartitionCols:_col0
-                                            Select Operator [SEL_331] (rows=50 width=4)
+                                            Select Operator [SEL_327] (rows=50 width=4)
                                               Output:["_col0"]
-                                              Filter Operator [FIL_330] (rows=50 width=12)
+                                              Filter Operator [FIL_326] (rows=50 width=12)
                                                 predicate:((d_moy = 9) and (d_year = 1999))
                                                 TableScan [TS_12] (rows=73049 width=12)
                                                   default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year","d_moy"]
                                         <-Map 32 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_384]
+                                          SHUFFLE [RS_380]
                                             PartitionCols:_col0
-                                            Select Operator [SEL_383] (rows=285117733 width=123)
+                                            Select Operator [SEL_379] (rows=285117733 width=123)
                                               Output:["_col0","_col1","_col2","_col3"]
-                                              Filter Operator [FIL_382] (rows=285117733 width=123)
+                                              Filter Operator [FIL_378] (rows=285117733 width=123)
                                                 predicate:((cs_bill_addr_sk BETWEEN DynamicValue(RS_58_customer_address_ca_address_sk_min) AND DynamicValue(RS_58_customer_address_ca_address_sk_max) and in_bloom_filter(cs_bill_addr_sk, DynamicValue(RS_58_customer_address_ca_address_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_64_item_i_item_sk_min) AND DynamicValue(RS_64_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_64_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_55_date_dim_d_date_sk_min) AND DynamicValue(RS_55_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_55_date_dim_d_date_sk_bloom_filter))) and cs_bill_addr_sk is not null and cs_sold_date_sk is not null)
                                                 TableScan [TS_45] (rows=287989836 width=123)
                                                   default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_addr_sk","cs_item_sk","cs_ext_sales_price"]
                                                 <-Reducer 11 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_381]
-                                                    Group By Operator [GBY_380] (rows=1 width=12)
+                                                  BROADCAST [RS_377]
+                                                    Group By Operator [GBY_376] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Reducer 2 [CUSTOM_SIMPLE_EDGE]
-                                                      SHUFFLE [RS_240]
-                                                        Group By Operator [GBY_239] (rows=1 width=12)
+                                                      SHUFFLE [RS_238]
+                                                        Group By Operator [GBY_237] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_238] (rows=34340 width=4)
+                                                          Select Operator [SEL_236] (rows=34340 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_295]
+                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_291]
                                                 <-Reducer 24 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_377]
-                                                    Group By Operator [GBY_376] (rows=1 width=12)
+                                                  BROADCAST [RS_373]
+                                                    Group By Operator [GBY_372] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                      PARTITION_ONLY_SHUFFLE [RS_342]
-                                                        Group By Operator [GBY_339] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_338]
+                                                        Group By Operator [GBY_335] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_335] (rows=50 width=4)
+                                                          Select Operator [SEL_331] (rows=50 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Select Operator [SEL_331]
+                                                             Please refer to the previous Select Operator [SEL_327]
                                                 <-Reducer 30 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_379]
-                                                    Group By Operator [GBY_378] (rows=1 width=12)
+                                                  BROADCAST [RS_375]
+                                                    Group By Operator [GBY_374] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                     <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                      PARTITION_ONLY_SHUFFLE [RS_358]
-                                                        Group By Operator [GBY_355] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_354]
+                                                        Group By Operator [GBY_351] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                          Select Operator [SEL_351] (rows=8000000 width=4)
+                                                          Select Operator [SEL_347] (rows=8000000 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Select Operator [SEL_347]
+                                                             Please refer to the previous Select Operator [SEL_343]
                 <-Reducer 13 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_401]
+                  Reduce Output Operator [RS_397]
                     PartitionCols:_col0
-                    Group By Operator [GBY_400] (rows=1717 width=212)
+                    Group By Operator [GBY_396] (rows=1717 width=212)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Top N Key Operator [TNK_399] (rows=5151 width=212)
+                      Top N Key Operator [TNK_395] (rows=5151 width=212)
                         keys:_col0,sort order:+,top n:100
-                        Group By Operator [GBY_398] (rows=1717 width=212)
+                        Group By Operator [GBY_394] (rows=1717 width=212)
                           Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                         <-Reducer 12 [SIMPLE_EDGE]
                           SHUFFLE [RS_106]
                             PartitionCols:_col0
                             Group By Operator [GBY_105] (rows=1717 width=212)
                               Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                              Merge Join Operator [MERGEJOIN_306] (rows=379339 width=201)
+                              Merge Join Operator [MERGEJOIN_302] (rows=379339 width=201)
                                 Conds:RS_101._col0=RS_102._col2(Inner),Output:["_col1","_col7"]
                               <-Reducer 2 [SIMPLE_EDGE]
                                 SHUFFLE [RS_101]
                                   PartitionCols:_col0
-                                   Please refer to the previous Merge Join Operator [MERGEJOIN_295]
+                                   Please refer to the previous Merge Join Operator [MERGEJOIN_291]
                               <-Reducer 26 [SIMPLE_EDGE]
                                 SHUFFLE [RS_102]
                                   PartitionCols:_col2
                                   Select Operator [SEL_97] (rows=788222 width=110)
                                     Output:["_col2","_col4"]
-                                    Merge Join Operator [MERGEJOIN_303] (rows=788222 width=110)
-                                      Conds:RS_94._col2=RS_352._col0(Inner),Output:["_col1","_col3"]
+                                    Merge Join Operator [MERGEJOIN_299] (rows=788222 width=110)
+                                      Conds:RS_94._col2=RS_348._col0(Inner),Output:["_col1","_col3"]
                                     <-Map 28 [SIMPLE_EDGE] vectorized
-                                      PARTITION_ONLY_SHUFFLE [RS_352]
+                                      PARTITION_ONLY_SHUFFLE [RS_348]
                                         PartitionCols:_col0
-                                         Please refer to the previous Select Operator [SEL_347]
+                                         Please refer to the previous Select Operator [SEL_343]
                                     <-Reducer 25 [SIMPLE_EDGE]
                                       SHUFFLE [RS_94]
                                         PartitionCols:_col2
-                                        Merge Join Operator [MERGEJOIN_302] (rows=3941109 width=118)
-                                          Conds:RS_397._col0=RS_336._col0(Inner),Output:["_col1","_col2","_col3"]
+                                        Merge Join Operator [MERGEJOIN_298] (rows=3941109 width=118)
+                                          Conds:RS_393._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"]
                                         <-Map 20 [SIMPLE_EDGE] vectorized
-                                          PARTITION_ONLY_SHUFFLE [RS_336]
+                                          PARTITION_ONLY_SHUFFLE [RS_332]
                                             PartitionCols:_col0
-                                             Please refer to the previous Select Operator [SEL_331]
+                                             Please refer to the previous Select Operator [SEL_327]
                                         <-Map 33 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_397]
+                                          SHUFFLE [RS_393]
                                             PartitionCols:_col0
-                                            Select Operator [SEL_396] (rows=143931246 width=123)
+                                            Select Operator [SEL_392] (rows=143931246 width=123)
                                               Output:["_col0","_col1","_col2","_col3"]
-                                              Filter Operator [FIL_395] (rows=143931246 width=123)
+                                              Filter Operator [FIL_391] (rows=143931246 width=123)
                                                 predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_95_customer_address_ca_address_sk_min) AND DynamicValue(RS_95_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_95_customer_address_ca_address_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_101_item_i_item_sk_min) AND DynamicValue(RS_101_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_101_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_92_date_dim_d_date_sk_min) AND DynamicValue(RS_92_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_92_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null)
                                                 TableScan [TS_82] (rows=144002668 width=123)
                                                   default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_addr_sk","ws_ext_sales_price"]
                                                 <-Reducer 14 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_394]
-                                                    Group By Operator [GBY_393] (rows=1 width=12)
+                                                  BROADCAST [RS_390]
+                                                    Group By Operator [GBY_389] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Reducer 2 [CUSTOM_SIMPLE_EDGE]
-                                                      SHUFFLE [RS_286]
-                                                        Group By Operator [GBY_285] (rows=1 width=12)
+                                                      SHUFFLE [RS_278]
+                                                        Group By Operator [GBY_277] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_284] (rows=34340 width=4)
+                                                          Select Operator [SEL_276] (rows=34340 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_295]
+                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_291]
                                                 <-Reducer 27 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_390]
-                                                    Group By Operator [GBY_389] (rows=1 width=12)
+                                                  BROADCAST [RS_386]
+                                                    Group By Operator [GBY_385] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                      PARTITION_ONLY_SHUFFLE [RS_343]
-                                                        Group By Operator [GBY_340] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_339]
+                                                        Group By Operator [GBY_336] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_337] (rows=50 width=4)
+                                                          Select Operator [SEL_333] (rows=50 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Select Operator [SEL_331]
+                                                             Please refer to the previous Select Operator [SEL_327]
                                                 <-Reducer 31 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_392]
-                                                    Group By Operator [GBY_391] (rows=1 width=12)
+                                                  BROADCAST [RS_388]
+                                                    Group By Operator [GBY_387] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                     <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                      PARTITION_ONLY_SHUFFLE [RS_359]
-                                                        Group By Operator [GBY_356] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_355]
+                                                        Group By Operator [GBY_352] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                          Select Operator [SEL_353] (rows=8000000 width=4)
+                                                          Select Operator [SEL_349] (rows=8000000 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Select Operator [SEL_347]
+                                                             Please refer to the previous Select Operator [SEL_343]
                 <-Reducer 4 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_370]
+                  Reduce Output Operator [RS_366]
                     PartitionCols:_col0
-                    Group By Operator [GBY_369] (rows=1717 width=212)
+                    Group By Operator [GBY_365] (rows=1717 width=212)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Top N Key Operator [TNK_368] (rows=5151 width=212)
+                      Top N Key Operator [TNK_364] (rows=5151 width=212)
                         keys:_col0,sort order:+,top n:100
-                        Group By Operator [GBY_367] (rows=1717 width=212)
+                        Group By Operator [GBY_363] (rows=1717 width=212)
                           Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                         <-Reducer 3 [SIMPLE_EDGE]
                           SHUFFLE [RS_33]
                             PartitionCols:_col0
                             Group By Operator [GBY_32] (rows=1717 width=212)
                               Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                              Merge Join Operator [MERGEJOIN_304] (rows=1384530 width=100)
+                              Merge Join Operator [MERGEJOIN_300] (rows=1384530 width=100)
                                 Conds:RS_28._col0=RS_29._col2(Inner),Output:["_col1","_col7"]
                               <-Reducer 2 [SIMPLE_EDGE]
                                 SHUFFLE [RS_28]
                                   PartitionCols:_col0
-                                   Please refer to the previous Merge Join Operator [MERGEJOIN_295]
+                                   Please refer to the previous Merge Join Operator [MERGEJOIN_291]
                               <-Reducer 19 [SIMPLE_EDGE]
                                 SHUFFLE [RS_29]
                                   PartitionCols:_col2
                                   Select Operator [SEL_24] (rows=2876890 width=4)
                                     Output:["_col2","_col4"]
-                                    Merge Join Operator [MERGEJOIN_297] (rows=2876890 width=4)
-                                      Conds:RS_21._col2=RS_348._col0(Inner),Output:["_col1","_col3"]
+                                    Merge Join Operator [MERGEJOIN_293] (rows=2876890 width=4)
+                                      Conds:RS_21._col2=RS_344._col0(Inner),Output:["_col1","_col3"]
                                     <-Map 28 [SIMPLE_EDGE] vectorized
-                                      PARTITION_ONLY_SHUFFLE [RS_348]
+                                      PARTITION_ONLY_SHUFFLE [RS_344]
                                         PartitionCols:_col0
-                                         Please refer to the previous Select Operator [SEL_347]
+                                         Please refer to the previous Select Operator [SEL_343]
                                     <-Reducer 18 [SIMPLE_EDGE]
                                       SHUFFLE [RS_21]
                                         PartitionCols:_col2
-                                        Merge Join Operator [MERGEJOIN_296] (rows=14384447 width=4)
-                                          Conds:RS_366._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"]
+                                        Merge Join Operator [MERGEJOIN_292] (rows=14384447 width=4)
+                                          Conds:RS_362._col0=RS_328._col0(Inner),Output:["_col1","_col2","_col3"]
                                         <-Map 20 [SIMPLE_EDGE] vectorized
-                                          PARTITION_ONLY_SHUFFLE [RS_332]
+                                          PARTITION_ONLY_SHUFFLE [RS_328]
                                             PartitionCols:_col0
-                                             Please refer to the previous Select Operator [SEL_331]
+                                             Please refer to the previous Select Operator [SEL_327]
                                         <-Map 17 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_366]
+                                          SHUFFLE [RS_362]
                                             PartitionCols:_col0
-                                            Select Operator [SEL_365] (rows=525327191 width=118)
+                                            Select Operator [SEL_361] (rows=525327191 width=118)
                                               Output:["_col0","_col1","_col2","_col3"]
-                                              Filter Operator [FIL_364] (rows=525327191 width=118)
+                                              Filter Operator [FIL_360] (rows=525327191 width=118)
                                                 predicate:((ss_addr_sk BETWEEN DynamicValue(RS_22_customer_address_ca_address_sk_min) AND DynamicValue(RS_22_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_22_customer_address_ca_address_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_28_item_i_item_sk_min) AND DynamicValue(RS_28_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_28_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_19_date_dim_d_date_sk_min) AND DynamicValue(RS_19_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_19_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null)
                                                 TableScan [TS_9] (rows=575995635 width=118)
                                                   default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_addr_sk","ss_ext_sales_price"]
                                                 <-Reducer 21 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_345]
-                                                    Group By Operator [GBY_344] (rows=1 width=12)
+                                                  BROADCAST [RS_341]
+                                                    Group By Operator [GBY_340] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                      PARTITION_ONLY_SHUFFLE [RS_341]
-                                                        Group By Operator [GBY_338] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_337]
+                                                        Group By Operator [GBY_334] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_333] (rows=50 width=4)
+                                                          Select Operator [SEL_329] (rows=50 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Select Operator [SEL_331]
+                                                             Please refer to the previous Select Operator [SEL_327]
                                                 <-Reducer 29 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_361]
-                                                    Group By Operator [GBY_360] (rows=1 width=12)
+                                                  BROADCAST [RS_357]
+                                                    Group By Operator [GBY_356] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                     <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                      PARTITION_ONLY_SHUFFLE [RS_357]
-                                                        Group By Operator [GBY_354] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_353]
+                                                        Group By Operator [GBY_350] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                          Select Operator [SEL_349] (rows=8000000 width=4)
+                                                          Select Operator [SEL_345] (rows=8000000 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Select Operator [SEL_347]
+                                                             Please refer to the previous Select Operator [SEL_343]
                                                 <-Reducer 8 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_363]
-                                                    Group By Operator [GBY_362] (rows=1 width=12)
+                                                  BROADCAST [RS_359]
+                                                    Group By Operator [GBY_358] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Reducer 2 [CUSTOM_SIMPLE_EDGE]
-                                                      SHUFFLE [RS_204]
-                                                        Group By Operator [GBY_203] (rows=1 width=12)
+                                                      SHUFFLE [RS_198]
+                                                        Group By Operator [GBY_197] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_202] (rows=34340 width=4)
+                                                          Select Operator [SEL_196] (rows=34340 width=4)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_295]
+                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_291]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out
index c286c74..fd709f9 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out
@@ -98,37 +98,37 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 9 vectorized
-      File Output Operator [FS_265]
-        Limit [LIM_264] (rows=1 width=240)
+      File Output Operator [FS_273]
+        Limit [LIM_272] (rows=1 width=240)
           Number of rows:100
-          Select Operator [SEL_263] (rows=1 width=240)
+          Select Operator [SEL_271] (rows=1 width=240)
             Output:["_col0","_col1","_col2"]
           <-Reducer 8 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_262]
-              Select Operator [SEL_261] (rows=1 width=240)
+            SHUFFLE [RS_270]
+              Select Operator [SEL_269] (rows=1 width=240)
                 Output:["_col1","_col2","_col3"]
-                Group By Operator [GBY_260] (rows=1 width=232)
+                Group By Operator [GBY_268] (rows=1 width=232)
                   Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"]
                 <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized
-                  PARTITION_ONLY_SHUFFLE [RS_259]
-                    Group By Operator [GBY_258] (rows=1 width=232)
+                  PARTITION_ONLY_SHUFFLE [RS_267]
+                    Group By Operator [GBY_266] (rows=1 width=232)
                       Output:["_col0","_col1","_col2"],aggregations:["count(_col0)","sum(_col1)","sum(_col2)"]
-                      Group By Operator [GBY_257] (rows=143895019 width=228)
+                      Group By Operator [GBY_265] (rows=143895019 width=228)
                         Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0
                       <-Reducer 6 [SIMPLE_EDGE]
                         SHUFFLE [RS_101]
                           PartitionCols:_col0
                           Group By Operator [GBY_100] (rows=143895019 width=228)
                             Output:["_col0","_col2","_col3"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col3
-                            Merge Join Operator [MERGEJOIN_219] (rows=83469759007 width=227)
+                            Merge Join Operator [MERGEJOIN_227] (rows=83469759007 width=227)
                               Conds:RS_47._col3=RS_48._col0(Inner),Output:["_col3","_col4","_col5"]
                             <-Reducer 19 [ONE_TO_ONE_EDGE]
                               FORWARD [RS_48]
                                 PartitionCols:_col0
                                 Select Operator [SEL_34] (rows=1384229738 width=4)
                                   Output:["_col0"]
-                                  Merge Join Operator [MERGEJOIN_213] (rows=1384229738 width=4)
-                                    Conds:RS_31._col0=RS_256.wr_order_number(Inner),Output:["_col14"]
+                                  Merge Join Operator [MERGEJOIN_221] (rows=1384229738 width=4)
+                                    Conds:RS_31._col0=RS_264.wr_order_number(Inner),Output:["_col14"]
                                   <-Reducer 18 [ONE_TO_ONE_EDGE]
                                     FORWARD [RS_31]
                                       PartitionCols:_col0
@@ -136,129 +136,129 @@ Stage-0
                                         Output:["_col0"]
                                         Filter Operator [FIL_28] (rows=1411940834 width=11)
                                           predicate:(_col0 <> _col2)
-                                          Merge Join Operator [MERGEJOIN_212] (rows=1411940834 width=11)
-                                            Conds:RS_252._col1=RS_255._col1(Inner),Output:["_col0","_col1","_col2"]
+                                          Merge Join Operator [MERGEJOIN_220] (rows=1411940834 width=11)
+                                            Conds:RS_260._col1=RS_263._col1(Inner),Output:["_col0","_col1","_col2"]
                                           <-Map 17 [SIMPLE_EDGE] vectorized
-                                            SHUFFLE [RS_252]
+                                            SHUFFLE [RS_260]
                                               PartitionCols:_col1
-                                              Select Operator [SEL_251] (rows=144002668 width=7)
+                                              Select Operator [SEL_259] (rows=144002668 width=7)
                                                 Output:["_col0","_col1"]
-                                                Filter Operator [FIL_250] (rows=144002668 width=7)
+                                                Filter Operator [FIL_258] (rows=144002668 width=7)
                                                   predicate:(in_bloom_filter(ws_order_number, DynamicValue(RS_44_ws1_ws_order_number_bloom_filter)) and ws_order_number BETWEEN DynamicValue(RS_44_ws1_ws_order_number_min) AND DynamicValue(RS_44_ws1_ws_order_number_max))
                                                   TableScan [TS_21] (rows=144002668 width=7)
                                                     default@web_sales,ws1,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_warehouse_sk","ws_order_number"]
                                                   <-Reducer 10 [BROADCAST_EDGE] vectorized
-                                                    BROADCAST [RS_248]
-                                                      Group By Operator [GBY_247] (rows=1 width=12)
+                                                    BROADCAST [RS_256]
+                                                      Group By Operator [GBY_255] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                       <-Reducer 4 [CUSTOM_SIMPLE_EDGE]
-                                                        SHUFFLE [RS_163]
-                                                          Group By Operator [GBY_162] (rows=1 width=12)
+                                                        SHUFFLE [RS_179]
+                                                          Group By Operator [GBY_178] (rows=1 width=12)
                                                             Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                            Select Operator [SEL_161] (rows=5022875 width=8)
+                                                            Select Operator [SEL_177] (rows=5022875 width=8)
                                                               Output:["_col0"]
-                                                              Merge Join Operator [MERGEJOIN_216] (rows=5022875 width=227)
-                                                                Conds:RS_41._col2=RS_238._col0(Inner),Output:["_col3","_col4","_col5"]
+                                                              Merge Join Operator [MERGEJOIN_224] (rows=5022875 width=227)
+                                                                Conds:RS_41._col2=RS_246._col0(Inner),Output:["_col3","_col4","_col5"]
                                                               <-Map 15 [SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_238]
+                                                                SHUFFLE [RS_246]
                                                                   PartitionCols:_col0
-                                                                  Select Operator [SEL_237] (rows=12 width=4)
+                                                                  Select Operator [SEL_245] (rows=12 width=4)
                                                                     Output:["_col0"]
-                                                                    Filter Operator [FIL_236] (rows=12 width=92)
+                                                                    Filter Operator [FIL_244] (rows=12 width=92)
                                                                       predicate:(web_company_name = 'pri')
                                                                       TableScan [TS_9] (rows=84 width=92)
                                                                         default@web_site,web_site,Tbl:COMPLETE,Col:COMPLETE,Output:["web_site_sk","web_company_name"]
                                                               <-Reducer 3 [SIMPLE_EDGE]
                                                                 SHUFFLE [RS_41]
                                                                   PartitionCols:_col2
-                                                                  Merge Join Operator [MERGEJOIN_215] (rows=15673790 width=231)
-                                                                    Conds:RS_38._col1=RS_230._col0(Inner),Output:["_col2","_col3","_col4","_col5"]
+                                                                  Merge Join Operator [MERGEJOIN_223] (rows=15673790 width=231)
+                                                                    Conds:RS_38._col1=RS_238._col0(Inner),Output:["_col2","_col3","_col4","_col5"]
                                                                   <-Map 13 [SIMPLE_EDGE] vectorized
-                                                                    SHUFFLE [RS_230]
+                                                                    SHUFFLE [RS_238]
                                                                       PartitionCols:_col0
-                                                                      Select Operator [SEL_229] (rows=784314 width=4)
+                                                                      Select Operator [SEL_237] (rows=784314 width=4)
                                                                         Output:["_col0"]
-                                                                        Filter Operator [FIL_228] (rows=784314 width=90)
+                                                                        Filter Operator [FIL_236] (rows=784314 width=90)
                                                                           predicate:(ca_state = 'TX')
                                                                           TableScan [TS_6] (rows=40000000 width=90)
                                                                             default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_state"]
                                                                   <-Reducer 2 [SIMPLE_EDGE]
                                                                     SHUFFLE [RS_38]
                                                                       PartitionCols:_col1
-                                                                      Merge Join Operator [MERGEJOIN_214] (rows=15987241 width=235)
-                                                                        Conds:RS_246._col0=RS_222._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"]
+                                                                      Merge Join Operator [MERGEJOIN_222] (rows=15987241 width=235)
+                                                                        Conds:RS_254._col0=RS_230._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"]
                                                                       <-Map 11 [SIMPLE_EDGE] vectorized
-                                                                        SHUFFLE [RS_222]
+                                                                        SHUFFLE [RS_230]
                                                                           PartitionCols:_col0
-                                                                          Select Operator [SEL_221] (rows=8116 width=98)
+                                                                          Select Operator [SEL_229] (rows=8116 width=98)
                                                                             Output:["_col0"]
-                                                                            Filter Operator [FIL_220] (rows=8116 width=98)
+                                                                            Filter Operator [FIL_228] (rows=8116 width=98)
                                                                               predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1999-05-01 00:00:00' AND TIMESTAMP'1999-06-30 00:00:00'
                                                                               TableScan [TS_3] (rows=73049 width=98)
                                                                                 default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_date"]
                                                                       <-Map 1 [SIMPLE_EDGE] vectorized
-                                                                        SHUFFLE [RS_246]
+                                                                        SHUFFLE [RS_254]
                                                                           PartitionCols:_col0
-                                                                          Select Operator [SEL_245] (rows=143895019 width=239)
+                                                                          Select Operator [SEL_253] (rows=143895019 width=239)
                                                                             Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
-                                                                            Filter Operator [FIL_244] (rows=143895019 width=239)
+                                                                            Filter Operator [FIL_252] (rows=143895019 width=239)
                                                                               predicate:((ws_ship_addr_sk BETWEEN DynamicValue(RS_39_customer_address_ca_address_sk_min) AND DynamicValue(RS_39_customer_address_ca_address_sk_max) and in_bloom_filter(ws_ship_addr_sk, DynamicValue(RS_39_customer_address_ca_address_sk_bloom_filter))) and (ws_ship_date_sk BETWEEN DynamicValue(RS_36_date_dim_d_date_sk_min) AND DynamicValue(RS_36_date_dim_d_date_sk_max) and in_bloom_filter(ws_ship_date_sk, DynamicValue(RS_36_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_42_web_site_web_site_sk_min) AND DynamicValue(RS_42_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_42_web_site_web_site_sk_bloom_filter))) and ws_ship_addr_sk is not null and ws_ship_date_sk is not null and ws_web_site_sk is not null)
                                                                               TableScan [TS_0] (rows=144002668 width=239)
                                                                                 default@web_sales,ws1,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_ship_date_sk","ws_ship_addr_sk","ws_web_site_sk","ws_order_number","ws_ext_ship_cost","ws_net_profit"]
                                                                               <-Reducer 12 [BROADCAST_EDGE] vectorized
-                                                                                BROADCAST [RS_227]
-                                                                                  Group By Operator [GBY_226] (rows=1 width=12)
-                                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                                                  <-Map 11 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                                    SHUFFLE [RS_225]
-                                                                                      Group By Operator [GBY_224] (rows=1 width=12)
-                                                                                        Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                                        Select Operator [SEL_223] (rows=8116 width=4)
-                                                                                          Output:["_col0"]
-                                                                                           Please refer to the previous Select Operator [SEL_221]
-                                                                              <-Reducer 14 [BROADCAST_EDGE] vectorized
                                                                                 BROADCAST [RS_235]
                                                                                   Group By Operator [GBY_234] (rows=1 width=12)
                                                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                                                  <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                                  <-Map 11 [CUSTOM_SIMPLE_EDGE] vectorized
                                                                                     SHUFFLE [RS_233]
                                                                                       Group By Operator [GBY_232] (rows=1 width=12)
                                                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                                        Select Operator [SEL_231] (rows=784314 width=4)
+                                                                                        Select Operator [SEL_231] (rows=8116 width=4)
                                                                                           Output:["_col0"]
                                                                                            Please refer to the previous Select Operator [SEL_229]
-                                                                              <-Reducer 16 [BROADCAST_EDGE] vectorized
+                                                                              <-Reducer 14 [BROADCAST_EDGE] vectorized
                                                                                 BROADCAST [RS_243]
                                                                                   Group By Operator [GBY_242] (rows=1 width=12)
                                                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                                                  <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                                  <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized
                                                                                     SHUFFLE [RS_241]
                                                                                       Group By Operator [GBY_240] (rows=1 width=12)
                                                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                                        Select Operator [SEL_239] (rows=12 width=4)
+                                                                                        Select Operator [SEL_239] (rows=784314 width=4)
                                                                                           Output:["_col0"]
                                                                                            Please refer to the previous Select Operator [SEL_237]
+                                                                              <-Reducer 16 [BROADCAST_EDGE] vectorized
+                                                                                BROADCAST [RS_251]
+                                                                                  Group By Operator [GBY_250] (rows=1 width=12)
+                                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                                  <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                                    SHUFFLE [RS_249]
+                                                                                      Group By Operator [GBY_248] (rows=1 width=12)
+                                                                                        Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                                        Select Operator [SEL_247] (rows=12 width=4)
+                                                                                          Output:["_col0"]
+                                                                                           Please refer to the previous Select Operator [SEL_245]
                                           <-Map 20 [SIMPLE_EDGE] vectorized
-                                            SHUFFLE [RS_255]
+                                            SHUFFLE [RS_263]
                                               PartitionCols:_col1
-                                              Select Operator [SEL_254] (rows=144002668 width=7)
+                                              Select Operator [SEL_262] (rows=144002668 width=7)
                                                 Output:["_col0","_col1"]
-                                                Filter Operator [FIL_253] (rows=144002668 width=7)
+                                                Filter Operator [FIL_261] (rows=144002668 width=7)
                                                   predicate:(in_bloom_filter(ws_order_number, DynamicValue(RS_44_ws1_ws_order_number_bloom_filter)) and ws_order_number BETWEEN DynamicValue(RS_44_ws1_ws_order_number_min) AND DynamicValue(RS_44_ws1_ws_order_number_max))
                                                   TableScan [TS_23] (rows=144002668 width=7)
                                                     default@web_sales,ws2,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_warehouse_sk","ws_order_number"]
                                                   <-Reducer 10 [BROADCAST_EDGE] vectorized
-                                                    BROADCAST [RS_249]
-                                                       Please refer to the previous Group By Operator [GBY_247]
+                                                    BROADCAST [RS_257]
+                                                       Please refer to the previous Group By Operator [GBY_255]
                                   <-Map 21 [SIMPLE_EDGE] vectorized
-                                    SHUFFLE [RS_256]
+                                    SHUFFLE [RS_264]
                                       PartitionCols:wr_order_number
                                       TableScan [TS_30] (rows=14398467 width=4)
                                         default@web_returns,web_returns,Tbl:COMPLETE,Col:COMPLETE,Output:["wr_order_number"]
                             <-Reducer 5 [ONE_TO_ONE_EDGE]
                               FORWARD [RS_47]
                                 PartitionCols:_col3
-                                Merge Join Operator [MERGEJOIN_218] (rows=482885639 width=227)
+                                Merge Join Operator [MERGEJOIN_226] (rows=482885639 width=227)
                                   Conds:RS_44._col3=RS_45._col0(Inner),Output:["_col3","_col4","_col5"]
                                 <-Reducer 18 [ONE_TO_ONE_EDGE]
                                   FORWARD [RS_45]
@@ -267,5 +267,5 @@ Stage-0
                                 <-Reducer 4 [SIMPLE_EDGE]
                                   SHUFFLE [RS_44]
                                     PartitionCols:_col3
-                                     Please refer to the previous Merge Join Operator [MERGEJOIN_216]
+                                     Please refer to the previous Merge Join Operator [MERGEJOIN_224]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/query18.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query18.q.out b/ql/src/test/results/clientpositive/perf/tez/query18.q.out
index 1fa1b9e..58fb7a7 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query18.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query18.q.out
@@ -99,16 +99,16 @@ Stage-0
     limit:100
     Stage-1
       Reducer 6 vectorized
-      File Output Operator [FS_184]
-        Limit [LIM_183] (rows=100 width=1165)
+      File Output Operator [FS_182]
+        Limit [LIM_181] (rows=100 width=1165)
           Number of rows:100
-          Select Operator [SEL_182] (rows=10969055 width=1165)
+          Select Operator [SEL_180] (rows=10969055 width=1165)
             Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"]
           <-Reducer 5 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_181]
-              Select Operator [SEL_180] (rows=10969055 width=1165)
+            SHUFFLE [RS_179]
+              Select Operator [SEL_178] (rows=10969055 width=1165)
                 Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"]
-                Group By Operator [GBY_179] (rows=10969055 width=1229)
+                Group By Operator [GBY_177] (rows=10969055 width=1229)
                   Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","sum(VALUE._col2)","count(VALUE._col3)","sum(VALUE._col4)","count(VALUE._col5)","sum(VALUE._col6)","count(VALUE._col7)","sum(VALUE._col8)","count(VALUE._col9)","sum(VALUE._col10)","count(VALUE._col11)","sum(VALUE._col12)","count(VALUE._col13)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4
                 <-Reducer 4 [SIMPLE_EDGE]
                   SHUFFLE [RS_43]
@@ -117,42 +117,42 @@ Stage-0
                       Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"],aggregations:["sum(_col4)","count(_col4)","sum(_col5)","count(_col5)","sum(_col6)","count(_col6)","sum(_col7)","count(_col7)","sum(_col8)","count(_col8)","sum(_col9)","count(_col9)","sum(_col10)","count(_col10)"],keys:_col0, _col1, _col2, _col3, 0L
                       Select Operator [SEL_40] (rows=2193811 width=618)
                         Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"]
-                        Merge Join Operator [MERGEJOIN_145] (rows=2193811 width=618)
+                        Merge Join Operator [MERGEJOIN_143] (rows=2193811 width=618)
                           Conds:RS_37._col0=RS_38._col3(Inner),Output:["_col4","_col6","_col7","_col8","_col11","_col16","_col17","_col18","_col19","_col20","_col26"]
                         <-Reducer 3 [SIMPLE_EDGE]
                           PARTITION_ONLY_SHUFFLE [RS_37]
                             PartitionCols:_col0
-                            Merge Join Operator [MERGEJOIN_141] (rows=4959744 width=287)
-                              Conds:RS_34._col1=RS_154._col0(Inner),Output:["_col0","_col4","_col6","_col7","_col8"]
+                            Merge Join Operator [MERGEJOIN_139] (rows=4959744 width=287)
+                              Conds:RS_34._col1=RS_152._col0(Inner),Output:["_col0","_col4","_col6","_col7","_col8"]
                             <-Map 9 [SIMPLE_EDGE] vectorized
-                              SHUFFLE [RS_154]
+                              SHUFFLE [RS_152]
                                 PartitionCols:_col0
-                                Select Operator [SEL_153] (rows=1861800 width=4)
+                                Select Operator [SEL_151] (rows=1861800 width=4)
                                   Output:["_col0"]
-                                  Filter Operator [FIL_152] (rows=1861800 width=4)
+                                  Filter Operator [FIL_150] (rows=1861800 width=4)
                                     predicate:cd_demo_sk is not null
                                     TableScan [TS_6] (rows=1861800 width=4)
                                       default@customer_demographics,cd2,Tbl:COMPLETE,Col:COMPLETE,Output:["cd_demo_sk"]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_34]
                                 PartitionCols:_col1
-                                Merge Join Operator [MERGEJOIN_140] (rows=4890586 width=290)
-                                  Conds:RS_148._col2=RS_151._col0(Inner),Output:["_col0","_col1","_col4","_col6","_col7","_col8"]
+                                Merge Join Operator [MERGEJOIN_138] (rows=4890586 width=290)
+                                  Conds:RS_146._col2=RS_149._col0(Inner),Output:["_col0","_col1","_col4","_col6","_col7","_col8"]
                                 <-Map 1 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_148]
+                                  SHUFFLE [RS_146]
                                     PartitionCols:_col2
-                                    Select Operator [SEL_147] (rows=35631408 width=19)
+                                    Select Operator [SEL_145] (rows=35631408 width=19)
                                       Output:["_col0","_col1","_col2","_col4"]
-                                      Filter Operator [FIL_146] (rows=35631408 width=19)
+                                      Filter Operator [FIL_144] (rows=35631408 width=19)
                                         predicate:((c_birth_month) IN (9, 5, 12, 4, 1, 10) and c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_customer_sk is not null)
                                         TableScan [TS_0] (rows=80000000 width=19)
                                           default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk","c_birth_month","c_birth_year"]
                                 <-Map 8 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_151]
+                                  SHUFFLE [RS_149]
                                     PartitionCols:_col0
-                                    Select Operator [SEL_150] (rows=5490196 width=285)
+                                    Select Operator [SEL_148] (rows=5490196 width=285)
                                       Output:["_col0","_col1","_col2","_col3"]
-                                      Filter Operator [FIL_149] (rows=5490196 width=285)
+                                      Filter Operator [FIL_147] (rows=5490196 width=285)
                                         predicate:((ca_state) IN ('ND', 'WI', 'AL', 'NC', 'OK', 'MS', 'TN') and ca_address_sk is not null)
                                         TableScan [TS_3] (rows=40000000 width=285)
                                           default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_county","ca_state","ca_country"]
@@ -161,85 +161,85 @@ Stage-0
                             PartitionCols:_col3
                             Select Operator [SEL_30] (rows=15983481 width=529)
                               Output:["_col1","_col3","_col6","_col7","_col8","_col9","_col10","_col16"]
-                              Merge Join Operator [MERGEJOIN_144] (rows=15983481 width=529)
-                                Conds:RS_27._col3=RS_178._col0(Inner),Output:["_col1","_col4","_col5","_col6","_col7","_col8","_col14","_col16"]
+                              Merge Join Operator [MERGEJOIN_142] (rows=15983481 width=529)
+                                Conds:RS_27._col3=RS_176._col0(Inner),Output:["_col1","_col4","_col5","_col6","_col7","_col8","_col14","_col16"]
                               <-Map 18 [SIMPLE_EDGE] vectorized
-                                SHUFFLE [RS_178]
+                                SHUFFLE [RS_176]
                                   PartitionCols:_col0
-                                  Select Operator [SEL_177] (rows=462000 width=104)
+                                  Select Operator [SEL_175] (rows=462000 width=104)
                                     Output:["_col0","_col1"]
-                                    Filter Operator [FIL_176] (rows=462000 width=104)
+                                    Filter Operator [FIL_174] (rows=462000 width=104)
                                       predicate:i_item_sk is not null
                                       TableScan [TS_18] (rows=462000 width=104)
                                         default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_id"]
                               <-Reducer 12 [SIMPLE_EDGE]
                                 SHUFFLE [RS_27]
                                   PartitionCols:_col3
-                                  Merge Join Operator [MERGEJOIN_143] (rows=15983481 width=433)
-                                    Conds:RS_24._col2=RS_165._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col14"]
+                                  Merge Join Operator [MERGEJOIN_141] (rows=15983481 width=433)
+                                    Conds:RS_24._col2=RS_163._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col14"]
                                   <-Map 16 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_165]
+                                    PARTITION_ONLY_SHUFFLE [RS_163]
                                       PartitionCols:_col0
-                                      Select Operator [SEL_164] (rows=103433 width=184)
+                                      Select Operator [SEL_162] (rows=103433 width=184)
                                         Output:["_col0","_col3"]
-                                        Filter Operator [FIL_163] (rows=103433 width=187)
+                                        Filter Operator [FIL_161] (rows=103433 width=187)
                                           predicate:((cd_education_status = 'College') and (cd_gender = 'M') and cd_demo_sk is not null)
                                           TableScan [TS_15] (rows=1861800 width=187)
                                             default@customer_demographics,cd1,Tbl:COMPLETE,Col:COMPLETE,Output:["cd_demo_sk","cd_gender","cd_education_status","cd_dep_count"]
                                   <-Reducer 11 [SIMPLE_EDGE]
                                     SHUFFLE [RS_24]
                                       PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_142] (rows=100578970 width=459)
-                                        Conds:RS_175._col0=RS_157._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
+                                      Merge Join Operator [MERGEJOIN_140] (rows=100578970 width=459)
+                                        Conds:RS_173._col0=RS_155._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
                                       <-Map 14 [SIMPLE_EDGE] vectorized
-                                        PARTITION_ONLY_SHUFFLE [RS_157]
+                                        PARTITION_ONLY_SHUFFLE [RS_155]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_156] (rows=652 width=8)
+                                          Select Operator [SEL_154] (rows=652 width=8)
                                             Output:["_col0"]
-                                            Filter Operator [FIL_155] (rows=652 width=8)
+                                            Filter Operator [FIL_153] (rows=652 width=8)
                                               predicate:((d_year = 2001) and d_date_sk is not null)
                                               TableScan [TS_12] (rows=73049 width=8)
                                                 default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"]
                                       <-Map 10 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_175]
+                                        SHUFFLE [RS_173]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_174] (rows=283692098 width=466)
+                                          Select Operator [SEL_172] (rows=283692098 width=466)
                                             Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
-                                            Filter Operator [FIL_173] (rows=283692098 width=466)
+                                            Filter Operator [FIL_171] (rows=283692098 width=466)
                                               predicate:((cs_bill_cdemo_sk BETWEEN DynamicValue(RS_25_cd1_cd_demo_sk_min) AND DynamicValue(RS_25_cd1_cd_demo_sk_max) and in_bloom_filter(cs_bill_cdemo_sk, DynamicValue(RS_25_cd1_cd_demo_sk_bloom_filter))) and (cs_bill_customer_sk BETWEEN DynamicValue(RS_37_customer_c_customer_sk_min) AND DynamicValue(RS_37_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_37_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_22_date_dim_d_date_sk_min) AND DynamicValue(RS_22_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_22_date_dim_d_date_sk_bloom_filter))) and cs_bill_cdemo_sk is not null and cs_bill_customer_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null)
                                               TableScan [TS_9] (rows=287989836 width=466)
                                                 default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_bill_cdemo_sk","cs_item_sk","cs_quantity","cs_list_price","cs_sales_price","cs_coupon_amt","cs_net_profit"]
                                               <-Reducer 15 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_162]
-                                                  Group By Operator [GBY_161] (rows=1 width=12)
+                                                BROADCAST [RS_160]
+                                                  Group By Operator [GBY_159] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_160]
-                                                      Group By Operator [GBY_159] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_158]
+                                                      Group By Operator [GBY_157] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_158] (rows=652 width=4)
+                                                        Select Operator [SEL_156] (rows=652 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_156]
+                                                           Please refer to the previous Select Operator [SEL_154]
                                               <-Reducer 17 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_170]
-                                                  Group By Operator [GBY_169] (rows=1 width=12)
+                                                BROADCAST [RS_168]
+                                                  Group By Operator [GBY_167] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_168]
-                                                      Group By Operator [GBY_167] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_166]
+                                                      Group By Operator [GBY_165] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_166] (rows=103433 width=4)
+                                                        Select Operator [SEL_164] (rows=103433 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_164]
+                                                           Please refer to the previous Select Operator [SEL_162]
                                               <-Reducer 7 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_172]
-                                                  Group By Operator [GBY_171] (rows=1 width=12)
+                                                BROADCAST [RS_170]
+                                                  Group By Operator [GBY_169] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=4890586)"]
                                                   <-Reducer 3 [CUSTOM_SIMPLE_EDGE]
-                                                    PARTITION_ONLY_SHUFFLE [RS_126]
-                                                      Group By Operator [GBY_125] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_120]
+                                                      Group By Operator [GBY_119] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=4890586)"]
-                                                        Select Operator [SEL_124] (rows=4959744 width=4)
+                                                        Select Operator [SEL_118] (rows=4959744 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_141]
+                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_139]
 


[5/6] hive git commit: HIVE-20788: Extended SJ reduction may backtrack columns incorrectly when creating filters (Jesus Camacho Rodriguez, reviewed by Deepak Jaiswal)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out
index ff4c05f..b7f9778 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out
@@ -99,56 +99,56 @@ Stage-0
     limit:100
     Stage-1
       Reducer 6 vectorized
-      File Output Operator [FS_179]
-        Limit [LIM_178] (rows=100 width=1165)
+      File Output Operator [FS_177]
+        Limit [LIM_176] (rows=100 width=1165)
           Number of rows:100
-          Select Operator [SEL_177] (rows=10969055 width=1165)
+          Select Operator [SEL_175] (rows=10969055 width=1165)
             Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"]
           <-Reducer 5 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_176]
-              Select Operator [SEL_175] (rows=10969055 width=1165)
+            SHUFFLE [RS_174]
+              Select Operator [SEL_173] (rows=10969055 width=1165)
                 Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"]
-                Group By Operator [GBY_174] (rows=10969055 width=1229)
+                Group By Operator [GBY_172] (rows=10969055 width=1229)
                   Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","sum(VALUE._col2)","count(VALUE._col3)","sum(VALUE._col4)","count(VALUE._col5)","sum(VALUE._col6)","count(VALUE._col7)","sum(VALUE._col8)","count(VALUE._col9)","sum(VALUE._col10)","count(VALUE._col11)","sum(VALUE._col12)","count(VALUE._col13)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4
                 <-Reducer 4 [SIMPLE_EDGE]
                   SHUFFLE [RS_40]
                     PartitionCols:_col0, _col1, _col2, _col3, _col4
                     Group By Operator [GBY_39] (rows=10969055 width=1229)
                       Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"],aggregations:["sum(_col15)","count(_col15)","sum(_col16)","count(_col16)","sum(_col17)","count(_col17)","sum(_col18)","count(_col18)","sum(_col19)","count(_col19)","sum(_col3)","count(_col3)","sum(_col22)","count(_col22)"],keys:_col5, _col6, _col7, _col10, 0L
-                      Merge Join Operator [MERGEJOIN_142] (rows=2193811 width=811)
+                      Merge Join Operator [MERGEJOIN_140] (rows=2193811 width=811)
                         Conds:RS_35._col0=RS_36._col3(Inner),Output:["_col3","_col5","_col6","_col7","_col10","_col15","_col16","_col17","_col18","_col19","_col22"]
                       <-Reducer 3 [SIMPLE_EDGE]
                         PARTITION_ONLY_SHUFFLE [RS_35]
                           PartitionCols:_col0
-                          Merge Join Operator [MERGEJOIN_138] (rows=4959744 width=368)
-                            Conds:RS_32._col1=RS_150._col0(Inner),Output:["_col0","_col3","_col5","_col6","_col7"]
+                          Merge Join Operator [MERGEJOIN_136] (rows=4959744 width=368)
+                            Conds:RS_32._col1=RS_148._col0(Inner),Output:["_col0","_col3","_col5","_col6","_col7"]
                           <-Map 9 [SIMPLE_EDGE] vectorized
-                            SHUFFLE [RS_150]
+                            SHUFFLE [RS_148]
                               PartitionCols:_col0
-                              Select Operator [SEL_149] (rows=1861800 width=4)
+                              Select Operator [SEL_147] (rows=1861800 width=4)
                                 Output:["_col0"]
                                 TableScan [TS_6] (rows=1861800 width=4)
                                   default@customer_demographics,cd2,Tbl:COMPLETE,Col:COMPLETE,Output:["cd_demo_sk"]
                           <-Reducer 2 [SIMPLE_EDGE]
                             SHUFFLE [RS_32]
                               PartitionCols:_col1
-                              Merge Join Operator [MERGEJOIN_137] (rows=4890586 width=371)
-                                Conds:RS_145._col2=RS_148._col0(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7"]
+                              Merge Join Operator [MERGEJOIN_135] (rows=4890586 width=371)
+                                Conds:RS_143._col2=RS_146._col0(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7"]
                               <-Map 1 [SIMPLE_EDGE] vectorized
-                                SHUFFLE [RS_145]
+                                SHUFFLE [RS_143]
                                   PartitionCols:_col2
-                                  Select Operator [SEL_144] (rows=35631408 width=119)
+                                  Select Operator [SEL_142] (rows=35631408 width=119)
                                     Output:["_col0","_col1","_col2","_col3"]
-                                    Filter Operator [FIL_143] (rows=35631408 width=19)
+                                    Filter Operator [FIL_141] (rows=35631408 width=19)
                                       predicate:((c_birth_month) IN (9, 5, 12, 4, 1, 10) and c_current_addr_sk is not null and c_current_cdemo_sk is not null)
                                       TableScan [TS_0] (rows=80000000 width=19)
                                         default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk","c_birth_month","c_birth_year"]
                               <-Map 8 [SIMPLE_EDGE] vectorized
-                                SHUFFLE [RS_148]
+                                SHUFFLE [RS_146]
                                   PartitionCols:_col0
-                                  Select Operator [SEL_147] (rows=5490196 width=285)
+                                  Select Operator [SEL_145] (rows=5490196 width=285)
                                     Output:["_col0","_col1","_col2","_col3"]
-                                    Filter Operator [FIL_146] (rows=5490196 width=285)
+                                    Filter Operator [FIL_144] (rows=5490196 width=285)
                                       predicate:(ca_state) IN ('ND', 'WI', 'AL', 'NC', 'OK', 'MS', 'TN')
                                       TableScan [TS_3] (rows=40000000 width=285)
                                         default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_county","ca_state","ca_country"]
@@ -157,83 +157,83 @@ Stage-0
                           PartitionCols:_col3
                           Select Operator [SEL_28] (rows=15983481 width=735)
                             Output:["_col1","_col3","_col6","_col7","_col8","_col9","_col10","_col13"]
-                            Merge Join Operator [MERGEJOIN_141] (rows=15983481 width=735)
-                              Conds:RS_25._col3=RS_173._col0(Inner),Output:["_col1","_col4","_col5","_col6","_col7","_col8","_col11","_col13"]
+                            Merge Join Operator [MERGEJOIN_139] (rows=15983481 width=735)
+                              Conds:RS_25._col3=RS_171._col0(Inner),Output:["_col1","_col4","_col5","_col6","_col7","_col8","_col11","_col13"]
                             <-Map 18 [SIMPLE_EDGE] vectorized
-                              SHUFFLE [RS_173]
+                              SHUFFLE [RS_171]
                                 PartitionCols:_col0
-                                Select Operator [SEL_172] (rows=462000 width=104)
+                                Select Operator [SEL_170] (rows=462000 width=104)
                                   Output:["_col0","_col1"]
                                   TableScan [TS_17] (rows=462000 width=104)
                                     default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_id"]
                             <-Reducer 12 [SIMPLE_EDGE]
                               SHUFFLE [RS_25]
                                 PartitionCols:_col3
-                                Merge Join Operator [MERGEJOIN_140] (rows=15983481 width=639)
-                                  Conds:RS_22._col2=RS_161._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col11"]
+                                Merge Join Operator [MERGEJOIN_138] (rows=15983481 width=639)
+                                  Conds:RS_22._col2=RS_159._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col11"]
                                 <-Map 16 [SIMPLE_EDGE] vectorized
-                                  PARTITION_ONLY_SHUFFLE [RS_161]
+                                  PARTITION_ONLY_SHUFFLE [RS_159]
                                     PartitionCols:_col0
-                                    Select Operator [SEL_160] (rows=103433 width=116)
+                                    Select Operator [SEL_158] (rows=103433 width=116)
                                       Output:["_col0","_col1"]
-                                      Filter Operator [FIL_159] (rows=103433 width=187)
+                                      Filter Operator [FIL_157] (rows=103433 width=187)
                                         predicate:((cd_education_status = 'College') and (cd_gender = 'M'))
                                         TableScan [TS_14] (rows=1861800 width=187)
                                           default@customer_demographics,cd1,Tbl:COMPLETE,Col:COMPLETE,Output:["cd_demo_sk","cd_gender","cd_education_status","cd_dep_count"]
                                 <-Reducer 11 [SIMPLE_EDGE]
                                   SHUFFLE [RS_22]
                                     PartitionCols:_col2
-                                    Merge Join Operator [MERGEJOIN_139] (rows=100578970 width=565)
-                                      Conds:RS_171._col0=RS_153._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
+                                    Merge Join Operator [MERGEJOIN_137] (rows=100578970 width=565)
+                                      Conds:RS_169._col0=RS_151._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
                                     <-Map 14 [SIMPLE_EDGE] vectorized
-                                      PARTITION_ONLY_SHUFFLE [RS_153]
+                                      PARTITION_ONLY_SHUFFLE [RS_151]
                                         PartitionCols:_col0
-                                        Select Operator [SEL_152] (rows=652 width=4)
+                                        Select Operator [SEL_150] (rows=652 width=4)
                                           Output:["_col0"]
-                                          Filter Operator [FIL_151] (rows=652 width=8)
+                                          Filter Operator [FIL_149] (rows=652 width=8)
                                             predicate:(d_year = 2001)
                                             TableScan [TS_11] (rows=73049 width=8)
                                               default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"]
                                     <-Map 10 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_171]
+                                      SHUFFLE [RS_169]
                                         PartitionCols:_col0
-                                        Select Operator [SEL_170] (rows=283692098 width=573)
+                                        Select Operator [SEL_168] (rows=283692098 width=573)
                                           Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
-                                          Filter Operator [FIL_169] (rows=283692098 width=466)
+                                          Filter Operator [FIL_167] (rows=283692098 width=466)
                                             predicate:((cs_bill_cdemo_sk BETWEEN DynamicValue(RS_23_cd1_cd_demo_sk_min) AND DynamicValue(RS_23_cd1_cd_demo_sk_max) and in_bloom_filter(cs_bill_cdemo_sk, DynamicValue(RS_23_cd1_cd_demo_sk_bloom_filter))) and (cs_bill_customer_sk BETWEEN DynamicValue(RS_35_customer_c_customer_sk_min) AND DynamicValue(RS_35_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_35_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_20_date_dim_d_date_sk_min) AND DynamicValue(RS_20_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_20_date_dim_d_date_sk_bloom_filter))) and cs_bill_cdemo_sk is not null and cs_bill_customer_sk is not null and cs_sold_date_sk is not null)
                                             TableScan [TS_8] (rows=287989836 width=466)
                                               default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_bill_cdemo_sk","cs_item_sk","cs_quantity","cs_list_price","cs_sales_price","cs_coupon_amt","cs_net_profit"]
                                             <-Reducer 15 [BROADCAST_EDGE] vectorized
-                                              BROADCAST [RS_158]
-                                                Group By Operator [GBY_157] (rows=1 width=12)
+                                              BROADCAST [RS_156]
+                                                Group By Operator [GBY_155] (rows=1 width=12)
                                                   Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                 <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                  PARTITION_ONLY_SHUFFLE [RS_156]
-                                                    Group By Operator [GBY_155] (rows=1 width=12)
+                                                  PARTITION_ONLY_SHUFFLE [RS_154]
+                                                    Group By Operator [GBY_153] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                      Select Operator [SEL_154] (rows=652 width=4)
+                                                      Select Operator [SEL_152] (rows=652 width=4)
                                                         Output:["_col0"]
-                                                         Please refer to the previous Select Operator [SEL_152]
+                                                         Please refer to the previous Select Operator [SEL_150]
                                             <-Reducer 17 [BROADCAST_EDGE] vectorized
-                                              BROADCAST [RS_166]
-                                                Group By Operator [GBY_165] (rows=1 width=12)
+                                              BROADCAST [RS_164]
+                                                Group By Operator [GBY_163] (rows=1 width=12)
                                                   Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                 <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                  PARTITION_ONLY_SHUFFLE [RS_164]
-                                                    Group By Operator [GBY_163] (rows=1 width=12)
+                                                  PARTITION_ONLY_SHUFFLE [RS_162]
+                                                    Group By Operator [GBY_161] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                      Select Operator [SEL_162] (rows=103433 width=4)
+                                                      Select Operator [SEL_160] (rows=103433 width=4)
                                                         Output:["_col0"]
-                                                         Please refer to the previous Select Operator [SEL_160]
+                                                         Please refer to the previous Select Operator [SEL_158]
                                             <-Reducer 7 [BROADCAST_EDGE] vectorized
-                                              BROADCAST [RS_168]
-                                                Group By Operator [GBY_167] (rows=1 width=12)
+                                              BROADCAST [RS_166]
+                                                Group By Operator [GBY_165] (rows=1 width=12)
                                                   Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=4890586)"]
                                                 <-Reducer 3 [CUSTOM_SIMPLE_EDGE]
-                                                  PARTITION_ONLY_SHUFFLE [RS_123]
-                                                    Group By Operator [GBY_122] (rows=1 width=12)
+                                                  PARTITION_ONLY_SHUFFLE [RS_117]
+                                                    Group By Operator [GBY_116] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=4890586)"]
-                                                      Select Operator [SEL_121] (rows=4959744 width=4)
+                                                      Select Operator [SEL_115] (rows=4959744 width=4)
                                                         Output:["_col0"]
-                                                         Please refer to the previous Merge Join Operator [MERGEJOIN_138]
+                                                         Please refer to the previous Merge Join Operator [MERGEJOIN_136]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out
index 7fbbc05..fb77386 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out
@@ -1,4 +1,4 @@
-Warning: Shuffle Join MERGEJOIN[287][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 8' is a cross product
+Warning: Shuffle Join MERGEJOIN[298][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product
 PREHOOK: query: explain
 with ssales as
 (select c_last_name
@@ -23,7 +23,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -79,7 +80,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -114,230 +116,248 @@ POSTHOOK: Output: hdfs://### HDFS PATH ###
 Plan optimized by CBO.
 
 Vertex dependency in root stage
-Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE)
-Map 24 <- Reducer 20 (BROADCAST_EDGE)
-Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE)
-Reducer 11 <- Map 9 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE)
-Reducer 12 <- Map 22 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE)
-Reducer 13 <- Map 23 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE)
-Reducer 14 <- Reducer 13 (SIMPLE_EDGE)
-Reducer 15 <- Reducer 14 (CUSTOM_SIMPLE_EDGE)
-Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE)
-Reducer 18 <- Map 16 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE)
-Reducer 19 <- Map 21 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE)
-Reducer 20 <- Map 16 (CUSTOM_SIMPLE_EDGE)
-Reducer 3 <- Map 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
-Reducer 4 <- Map 21 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
-Reducer 5 <- Map 22 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE)
-Reducer 6 <- Map 23 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE)
-Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
-Reducer 8 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE)
+Map 1 <- Reducer 16 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE)
+Map 25 <- Reducer 22 (BROADCAST_EDGE)
+Reducer 10 <- Map 24 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE)
+Reducer 11 <- Reducer 10 (SIMPLE_EDGE)
+Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE)
+Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE)
+Reducer 15 <- Map 23 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE)
+Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE)
+Reducer 17 <- Reducer 15 (CUSTOM_SIMPLE_EDGE)
+Reducer 18 <- Map 13 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE)
+Reducer 19 <- Map 25 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+Reducer 20 <- Map 21 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE)
+Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE)
+Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 4 <- Map 24 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (SIMPLE_EDGE)
+Reducer 6 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE)
+Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE)
+Reducer 9 <- Map 7 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
     limit:-1
     Stage-1
-      Reducer 8
-      File Output Operator [FS_88]
-        Select Operator [SEL_87] (rows=78393744 width=380)
+      Reducer 6
+      File Output Operator [FS_91]
+        Select Operator [SEL_90] (rows=1313165 width=380)
           Output:["_col0","_col1","_col2","_col3"]
-          Filter Operator [FIL_86] (rows=78393744 width=492)
+          Filter Operator [FIL_89] (rows=1313165 width=492)
             predicate:(_col3 > _col4)
-            Merge Join Operator [MERGEJOIN_287] (rows=235181232 width=492)
+            Merge Join Operator [MERGEJOIN_298] (rows=3939496 width=492)
               Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"]
-            <-Reducer 15 [CUSTOM_SIMPLE_EDGE] vectorized
-              PARTITION_ONLY_SHUFFLE [RS_340]
-                Select Operator [SEL_339] (rows=1 width=112)
+            <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized
+              PARTITION_ONLY_SHUFFLE [RS_350]
+                Select Operator [SEL_349] (rows=1 width=112)
                   Output:["_col0"]
-                  Group By Operator [GBY_338] (rows=1 width=120)
+                  Group By Operator [GBY_348] (rows=1 width=120)
                     Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"]
-                  <-Reducer 14 [CUSTOM_SIMPLE_EDGE] vectorized
-                    PARTITION_ONLY_SHUFFLE [RS_337]
-                      Group By Operator [GBY_336] (rows=1 width=120)
+                  <-Reducer 11 [CUSTOM_SIMPLE_EDGE] vectorized
+                    PARTITION_ONLY_SHUFFLE [RS_347]
+                      Group By Operator [GBY_346] (rows=1 width=120)
                         Output:["_col0","_col1"],aggregations:["sum(_col10)","count(_col10)"]
-                        Select Operator [SEL_335] (rows=2121289008973 width=932)
+                        Select Operator [SEL_345] (rows=8029453 width=932)
                           Output:["_col10"]
-                          Group By Operator [GBY_334] (rows=2121289008973 width=932)
+                          Group By Operator [GBY_344] (rows=8029453 width=932)
                             Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9
-                          <-Reducer 13 [SIMPLE_EDGE]
-                            SHUFFLE [RS_75]
+                          <-Reducer 10 [SIMPLE_EDGE]
+                            SHUFFLE [RS_78]
                               PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                              Group By Operator [GBY_74] (rows=2121289008973 width=932)
-                                Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col4)"],keys:_col10, _col11, _col6, _col7, _col14, _col15, _col16, _col17, _col18, _col21
-                                Merge Join Operator [MERGEJOIN_286] (rows=2121289008973 width=932)
-                                  Conds:RS_70._col12, _col8=RS_323._col2, _col1(Inner),Output:["_col4","_col6","_col7","_col10","_col11","_col14","_col15","_col16","_col17","_col18","_col21"]
-                                <-Map 23 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_323]
-                                    PartitionCols:_col2, _col1
-                                    Select Operator [SEL_321] (rows=40000000 width=359)
-                                      Output:["_col0","_col1","_col2"]
-                                      Filter Operator [FIL_320] (rows=40000000 width=272)
-                                        predicate:(ca_zip is not null and upper(ca_country) is not null)
-                                        TableScan [TS_14] (rows=40000000 width=272)
-                                          default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_state","ca_zip","ca_country"]
-                                <-Reducer 12 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_70]
-                                    PartitionCols:_col12, _col8
-                                    Merge Join Operator [MERGEJOIN_285] (rows=537799796 width=1023)
-                                      Conds:RS_67._col0, _col3=RS_319._col0, _col1(Inner),Output:["_col4","_col6","_col7","_col8","_col10","_col11","_col12","_col14","_col15","_col16","_col17","_col18"]
-                                    <-Map 22 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_319]
-                                        PartitionCols:_col0, _col1
-                                        Select Operator [SEL_317] (rows=57591150 width=8)
-                                          Output:["_col0","_col1"]
-                                          TableScan [TS_12] (rows=57591150 width=8)
-                                            default@store_returns,store_returns,Tbl:COMPLETE,Col:COMPLETE,Output:["sr_item_sk","sr_ticket_number"]
-                                    <-Reducer 11 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_67]
-                                        PartitionCols:_col0, _col3
-                                        Merge Join Operator [MERGEJOIN_284] (rows=385681992 width=1029)
-                                          Conds:RS_64._col0=RS_291._col0(Inner),Output:["_col0","_col3","_col4","_col6","_col7","_col8","_col10","_col11","_col12","_col14","_col15","_col16","_col17","_col18"]
-                                        <-Map 9 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_291]
-                                            PartitionCols:_col0
-                                            Select Operator [SEL_289] (rows=462000 width=384)
-                                              Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
-                                              TableScan [TS_3] (rows=462000 width=384)
-                                                default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_current_price","i_size","i_color","i_units","i_manager_id"]
-                                        <-Reducer 19 [SIMPLE_EDGE]
-                                          SHUFFLE [RS_64]
-                                            PartitionCols:_col0
-                                            Merge Join Operator [MERGEJOIN_283] (rows=385681992 width=648)
-                                              Conds:RS_61._col1=RS_316._col0(Inner),Output:["_col0","_col3","_col4","_col6","_col7","_col8","_col10","_col11","_col12"]
-                                            <-Map 21 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_316]
-                                                PartitionCols:_col0
-                                                Select Operator [SEL_314] (rows=80000000 width=276)
-                                                  Output:["_col0","_col1","_col2","_col3"]
-                                                  Filter Operator [FIL_313] (rows=80000000 width=276)
-                                                    predicate:c_birth_country is not null
-                                                    TableScan [TS_9] (rows=80000000 width=276)
-                                                      default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_first_name","c_last_name","c_birth_country"]
-                                            <-Reducer 18 [SIMPLE_EDGE]
-                                              SHUFFLE [RS_61]
-                                                PartitionCols:_col1
-                                                Merge Join Operator [MERGEJOIN_282] (rows=385681992 width=379)
-                                                  Conds:RS_333._col2=RS_302._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col6","_col7","_col8"]
-                                                <-Map 16 [SIMPLE_EDGE] vectorized
-                                                  SHUFFLE [RS_302]
-                                                    PartitionCols:_col0
-                                                    Select Operator [SEL_299] (rows=155 width=267)
-                                                      Output:["_col0","_col1","_col2","_col3"]
-                                                      Filter Operator [FIL_298] (rows=155 width=271)
-                                                        predicate:((s_market_id = 7) and s_zip is not null)
-                                                        TableScan [TS_6] (rows=1704 width=270)
-                                                          default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_store_name","s_market_id","s_state","s_zip"]
-                                                <-Map 24 [SIMPLE_EDGE] vectorized
-                                                  SHUFFLE [RS_333]
-                                                    PartitionCols:_col2
-                                                    Select Operator [SEL_332] (rows=525333486 width=122)
-                                                      Output:["_col0","_col1","_col2","_col3","_col4"]
-                                                      Filter Operator [FIL_331] (rows=525333486 width=122)
-                                                        predicate:((ss_store_sk BETWEEN DynamicValue(RS_59_store_s_store_sk_min) AND DynamicValue(RS_59_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_59_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_store_sk is not null)
-                                                        TableScan [TS_42] (rows=575995635 width=122)
-                                                          default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"]
-                                                        <-Reducer 20 [BROADCAST_EDGE] vectorized
-                                                          BROADCAST [RS_330]
-                                                            Group By Operator [GBY_329] (rows=1 width=12)
-                                                              Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                            <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                              SHUFFLE [RS_307]
-                                                                Group By Operator [GBY_305] (rows=1 width=12)
-                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                  Select Operator [SEL_303] (rows=155 width=4)
-                                                                    Output:["_col0"]
-                                                                     Please refer to the previous Select Operator [SEL_299]
-            <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized
-              PARTITION_ONLY_SHUFFLE [RS_328]
-                Select Operator [SEL_327] (rows=235181232 width=380)
-                  Output:["_col0","_col1","_col2","_col3"]
-                  Group By Operator [GBY_326] (rows=235181232 width=380)
-                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col9)"],keys:_col1, _col2, _col7
-                    Select Operator [SEL_325] (rows=365777643230 width=843)
-                      Output:["_col1","_col2","_col7","_col9"]
-                      Group By Operator [GBY_324] (rows=365777643230 width=843)
-                        Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8
-                      <-Reducer 6 [SIMPLE_EDGE]
-                        SHUFFLE [RS_34]
-                          PartitionCols:_col0, _col1, _col2
-                          Group By Operator [GBY_33] (rows=365777643230 width=843)
-                            Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col4)"],keys:_col15, _col16, _col11, _col20, _col6, _col7, _col8, _col9, _col12
-                            Merge Join Operator [MERGEJOIN_281] (rows=365777643230 width=843)
-                              Conds:RS_29._col13, _col17=RS_322._col1, _col2(Inner),Output:["_col4","_col6","_col7","_col8","_col9","_col11","_col12","_col15","_col16","_col20"]
-                            <-Map 23 [SIMPLE_EDGE] vectorized
-                              SHUFFLE [RS_322]
-                                PartitionCols:_col1, _col2
-                                 Please refer to the previous Select Operator [SEL_321]
-                            <-Reducer 5 [SIMPLE_EDGE]
-                              SHUFFLE [RS_29]
-                                PartitionCols:_col13, _col17
-                                Merge Join Operator [MERGEJOIN_280] (rows=92733777 width=910)
-                                  Conds:RS_26._col0, _col3=RS_318._col0, _col1(Inner),Output:["_col4","_col6","_col7","_col8","_col9","_col11","_col12","_col13","_col15","_col16","_col17"]
-                                <-Map 22 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_318]
+                              Group By Operator [GBY_77] (rows=8029453 width=932)
+                                Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col13)"],keys:_col2, _col3, _col6, _col15, _col16, _col19, _col20, _col21, _col22, _col23
+                                Merge Join Operator [MERGEJOIN_297] (rows=13238221 width=865)
+                                  Conds:RS_73._col9, _col12=RS_333._col0, _col1(Inner),Output:["_col2","_col3","_col6","_col13","_col15","_col16","_col19","_col20","_col21","_col22","_col23"]
+                                <-Map 24 [SIMPLE_EDGE] vectorized
+                                  SHUFFLE [RS_333]
                                     PartitionCols:_col0, _col1
-                                     Please refer to the previous Select Operator [SEL_317]
-                                <-Reducer 4 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_26]
-                                    PartitionCols:_col0, _col3
-                                    Merge Join Operator [MERGEJOIN_279] (rows=56246341 width=899)
-                                      Conds:RS_23._col1=RS_315._col0(Inner),Output:["_col0","_col3","_col4","_col6","_col7","_col8","_col9","_col11","_col12","_col13","_col15","_col16","_col17"]
-                                    <-Map 21 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_315]
+                                    Select Operator [SEL_331] (rows=57591150 width=8)
+                                      Output:["_col0","_col1"]
+                                      TableScan [TS_23] (rows=57591150 width=8)
+                                        default@store_returns,store_returns,Tbl:COMPLETE,Col:COMPLETE,Output:["sr_item_sk","sr_ticket_number"]
+                                <-Reducer 9 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_73]
+                                    PartitionCols:_col9, _col12
+                                    Merge Join Operator [MERGEJOIN_296] (rows=8029453 width=828)
+                                      Conds:RS_70._col9=RS_302._col0(Inner),Output:["_col2","_col3","_col6","_col9","_col12","_col13","_col15","_col16","_col19","_col20","_col21","_col22","_col23"]
+                                    <-Map 7 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_302]
                                         PartitionCols:_col0
-                                         Please refer to the previous Select Operator [SEL_314]
-                                    <-Reducer 3 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_23]
-                                        PartitionCols:_col1
-                                        Merge Join Operator [MERGEJOIN_278] (rows=56246341 width=630)
-                                          Conds:RS_20._col2=RS_300._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col6","_col7","_col8","_col9","_col11","_col12","_col13"]
-                                        <-Map 16 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_300]
-                                            PartitionCols:_col0
-                                             Please refer to the previous Select Operator [SEL_299]
-                                        <-Reducer 2 [SIMPLE_EDGE]
-                                          SHUFFLE [RS_20]
-                                            PartitionCols:_col2
-                                            Merge Join Operator [MERGEJOIN_277] (rows=76612563 width=382)
-                                              Conds:RS_312._col0=RS_292._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col6","_col7","_col8","_col9"]
-                                            <-Map 9 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_292]
-                                                PartitionCols:_col0
-                                                Select Operator [SEL_290] (rows=7000 width=295)
-                                                  Output:["_col0","_col1","_col2","_col3","_col4"]
-                                                  Filter Operator [FIL_288] (rows=7000 width=384)
-                                                    predicate:(i_color = 'orchid')
-                                                     Please refer to the previous TableScan [TS_3]
-                                            <-Map 1 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_312]
-                                                PartitionCols:_col0
-                                                Select Operator [SEL_311] (rows=525333486 width=122)
+                                        Select Operator [SEL_300] (rows=462000 width=384)
+                                          Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+                                          TableScan [TS_3] (rows=462000 width=384)
+                                            default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_current_price","i_size","i_color","i_units","i_manager_id"]
+                                    <-Reducer 20 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_70]
+                                        PartitionCols:_col9
+                                        Merge Join Operator [MERGEJOIN_295] (rows=8029453 width=448)
+                                          Conds:RS_67._col7, _col11=RS_316._col3, _col0(Inner),Output:["_col2","_col3","_col6","_col9","_col12","_col13","_col15","_col16"]
+                                        <-Map 21 [SIMPLE_EDGE] vectorized
+                                          PARTITION_ONLY_SHUFFLE [RS_316]
+                                            PartitionCols:_col3, _col0
+                                            Select Operator [SEL_314] (rows=155 width=267)
+                                              Output:["_col0","_col1","_col2","_col3"]
+                                              Filter Operator [FIL_313] (rows=155 width=271)
+                                                predicate:((s_market_id = 7) and s_zip is not null)
+                                                TableScan [TS_9] (rows=1704 width=270)
+                                                  default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_store_name","s_market_id","s_state","s_zip"]
+                                        <-Reducer 19 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_67]
+                                            PartitionCols:_col7, _col11
+                                            Merge Join Operator [MERGEJOIN_294] (rows=525333486 width=473)
+                                              Conds:RS_64._col0=RS_343._col1(Inner),Output:["_col2","_col3","_col6","_col7","_col9","_col11","_col12","_col13"]
+                                            <-Map 25 [SIMPLE_EDGE] vectorized
+                                              SHUFFLE [RS_343]
+                                                PartitionCols:_col1
+                                                Select Operator [SEL_342] (rows=525333486 width=122)
                                                   Output:["_col0","_col1","_col2","_col3","_col4"]
-                                                  Filter Operator [FIL_310] (rows=525333486 width=122)
-                                                    predicate:((ss_item_sk BETWEEN DynamicValue(RS_18_item_i_item_sk_min) AND DynamicValue(RS_18_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_18_item_i_item_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_21_store_s_store_sk_min) AND DynamicValue(RS_21_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_21_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_store_sk is not null)
-                                                    TableScan [TS_0] (rows=575995635 width=122)
+                                                  Filter Operator [FIL_341] (rows=525333486 width=122)
+                                                    predicate:((ss_store_sk BETWEEN DynamicValue(RS_68_store_s_store_sk_min) AND DynamicValue(RS_68_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_68_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_store_sk is not null)
+                                                    TableScan [TS_50] (rows=575995635 width=122)
                                                       default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"]
-                                                    <-Reducer 10 [BROADCAST_EDGE] vectorized
-                                                      BROADCAST [RS_297]
-                                                        Group By Operator [GBY_296] (rows=1 width=12)
+                                                    <-Reducer 22 [BROADCAST_EDGE] vectorized
+                                                      BROADCAST [RS_340]
+                                                        Group By Operator [GBY_339] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                        <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                          SHUFFLE [RS_295]
-                                                            Group By Operator [GBY_294] (rows=1 width=12)
+                                                        <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                          PARTITION_ONLY_SHUFFLE [RS_319]
+                                                            Group By Operator [GBY_318] (rows=1 width=12)
                                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                              Select Operator [SEL_293] (rows=7000 width=4)
+                                                              Select Operator [SEL_317] (rows=155 width=4)
                                                                 Output:["_col0"]
-                                                                 Please refer to the previous Select Operator [SEL_290]
-                                                    <-Reducer 17 [BROADCAST_EDGE] vectorized
-                                                      BROADCAST [RS_309]
-                                                        Group By Operator [GBY_308] (rows=1 width=12)
-                                                          Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                        <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                          SHUFFLE [RS_306]
-                                                            Group By Operator [GBY_304] (rows=1 width=12)
-                                                              Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                              Select Operator [SEL_301] (rows=155 width=4)
-                                                                Output:["_col0"]
-                                                                 Please refer to the previous Select Operator [SEL_299]
+                                                                 Please refer to the previous Select Operator [SEL_314]
+                                            <-Reducer 18 [SIMPLE_EDGE]
+                                              SHUFFLE [RS_64]
+                                                PartitionCols:_col0
+                                                Filter Operator [FIL_63] (rows=80000000 width=635)
+                                                  predicate:(_col4 <> _col8)
+                                                  Merge Join Operator [MERGEJOIN_293] (rows=80000000 width=635)
+                                                    Conds:RS_323._col1=RS_312._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col6","_col7","_col8"]
+                                                  <-Map 13 [SIMPLE_EDGE] vectorized
+                                                    SHUFFLE [RS_312]
+                                                      PartitionCols:_col0
+                                                      Select Operator [SEL_310] (rows=40000000 width=363)
+                                                        Output:["_col0","_col1","_col2","_col3"]
+                                                        Filter Operator [FIL_309] (rows=40000000 width=276)
+                                                          predicate:ca_zip is not null
+                                                          TableScan [TS_6] (rows=40000000 width=276)
+                                                            default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_state","ca_zip","ca_country"]
+                                                  <-Map 23 [SIMPLE_EDGE] vectorized
+                                                    SHUFFLE [RS_323]
+                                                      PartitionCols:_col1
+                                                      Select Operator [SEL_321] (rows=80000000 width=280)
+                                                        Output:["_col0","_col1","_col2","_col3","_col4"]
+                                                        Filter Operator [FIL_320] (rows=80000000 width=280)
+                                                          predicate:c_current_addr_sk is not null
+                                                          TableScan [TS_12] (rows=80000000 width=280)
+                                                            default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_addr_sk","c_first_name","c_last_name","c_birth_country"]
+            <-Reducer 5 [CUSTOM_SIMPLE_EDGE] vectorized
+              PARTITION_ONLY_SHUFFLE [RS_338]
+                Select Operator [SEL_337] (rows=3939496 width=380)
+                  Output:["_col0","_col1","_col2","_col3"]
+                  Group By Operator [GBY_336] (rows=3939496 width=380)
+                    Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col9)"],keys:_col4, _col5, _col7
+                    Select Operator [SEL_335] (rows=84010488 width=843)
+                      Output:["_col4","_col5","_col7","_col9"]
+                      Group By Operator [GBY_334] (rows=84010488 width=843)
+                        Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8
+                      <-Reducer 4 [SIMPLE_EDGE]
+                        SHUFFLE [RS_36]
+                          PartitionCols:_col0, _col1, _col2
+                          Group By Operator [GBY_35] (rows=84010488 width=843)
+                            Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col4)"],keys:_col12, _col13, _col20, _col6, _col7, _col8, _col9, _col16, _col21
+                            Merge Join Operator [MERGEJOIN_292] (rows=138508741 width=824)
+                              Conds:RS_31._col0, _col3=RS_332._col0, _col1(Inner),Output:["_col4","_col6","_col7","_col8","_col9","_col12","_col13","_col16","_col20","_col21"]
+                            <-Map 24 [SIMPLE_EDGE] vectorized
+                              SHUFFLE [RS_332]
+                                PartitionCols:_col0, _col1
+                                 Please refer to the previous Select Operator [SEL_331]
+                            <-Reducer 3 [SIMPLE_EDGE]
+                              SHUFFLE [RS_31]
+                                PartitionCols:_col0, _col3
+                                Merge Join Operator [MERGEJOIN_291] (rows=84010488 width=820)
+                                  Conds:RS_28._col1, _col2=RS_29._col0, _col9(Inner),Output:["_col0","_col3","_col4","_col6","_col7","_col8","_col9","_col12","_col13","_col16","_col20","_col21"]
+                                <-Reducer 15 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_29]
+                                    PartitionCols:_col0, _col9
+                                    Select Operator [SEL_22] (rows=7276996 width=724)
+                                      Output:["_col0","_col2","_col3","_col6","_col9","_col10","_col11"]
+                                      Filter Operator [FIL_21] (rows=7276996 width=724)
+                                        predicate:(_col12 <> _col3)
+                                        Merge Join Operator [MERGEJOIN_290] (rows=7276996 width=724)
+                                          Conds:RS_18._col0=RS_322._col1(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col8","_col10","_col11","_col12"]
+                                        <-Map 23 [SIMPLE_EDGE] vectorized
+                                          SHUFFLE [RS_322]
+                                            PartitionCols:_col1
+                                             Please refer to the previous Select Operator [SEL_321]
+                                        <-Reducer 14 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_18]
+                                            PartitionCols:_col0
+                                            Merge Join Operator [MERGEJOIN_289] (rows=611379 width=452)
+                                              Conds:RS_311._col2=RS_315._col3(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6"]
+                                            <-Map 21 [SIMPLE_EDGE] vectorized
+                                              PARTITION_ONLY_SHUFFLE [RS_315]
+                                                PartitionCols:_col3
+                                                 Please refer to the previous Select Operator [SEL_314]
+                                            <-Map 13 [SIMPLE_EDGE] vectorized
+                                              SHUFFLE [RS_311]
+                                                PartitionCols:_col2
+                                                 Please refer to the previous Select Operator [SEL_310]
+                                <-Reducer 2 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_28]
+                                    PartitionCols:_col1, _col2
+                                    Merge Join Operator [MERGEJOIN_288] (rows=76612563 width=382)
+                                      Conds:RS_330._col0=RS_303._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col6","_col7","_col8","_col9"]
+                                    <-Map 7 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_303]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_301] (rows=7000 width=295)
+                                          Output:["_col0","_col1","_col2","_col3","_col4"]
+                                          Filter Operator [FIL_299] (rows=7000 width=384)
+                                            predicate:(i_color = 'orchid')
+                                             Please refer to the previous TableScan [TS_3]
+                                    <-Map 1 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_330]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_329] (rows=525333486 width=122)
+                                          Output:["_col0","_col1","_col2","_col3","_col4"]
+                                          Filter Operator [FIL_328] (rows=525333486 width=122)
+                                            predicate:((ss_customer_sk BETWEEN DynamicValue(RS_29_customer_c_customer_sk_min) AND DynamicValue(RS_29_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_29_customer_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_26_item_i_item_sk_min) AND DynamicValue(RS_26_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_26_item_i_item_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_29_store_s_store_sk_min) AND DynamicValue(RS_29_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_29_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_store_sk is not null)
+                                            TableScan [TS_0] (rows=575995635 width=122)
+                                              default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"]
+                                            <-Reducer 16 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_325]
+                                                Group By Operator [GBY_324] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=6636187)"]
+                                                <-Reducer 15 [CUSTOM_SIMPLE_EDGE]
+                                                  SHUFFLE [RS_149]
+                                                    Group By Operator [GBY_148] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=6636187)"]
+                                                      Select Operator [SEL_147] (rows=7276996 width=4)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_22]
+                                            <-Reducer 17 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_327]
+                                                Group By Operator [GBY_326] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                <-Reducer 15 [CUSTOM_SIMPLE_EDGE]
+                                                  SHUFFLE [RS_154]
+                                                    Group By Operator [GBY_153] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                      Select Operator [SEL_152] (rows=7276996 width=8)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_22]
+                                            <-Reducer 8 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_308]
+                                                Group By Operator [GBY_307] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_306]
+                                                    Group By Operator [GBY_305] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                      Select Operator [SEL_304] (rows=7000 width=4)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_301]
 


[4/6] hive git commit: HIVE-20788: Extended SJ reduction may backtrack columns incorrectly when creating filters (Jesus Camacho Rodriguez, reviewed by Deepak Jaiswal)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out
index c82c415..6d7c620 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out
@@ -194,57 +194,57 @@ Stage-0
     limit:100
     Stage-1
       Reducer 7 vectorized
-      File Output Operator [FS_372]
-        Limit [LIM_371] (rows=59 width=115)
+      File Output Operator [FS_368]
+        Limit [LIM_367] (rows=59 width=115)
           Number of rows:100
-          Select Operator [SEL_370] (rows=59 width=115)
+          Select Operator [SEL_366] (rows=59 width=115)
             Output:["_col0","_col1"]
           <-Reducer 6 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_369]
-              Group By Operator [GBY_368] (rows=59 width=115)
+            SHUFFLE [RS_365]
+              Group By Operator [GBY_364] (rows=59 width=115)
                 Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
               <-Union 5 [SIMPLE_EDGE]
                 <-Reducer 11 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_392]
+                  Reduce Output Operator [RS_388]
                     PartitionCols:_col0
-                    Group By Operator [GBY_391] (rows=59 width=115)
+                    Group By Operator [GBY_387] (rows=59 width=115)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_390] (rows=19 width=115)
+                      Group By Operator [GBY_386] (rows=19 width=115)
                         Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                       <-Reducer 10 [SIMPLE_EDGE]
                         SHUFFLE [RS_109]
                           PartitionCols:_col0
                           Group By Operator [GBY_108] (rows=19 width=115)
                             Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_308] (rows=11364 width=3)
+                            Merge Join Operator [MERGEJOIN_304] (rows=11364 width=3)
                               Conds:RS_104._col0=RS_105._col2(Inner),Output:["_col1","_col7"]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_104]
                                 PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_297] (rows=461514 width=7)
-                                  Conds:RS_323._col1=RS_329._col0(Inner),Output:["_col0","_col1"]
+                                Merge Join Operator [MERGEJOIN_293] (rows=461514 width=7)
+                                  Conds:RS_319._col1=RS_325._col0(Inner),Output:["_col0","_col1"]
                                 <-Map 1 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_323]
+                                  SHUFFLE [RS_319]
                                     PartitionCols:_col1
-                                    Select Operator [SEL_322] (rows=460848 width=7)
+                                    Select Operator [SEL_318] (rows=460848 width=7)
                                       Output:["_col0","_col1"]
-                                      Filter Operator [FIL_321] (rows=460848 width=7)
+                                      Filter Operator [FIL_317] (rows=460848 width=7)
                                         predicate:i_manufact_id is not null
                                         TableScan [TS_0] (rows=462000 width=7)
                                           default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_manufact_id"]
                                 <-Reducer 13 [ONE_TO_ONE_EDGE] vectorized
-                                  FORWARD [RS_329]
+                                  FORWARD [RS_325]
                                     PartitionCols:_col0
-                                    Group By Operator [GBY_328] (rows=692 width=3)
+                                    Group By Operator [GBY_324] (rows=692 width=3)
                                       Output:["_col0"],keys:KEY._col0
                                     <-Map 12 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_327]
+                                      SHUFFLE [RS_323]
                                         PartitionCols:_col0
-                                        Group By Operator [GBY_326] (rows=692 width=3)
+                                        Group By Operator [GBY_322] (rows=692 width=3)
                                           Output:["_col0"],keys:i_manufact_id
-                                          Select Operator [SEL_325] (rows=46085 width=93)
+                                          Select Operator [SEL_321] (rows=46085 width=93)
                                             Output:["i_manufact_id"]
-                                            Filter Operator [FIL_324] (rows=46085 width=93)
+                                            Filter Operator [FIL_320] (rows=46085 width=93)
                                               predicate:((i_category = 'Books') and i_manufact_id is not null)
                                               TableScan [TS_3] (rows=462000 width=93)
                                                 default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_category","i_manufact_id"]
@@ -253,198 +253,198 @@ Stage-0
                                 PartitionCols:_col2
                                 Select Operator [SEL_100] (rows=788222 width=110)
                                   Output:["_col2","_col4"]
-                                  Merge Join Operator [MERGEJOIN_305] (rows=788222 width=110)
-                                    Conds:RS_97._col2=RS_352._col0(Inner),Output:["_col1","_col3"]
+                                  Merge Join Operator [MERGEJOIN_301] (rows=788222 width=110)
+                                    Conds:RS_97._col2=RS_348._col0(Inner),Output:["_col1","_col3"]
                                   <-Map 25 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_352]
+                                    PARTITION_ONLY_SHUFFLE [RS_348]
                                       PartitionCols:_col0
-                                      Select Operator [SEL_347] (rows=8000000 width=4)
+                                      Select Operator [SEL_343] (rows=8000000 width=4)
                                         Output:["_col0"]
-                                        Filter Operator [FIL_346] (rows=8000000 width=112)
+                                        Filter Operator [FIL_342] (rows=8000000 width=112)
                                           predicate:(ca_gmt_offset = -6)
                                           TableScan [TS_16] (rows=40000000 width=112)
                                             default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_gmt_offset"]
                                   <-Reducer 22 [SIMPLE_EDGE]
                                     SHUFFLE [RS_97]
                                       PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_304] (rows=3941109 width=118)
-                                        Conds:RS_389._col0=RS_336._col0(Inner),Output:["_col1","_col2","_col3"]
+                                      Merge Join Operator [MERGEJOIN_300] (rows=3941109 width=118)
+                                        Conds:RS_385._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"]
                                       <-Map 17 [SIMPLE_EDGE] vectorized
-                                        PARTITION_ONLY_SHUFFLE [RS_336]
+                                        PARTITION_ONLY_SHUFFLE [RS_332]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_331] (rows=50 width=4)
+                                          Select Operator [SEL_327] (rows=50 width=4)
                                             Output:["_col0"]
-                                            Filter Operator [FIL_330] (rows=50 width=12)
+                                            Filter Operator [FIL_326] (rows=50 width=12)
                                               predicate:((d_moy = 3) and (d_year = 1999))
                                               TableScan [TS_13] (rows=73049 width=12)
                                                 default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year","d_moy"]
                                       <-Map 30 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_389]
+                                        SHUFFLE [RS_385]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_388] (rows=143931246 width=123)
+                                          Select Operator [SEL_384] (rows=143931246 width=123)
                                             Output:["_col0","_col1","_col2","_col3"]
-                                            Filter Operator [FIL_387] (rows=143931246 width=123)
+                                            Filter Operator [FIL_383] (rows=143931246 width=123)
                                               predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_98_customer_address_ca_address_sk_min) AND DynamicValue(RS_98_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_98_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_95_date_dim_d_date_sk_min) AND DynamicValue(RS_95_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_95_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null)
                                               TableScan [TS_85] (rows=144002668 width=123)
                                                 default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_addr_sk","ws_ext_sales_price"]
                                               <-Reducer 24 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_384]
-                                                  Group By Operator [GBY_383] (rows=1 width=12)
+                                                BROADCAST [RS_380]
+                                                  Group By Operator [GBY_379] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_343]
-                                                      Group By Operator [GBY_340] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_339]
+                                                      Group By Operator [GBY_336] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_337] (rows=50 width=4)
+                                                        Select Operator [SEL_333] (rows=50 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_331]
+                                                           Please refer to the previous Select Operator [SEL_327]
                                               <-Reducer 28 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_386]
-                                                  Group By Operator [GBY_385] (rows=1 width=12)
+                                                BROADCAST [RS_382]
+                                                  Group By Operator [GBY_381] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                   <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_359]
-                                                      Group By Operator [GBY_356] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_355]
+                                                      Group By Operator [GBY_352] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                        Select Operator [SEL_353] (rows=8000000 width=4)
+                                                        Select Operator [SEL_349] (rows=8000000 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_347]
+                                                           Please refer to the previous Select Operator [SEL_343]
                 <-Reducer 4 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_367]
+                  Reduce Output Operator [RS_363]
                     PartitionCols:_col0
-                    Group By Operator [GBY_366] (rows=59 width=115)
+                    Group By Operator [GBY_362] (rows=59 width=115)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_365] (rows=64 width=115)
+                      Group By Operator [GBY_361] (rows=64 width=115)
                         Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                       <-Reducer 3 [SIMPLE_EDGE]
                         SHUFFLE [RS_34]
                           PartitionCols:_col0
                           Group By Operator [GBY_33] (rows=64 width=115)
                             Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_306] (rows=41476 width=3)
+                            Merge Join Operator [MERGEJOIN_302] (rows=41476 width=3)
                               Conds:RS_29._col0=RS_30._col2(Inner),Output:["_col1","_col7"]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_29]
                                 PartitionCols:_col0
-                                 Please refer to the previous Merge Join Operator [MERGEJOIN_297]
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_293]
                             <-Reducer 16 [SIMPLE_EDGE]
                               SHUFFLE [RS_30]
                                 PartitionCols:_col2
                                 Select Operator [SEL_25] (rows=2876890 width=4)
                                   Output:["_col2","_col4"]
-                                  Merge Join Operator [MERGEJOIN_299] (rows=2876890 width=4)
-                                    Conds:RS_22._col2=RS_348._col0(Inner),Output:["_col1","_col3"]
+                                  Merge Join Operator [MERGEJOIN_295] (rows=2876890 width=4)
+                                    Conds:RS_22._col2=RS_344._col0(Inner),Output:["_col1","_col3"]
                                   <-Map 25 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_348]
+                                    PARTITION_ONLY_SHUFFLE [RS_344]
                                       PartitionCols:_col0
-                                       Please refer to the previous Select Operator [SEL_347]
+                                       Please refer to the previous Select Operator [SEL_343]
                                   <-Reducer 15 [SIMPLE_EDGE]
                                     SHUFFLE [RS_22]
                                       PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_298] (rows=14384447 width=4)
-                                        Conds:RS_364._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"]
+                                      Merge Join Operator [MERGEJOIN_294] (rows=14384447 width=4)
+                                        Conds:RS_360._col0=RS_328._col0(Inner),Output:["_col1","_col2","_col3"]
                                       <-Map 17 [SIMPLE_EDGE] vectorized
-                                        PARTITION_ONLY_SHUFFLE [RS_332]
+                                        PARTITION_ONLY_SHUFFLE [RS_328]
                                           PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_331]
+                                           Please refer to the previous Select Operator [SEL_327]
                                       <-Map 14 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_364]
+                                        SHUFFLE [RS_360]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_363] (rows=525327191 width=118)
+                                          Select Operator [SEL_359] (rows=525327191 width=118)
                                             Output:["_col0","_col1","_col2","_col3"]
-                                            Filter Operator [FIL_362] (rows=525327191 width=118)
+                                            Filter Operator [FIL_358] (rows=525327191 width=118)
                                               predicate:((ss_addr_sk BETWEEN DynamicValue(RS_23_customer_address_ca_address_sk_min) AND DynamicValue(RS_23_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_23_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_20_date_dim_d_date_sk_min) AND DynamicValue(RS_20_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_20_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null)
                                               TableScan [TS_10] (rows=575995635 width=118)
                                                 default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_addr_sk","ss_ext_sales_price"]
                                               <-Reducer 18 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_345]
-                                                  Group By Operator [GBY_344] (rows=1 width=12)
+                                                BROADCAST [RS_341]
+                                                  Group By Operator [GBY_340] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_341]
-                                                      Group By Operator [GBY_338] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_337]
+                                                      Group By Operator [GBY_334] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_333] (rows=50 width=4)
+                                                        Select Operator [SEL_329] (rows=50 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_331]
+                                                           Please refer to the previous Select Operator [SEL_327]
                                               <-Reducer 26 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_361]
-                                                  Group By Operator [GBY_360] (rows=1 width=12)
+                                                BROADCAST [RS_357]
+                                                  Group By Operator [GBY_356] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                   <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_357]
-                                                      Group By Operator [GBY_354] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_353]
+                                                      Group By Operator [GBY_350] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                        Select Operator [SEL_349] (rows=8000000 width=4)
+                                                        Select Operator [SEL_345] (rows=8000000 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_347]
+                                                           Please refer to the previous Select Operator [SEL_343]
                 <-Reducer 9 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_382]
+                  Reduce Output Operator [RS_378]
                     PartitionCols:_col0
-                    Group By Operator [GBY_381] (rows=59 width=115)
+                    Group By Operator [GBY_377] (rows=59 width=115)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_380] (rows=35 width=115)
+                      Group By Operator [GBY_376] (rows=35 width=115)
                         Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                       <-Reducer 8 [SIMPLE_EDGE]
                         SHUFFLE [RS_71]
                           PartitionCols:_col0
                           Group By Operator [GBY_70] (rows=35 width=115)
                             Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_307] (rows=22352 width=3)
+                            Merge Join Operator [MERGEJOIN_303] (rows=22352 width=3)
                               Conds:RS_66._col0=RS_67._col3(Inner),Output:["_col1","_col7"]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_66]
                                 PartitionCols:_col0
-                                 Please refer to the previous Merge Join Operator [MERGEJOIN_297]
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_293]
                             <-Reducer 20 [SIMPLE_EDGE]
                               SHUFFLE [RS_67]
                                 PartitionCols:_col3
                                 Select Operator [SEL_62] (rows=1550375 width=13)
                                   Output:["_col3","_col4"]
-                                  Merge Join Operator [MERGEJOIN_302] (rows=1550375 width=13)
-                                    Conds:RS_59._col1=RS_350._col0(Inner),Output:["_col2","_col3"]
+                                  Merge Join Operator [MERGEJOIN_298] (rows=1550375 width=13)
+                                    Conds:RS_59._col1=RS_346._col0(Inner),Output:["_col2","_col3"]
                                   <-Map 25 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_350]
+                                    PARTITION_ONLY_SHUFFLE [RS_346]
                                       PartitionCols:_col0
-                                       Please refer to the previous Select Operator [SEL_347]
+                                       Please refer to the previous Select Operator [SEL_343]
                                   <-Reducer 19 [SIMPLE_EDGE]
                                     SHUFFLE [RS_59]
                                       PartitionCols:_col1
-                                      Merge Join Operator [MERGEJOIN_301] (rows=7751872 width=98)
-                                        Conds:RS_379._col0=RS_334._col0(Inner),Output:["_col1","_col2","_col3"]
+                                      Merge Join Operator [MERGEJOIN_297] (rows=7751872 width=98)
+                                        Conds:RS_375._col0=RS_330._col0(Inner),Output:["_col1","_col2","_col3"]
                                       <-Map 17 [SIMPLE_EDGE] vectorized
-                                        PARTITION_ONLY_SHUFFLE [RS_334]
+                                        PARTITION_ONLY_SHUFFLE [RS_330]
                                           PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_331]
+                                           Please refer to the previous Select Operator [SEL_327]
                                       <-Map 29 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_379]
+                                        SHUFFLE [RS_375]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_378] (rows=285117733 width=123)
+                                          Select Operator [SEL_374] (rows=285117733 width=123)
                                             Output:["_col0","_col1","_col2","_col3"]
-                                            Filter Operator [FIL_377] (rows=285117733 width=123)
+                                            Filter Operator [FIL_373] (rows=285117733 width=123)
                                               predicate:((cs_bill_addr_sk BETWEEN DynamicValue(RS_60_customer_address_ca_address_sk_min) AND DynamicValue(RS_60_customer_address_ca_address_sk_max) and in_bloom_filter(cs_bill_addr_sk, DynamicValue(RS_60_customer_address_ca_address_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_57_date_dim_d_date_sk_min) AND DynamicValue(RS_57_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_57_date_dim_d_date_sk_bloom_filter))) and cs_bill_addr_sk is not null and cs_sold_date_sk is not null)
                                               TableScan [TS_47] (rows=287989836 width=123)
                                                 default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_addr_sk","cs_item_sk","cs_ext_sales_price"]
                                               <-Reducer 21 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_374]
-                                                  Group By Operator [GBY_373] (rows=1 width=12)
+                                                BROADCAST [RS_370]
+                                                  Group By Operator [GBY_369] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_342]
-                                                      Group By Operator [GBY_339] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_338]
+                                                      Group By Operator [GBY_335] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_335] (rows=50 width=4)
+                                                        Select Operator [SEL_331] (rows=50 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_331]
+                                                           Please refer to the previous Select Operator [SEL_327]
                                               <-Reducer 27 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_376]
-                                                  Group By Operator [GBY_375] (rows=1 width=12)
+                                                BROADCAST [RS_372]
+                                                  Group By Operator [GBY_371] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                   <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_358]
-                                                      Group By Operator [GBY_355] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_354]
+                                                      Group By Operator [GBY_351] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                        Select Operator [SEL_351] (rows=8000000 width=4)
+                                                        Select Operator [SEL_347] (rows=8000000 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_347]
+                                                           Please refer to the previous Select Operator [SEL_343]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out
index b57ded3..cac7668 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out
@@ -183,55 +183,55 @@ Stage-0
     limit:100
     Stage-1
       Reducer 7 vectorized
-      File Output Operator [FS_370]
-        Limit [LIM_369] (rows=100 width=212)
+      File Output Operator [FS_366]
+        Limit [LIM_365] (rows=100 width=212)
           Number of rows:100
-          Select Operator [SEL_368] (rows=430 width=212)
+          Select Operator [SEL_364] (rows=430 width=212)
             Output:["_col0","_col1"]
           <-Reducer 6 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_367]
-              Group By Operator [GBY_366] (rows=430 width=212)
+            SHUFFLE [RS_363]
+              Group By Operator [GBY_362] (rows=430 width=212)
                 Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
               <-Union 5 [SIMPLE_EDGE]
                 <-Reducer 10 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_382]
+                  Reduce Output Operator [RS_378]
                     PartitionCols:_col0
-                    Group By Operator [GBY_381] (rows=430 width=212)
+                    Group By Operator [GBY_377] (rows=430 width=212)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_380] (rows=430 width=212)
+                      Group By Operator [GBY_376] (rows=430 width=212)
                         Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                       <-Reducer 9 [SIMPLE_EDGE]
                         SHUFFLE [RS_69]
                           PartitionCols:_col0
                           Group By Operator [GBY_68] (rows=430 width=212)
                             Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_304] (rows=373066 width=100)
+                            Merge Join Operator [MERGEJOIN_300] (rows=373066 width=100)
                               Conds:RS_64._col0=RS_65._col3(Inner),Output:["_col1","_col7"]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_64]
                                 PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_294] (rows=17170 width=104)
-                                  Conds:RS_319._col1=RS_325._col0(Inner),Output:["_col0","_col1"]
+                                Merge Join Operator [MERGEJOIN_290] (rows=17170 width=104)
+                                  Conds:RS_315._col1=RS_321._col0(Inner),Output:["_col0","_col1"]
                                 <-Map 1 [SIMPLE_EDGE] vectorized
-                                  SHUFFLE [RS_319]
+                                  SHUFFLE [RS_315]
                                     PartitionCols:_col1
-                                    Select Operator [SEL_318] (rows=462000 width=104)
+                                    Select Operator [SEL_314] (rows=462000 width=104)
                                       Output:["_col0","_col1"]
                                       TableScan [TS_0] (rows=462000 width=104)
                                         default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_id"]
                                 <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized
-                                  FORWARD [RS_325]
+                                  FORWARD [RS_321]
                                     PartitionCols:_col0
-                                    Group By Operator [GBY_324] (rows=11550 width=100)
+                                    Group By Operator [GBY_320] (rows=11550 width=100)
                                       Output:["_col0"],keys:KEY._col0
                                     <-Map 15 [SIMPLE_EDGE] vectorized
-                                      SHUFFLE [RS_323]
+                                      SHUFFLE [RS_319]
                                         PartitionCols:_col0
-                                        Group By Operator [GBY_322] (rows=11550 width=100)
+                                        Group By Operator [GBY_318] (rows=11550 width=100)
                                           Output:["_col0"],keys:i_item_id
-                                          Select Operator [SEL_321] (rows=23100 width=189)
+                                          Select Operator [SEL_317] (rows=23100 width=189)
                                             Output:["i_item_id"]
-                                            Filter Operator [FIL_320] (rows=23100 width=189)
+                                            Filter Operator [FIL_316] (rows=23100 width=189)
                                               predicate:(i_color) IN ('orchid', 'chiffon', 'lace')
                                               TableScan [TS_2] (rows=462000 width=189)
                                                 default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_id","i_color"]
@@ -240,231 +240,231 @@ Stage-0
                                 PartitionCols:_col3
                                 Select Operator [SEL_60] (rows=1550375 width=13)
                                   Output:["_col3","_col4"]
-                                  Merge Join Operator [MERGEJOIN_299] (rows=1550375 width=13)
-                                    Conds:RS_57._col1=RS_346._col0(Inner),Output:["_col2","_col3"]
+                                  Merge Join Operator [MERGEJOIN_295] (rows=1550375 width=13)
+                                    Conds:RS_57._col1=RS_342._col0(Inner),Output:["_col2","_col3"]
                                   <-Map 28 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_346]
+                                    PARTITION_ONLY_SHUFFLE [RS_342]
                                       PartitionCols:_col0
-                                      Select Operator [SEL_343] (rows=8000000 width=4)
+                                      Select Operator [SEL_339] (rows=8000000 width=4)
                                         Output:["_col0"]
-                                        Filter Operator [FIL_342] (rows=8000000 width=112)
+                                        Filter Operator [FIL_338] (rows=8000000 width=112)
                                           predicate:(ca_gmt_offset = -8)
                                           TableScan [TS_15] (rows=40000000 width=112)
                                             default@customer_address,customer_address,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_gmt_offset"]
                                   <-Reducer 22 [SIMPLE_EDGE]
                                     SHUFFLE [RS_57]
                                       PartitionCols:_col1
-                                      Merge Join Operator [MERGEJOIN_298] (rows=7751872 width=98)
-                                        Conds:RS_379._col0=RS_330._col0(Inner),Output:["_col1","_col2","_col3"]
+                                      Merge Join Operator [MERGEJOIN_294] (rows=7751872 width=98)
+                                        Conds:RS_375._col0=RS_326._col0(Inner),Output:["_col1","_col2","_col3"]
                                       <-Map 20 [SIMPLE_EDGE] vectorized
-                                        PARTITION_ONLY_SHUFFLE [RS_330]
+                                        PARTITION_ONLY_SHUFFLE [RS_326]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_327] (rows=50 width=4)
+                                          Select Operator [SEL_323] (rows=50 width=4)
                                             Output:["_col0"]
-                                            Filter Operator [FIL_326] (rows=50 width=12)
+                                            Filter Operator [FIL_322] (rows=50 width=12)
                                               predicate:((d_moy = 1) and (d_year = 2000))
                                               TableScan [TS_12] (rows=73049 width=12)
                                                 default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year","d_moy"]
                                       <-Map 32 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_379]
+                                        SHUFFLE [RS_375]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_378] (rows=285117733 width=123)
+                                          Select Operator [SEL_374] (rows=285117733 width=123)
                                             Output:["_col0","_col1","_col2","_col3"]
-                                            Filter Operator [FIL_377] (rows=285117733 width=123)
+                                            Filter Operator [FIL_373] (rows=285117733 width=123)
                                               predicate:((cs_bill_addr_sk BETWEEN DynamicValue(RS_58_customer_address_ca_address_sk_min) AND DynamicValue(RS_58_customer_address_ca_address_sk_max) and in_bloom_filter(cs_bill_addr_sk, DynamicValue(RS_58_customer_address_ca_address_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_64_item_i_item_sk_min) AND DynamicValue(RS_64_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_64_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_55_date_dim_d_date_sk_min) AND DynamicValue(RS_55_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_55_date_dim_d_date_sk_bloom_filter))) and cs_bill_addr_sk is not null and cs_sold_date_sk is not null)
                                               TableScan [TS_45] (rows=287989836 width=123)
                                                 default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_addr_sk","cs_item_sk","cs_ext_sales_price"]
                                               <-Reducer 11 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_376]
-                                                  Group By Operator [GBY_375] (rows=1 width=12)
+                                                BROADCAST [RS_372]
+                                                  Group By Operator [GBY_371] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Reducer 2 [CUSTOM_SIMPLE_EDGE]
-                                                    SHUFFLE [RS_239]
-                                                      Group By Operator [GBY_238] (rows=1 width=12)
+                                                    SHUFFLE [RS_237]
+                                                      Group By Operator [GBY_236] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_237] (rows=17170 width=4)
+                                                        Select Operator [SEL_235] (rows=17170 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_294]
+                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_290]
                                               <-Reducer 24 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_372]
-                                                  Group By Operator [GBY_371] (rows=1 width=12)
+                                                BROADCAST [RS_368]
+                                                  Group By Operator [GBY_367] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_338]
-                                                      Group By Operator [GBY_335] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_334]
+                                                      Group By Operator [GBY_331] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_331] (rows=50 width=4)
+                                                        Select Operator [SEL_327] (rows=50 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_327]
+                                                           Please refer to the previous Select Operator [SEL_323]
                                               <-Reducer 30 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_374]
-                                                  Group By Operator [GBY_373] (rows=1 width=12)
+                                                BROADCAST [RS_370]
+                                                  Group By Operator [GBY_369] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                   <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_354]
-                                                      Group By Operator [GBY_351] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_350]
+                                                      Group By Operator [GBY_347] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                        Select Operator [SEL_347] (rows=8000000 width=4)
+                                                        Select Operator [SEL_343] (rows=8000000 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_343]
+                                                           Please refer to the previous Select Operator [SEL_339]
                 <-Reducer 13 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_394]
+                  Reduce Output Operator [RS_390]
                     PartitionCols:_col0
-                    Group By Operator [GBY_393] (rows=430 width=212)
+                    Group By Operator [GBY_389] (rows=430 width=212)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_392] (rows=430 width=212)
+                      Group By Operator [GBY_388] (rows=430 width=212)
                         Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                       <-Reducer 12 [SIMPLE_EDGE]
                         SHUFFLE [RS_106]
                           PartitionCols:_col0
                           Group By Operator [GBY_105] (rows=430 width=212)
                             Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_305] (rows=189670 width=190)
+                            Merge Join Operator [MERGEJOIN_301] (rows=189670 width=190)
                               Conds:RS_101._col0=RS_102._col2(Inner),Output:["_col1","_col7"]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_101]
                                 PartitionCols:_col0
-                                 Please refer to the previous Merge Join Operator [MERGEJOIN_294]
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_290]
                             <-Reducer 26 [SIMPLE_EDGE]
                               SHUFFLE [RS_102]
                                 PartitionCols:_col2
                                 Select Operator [SEL_97] (rows=788222 width=110)
                                   Output:["_col2","_col4"]
-                                  Merge Join Operator [MERGEJOIN_302] (rows=788222 width=110)
-                                    Conds:RS_94._col2=RS_348._col0(Inner),Output:["_col1","_col3"]
+                                  Merge Join Operator [MERGEJOIN_298] (rows=788222 width=110)
+                                    Conds:RS_94._col2=RS_344._col0(Inner),Output:["_col1","_col3"]
                                   <-Map 28 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_348]
+                                    PARTITION_ONLY_SHUFFLE [RS_344]
                                       PartitionCols:_col0
-                                       Please refer to the previous Select Operator [SEL_343]
+                                       Please refer to the previous Select Operator [SEL_339]
                                   <-Reducer 25 [SIMPLE_EDGE]
                                     SHUFFLE [RS_94]
                                       PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_301] (rows=3941109 width=118)
-                                        Conds:RS_391._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"]
+                                      Merge Join Operator [MERGEJOIN_297] (rows=3941109 width=118)
+                                        Conds:RS_387._col0=RS_328._col0(Inner),Output:["_col1","_col2","_col3"]
                                       <-Map 20 [SIMPLE_EDGE] vectorized
-                                        PARTITION_ONLY_SHUFFLE [RS_332]
+                                        PARTITION_ONLY_SHUFFLE [RS_328]
                                           PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_327]
+                                           Please refer to the previous Select Operator [SEL_323]
                                       <-Map 33 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_391]
+                                        SHUFFLE [RS_387]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_390] (rows=143931246 width=123)
+                                          Select Operator [SEL_386] (rows=143931246 width=123)
                                             Output:["_col0","_col1","_col2","_col3"]
-                                            Filter Operator [FIL_389] (rows=143931246 width=123)
+                                            Filter Operator [FIL_385] (rows=143931246 width=123)
                                               predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_95_customer_address_ca_address_sk_min) AND DynamicValue(RS_95_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_95_customer_address_ca_address_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_101_item_i_item_sk_min) AND DynamicValue(RS_101_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_101_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_92_date_dim_d_date_sk_min) AND DynamicValue(RS_92_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_92_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null)
                                               TableScan [TS_82] (rows=144002668 width=123)
                                                 default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_addr_sk","ws_ext_sales_price"]
                                               <-Reducer 14 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_388]
-                                                  Group By Operator [GBY_387] (rows=1 width=12)
+                                                BROADCAST [RS_384]
+                                                  Group By Operator [GBY_383] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Reducer 2 [CUSTOM_SIMPLE_EDGE]
-                                                    SHUFFLE [RS_285]
-                                                      Group By Operator [GBY_284] (rows=1 width=12)
+                                                    SHUFFLE [RS_277]
+                                                      Group By Operator [GBY_276] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_283] (rows=17170 width=4)
+                                                        Select Operator [SEL_275] (rows=17170 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_294]
+                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_290]
                                               <-Reducer 27 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_384]
-                                                  Group By Operator [GBY_383] (rows=1 width=12)
+                                                BROADCAST [RS_380]
+                                                  Group By Operator [GBY_379] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_339]
-                                                      Group By Operator [GBY_336] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_335]
+                                                      Group By Operator [GBY_332] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_333] (rows=50 width=4)
+                                                        Select Operator [SEL_329] (rows=50 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_327]
+                                                           Please refer to the previous Select Operator [SEL_323]
                                               <-Reducer 31 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_386]
-                                                  Group By Operator [GBY_385] (rows=1 width=12)
+                                                BROADCAST [RS_382]
+                                                  Group By Operator [GBY_381] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                   <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_355]
-                                                      Group By Operator [GBY_352] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_351]
+                                                      Group By Operator [GBY_348] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                        Select Operator [SEL_349] (rows=8000000 width=4)
+                                                        Select Operator [SEL_345] (rows=8000000 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_343]
+                                                           Please refer to the previous Select Operator [SEL_339]
                 <-Reducer 4 [CONTAINS] vectorized
-                  Reduce Output Operator [RS_365]
+                  Reduce Output Operator [RS_361]
                     PartitionCols:_col0
-                    Group By Operator [GBY_364] (rows=430 width=212)
+                    Group By Operator [GBY_360] (rows=430 width=212)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_363] (rows=430 width=212)
+                      Group By Operator [GBY_359] (rows=430 width=212)
                         Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                       <-Reducer 3 [SIMPLE_EDGE]
                         SHUFFLE [RS_33]
                           PartitionCols:_col0
                           Group By Operator [GBY_32] (rows=430 width=212)
                             Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_303] (rows=692265 width=100)
+                            Merge Join Operator [MERGEJOIN_299] (rows=692265 width=100)
                               Conds:RS_28._col0=RS_29._col2(Inner),Output:["_col1","_col7"]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_28]
                                 PartitionCols:_col0
-                                 Please refer to the previous Merge Join Operator [MERGEJOIN_294]
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_290]
                             <-Reducer 19 [SIMPLE_EDGE]
                               SHUFFLE [RS_29]
                                 PartitionCols:_col2
                                 Select Operator [SEL_24] (rows=2876890 width=4)
                                   Output:["_col2","_col4"]
-                                  Merge Join Operator [MERGEJOIN_296] (rows=2876890 width=4)
-                                    Conds:RS_21._col2=RS_344._col0(Inner),Output:["_col1","_col3"]
+                                  Merge Join Operator [MERGEJOIN_292] (rows=2876890 width=4)
+                                    Conds:RS_21._col2=RS_340._col0(Inner),Output:["_col1","_col3"]
                                   <-Map 28 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_344]
+                                    PARTITION_ONLY_SHUFFLE [RS_340]
                                       PartitionCols:_col0
-                                       Please refer to the previous Select Operator [SEL_343]
+                                       Please refer to the previous Select Operator [SEL_339]
                                   <-Reducer 18 [SIMPLE_EDGE]
                                     SHUFFLE [RS_21]
                                       PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_295] (rows=14384447 width=4)
-                                        Conds:RS_362._col0=RS_328._col0(Inner),Output:["_col1","_col2","_col3"]
+                                      Merge Join Operator [MERGEJOIN_291] (rows=14384447 width=4)
+                                        Conds:RS_358._col0=RS_324._col0(Inner),Output:["_col1","_col2","_col3"]
                                       <-Map 20 [SIMPLE_EDGE] vectorized
-                                        PARTITION_ONLY_SHUFFLE [RS_328]
+                                        PARTITION_ONLY_SHUFFLE [RS_324]
                                           PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_327]
+                                           Please refer to the previous Select Operator [SEL_323]
                                       <-Map 17 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_362]
+                                        SHUFFLE [RS_358]
                                           PartitionCols:_col0
-                                          Select Operator [SEL_361] (rows=525327191 width=118)
+                                          Select Operator [SEL_357] (rows=525327191 width=118)
                                             Output:["_col0","_col1","_col2","_col3"]
-                                            Filter Operator [FIL_360] (rows=525327191 width=118)
+                                            Filter Operator [FIL_356] (rows=525327191 width=118)
                                               predicate:((ss_addr_sk BETWEEN DynamicValue(RS_22_customer_address_ca_address_sk_min) AND DynamicValue(RS_22_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_22_customer_address_ca_address_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_28_item_i_item_sk_min) AND DynamicValue(RS_28_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_28_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_19_date_dim_d_date_sk_min) AND DynamicValue(RS_19_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_19_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null)
                                               TableScan [TS_9] (rows=575995635 width=118)
                                                 default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_addr_sk","ss_ext_sales_price"]
                                               <-Reducer 21 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_341]
-                                                  Group By Operator [GBY_340] (rows=1 width=12)
+                                                BROADCAST [RS_337]
+                                                  Group By Operator [GBY_336] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_337]
-                                                      Group By Operator [GBY_334] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_333]
+                                                      Group By Operator [GBY_330] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_329] (rows=50 width=4)
+                                                        Select Operator [SEL_325] (rows=50 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_327]
+                                                           Please refer to the previous Select Operator [SEL_323]
                                               <-Reducer 29 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_357]
-                                                  Group By Operator [GBY_356] (rows=1 width=12)
+                                                BROADCAST [RS_353]
+                                                  Group By Operator [GBY_352] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=8000000)"]
                                                   <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                    PARTITION_ONLY_SHUFFLE [RS_353]
-                                                      Group By Operator [GBY_350] (rows=1 width=12)
+                                                    PARTITION_ONLY_SHUFFLE [RS_349]
+                                                      Group By Operator [GBY_346] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=8000000)"]
-                                                        Select Operator [SEL_345] (rows=8000000 width=4)
+                                                        Select Operator [SEL_341] (rows=8000000 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Select Operator [SEL_343]
+                                                           Please refer to the previous Select Operator [SEL_339]
                                               <-Reducer 8 [BROADCAST_EDGE] vectorized
-                                                BROADCAST [RS_359]
-                                                  Group By Operator [GBY_358] (rows=1 width=12)
+                                                BROADCAST [RS_355]
+                                                  Group By Operator [GBY_354] (rows=1 width=12)
                                                     Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                   <-Reducer 2 [CUSTOM_SIMPLE_EDGE]
-                                                    SHUFFLE [RS_203]
-                                                      Group By Operator [GBY_202] (rows=1 width=12)
+                                                    SHUFFLE [RS_197]
+                                                      Group By Operator [GBY_196] (rows=1 width=12)
                                                         Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                        Select Operator [SEL_201] (rows=17170 width=4)
+                                                        Select Operator [SEL_195] (rows=17170 width=4)
                                                           Output:["_col0"]
-                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_294]
+                                                           Please refer to the previous Merge Join Operator [MERGEJOIN_290]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out
index 85c962f..74bec5c 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out
@@ -1,4 +1,4 @@
-Warning: Map Join MAPJOIN[172][bigTable=?] in task 'Reducer 15' is a cross product
+Warning: Map Join MAPJOIN[170][bigTable=?] in task 'Reducer 15' is a cross product
 PREHOOK: query: explain
 select  a.ca_state state, count(*) cnt
  from customer_address a
@@ -83,153 +83,153 @@ Stage-0
     limit:100
     Stage-1
       Reducer 10 vectorized
-      File Output Operator [FS_234]
-        Limit [LIM_233] (rows=1 width=94)
+      File Output Operator [FS_232]
+        Limit [LIM_231] (rows=1 width=94)
           Number of rows:100
-          Select Operator [SEL_232] (rows=1 width=94)
+          Select Operator [SEL_230] (rows=1 width=94)
             Output:["_col0","_col1"]
           <-Reducer 9 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_231]
-              Filter Operator [FIL_230] (rows=1 width=94)
+            SHUFFLE [RS_229]
+              Filter Operator [FIL_228] (rows=1 width=94)
                 predicate:(_col1 >= 10L)
-                Group By Operator [GBY_229] (rows=1 width=94)
+                Group By Operator [GBY_227] (rows=1 width=94)
                   Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0
                 <-Reducer 8 [SIMPLE_EDGE]
                   SHUFFLE [RS_68]
                     PartitionCols:_col0
                     Group By Operator [GBY_67] (rows=1 width=94)
                       Output:["_col0","_col1"],aggregations:["count()"],keys:_col9
-                      Merge Join Operator [MERGEJOIN_175] (rows=316 width=86)
-                        Conds:RS_63._col4=RS_214._col0(Inner),Output:["_col9"]
+                      Merge Join Operator [MERGEJOIN_173] (rows=316 width=86)
+                        Conds:RS_63._col4=RS_212._col0(Inner),Output:["_col9"]
                       <-Map 16 [SIMPLE_EDGE] vectorized
-                        SHUFFLE [RS_214]
+                        SHUFFLE [RS_212]
                           PartitionCols:_col0
-                          Select Operator [SEL_213] (rows=154000 width=227)
+                          Select Operator [SEL_211] (rows=154000 width=227)
                             Output:["_col0"]
-                            Filter Operator [FIL_212] (rows=154000 width=227)
+                            Filter Operator [FIL_210] (rows=154000 width=227)
                               predicate:(_col4 > _col1)
-                              Map Join Operator [MAPJOIN_211] (rows=462000 width=227)
-                                Conds:RS_208._col0=SEL_210._col2(Inner),HybridGraceHashJoin:true,Output:["_col1","_col3","_col4"]
+                              Map Join Operator [MAPJOIN_209] (rows=462000 width=227)
+                                Conds:RS_206._col0=SEL_208._col2(Inner),HybridGraceHashJoin:true,Output:["_col1","_col3","_col4"]
                               <-Reducer 15 [BROADCAST_EDGE] vectorized
-                                BROADCAST [RS_208]
+                                BROADCAST [RS_206]
                                   PartitionCols:_col0
-                                  Map Join Operator [MAPJOIN_207] (rows=10 width=202)
+                                  Map Join Operator [MAPJOIN_205] (rows=10 width=202)
                                     Conds:(Inner),Output:["_col0","_col1"]
                                   <-Reducer 5 [BROADCAST_EDGE] vectorized
-                                    BROADCAST [RS_204]
-                                      Select Operator [SEL_203] (rows=1 width=8)
-                                        Filter Operator [FIL_202] (rows=1 width=8)
+                                    BROADCAST [RS_202]
+                                      Select Operator [SEL_201] (rows=1 width=8)
+                                        Filter Operator [FIL_200] (rows=1 width=8)
                                           predicate:(sq_count_check(_col0) <= 1)
-                                          Group By Operator [GBY_201] (rows=1 width=8)
+                                          Group By Operator [GBY_199] (rows=1 width=8)
                                             Output:["_col0"],aggregations:["count(VALUE._col0)"]
                                           <-Reducer 4 [CUSTOM_SIMPLE_EDGE] vectorized
-                                            PARTITION_ONLY_SHUFFLE [RS_200]
-                                              Group By Operator [GBY_199] (rows=1 width=8)
+                                            PARTITION_ONLY_SHUFFLE [RS_198]
+                                              Group By Operator [GBY_197] (rows=1 width=8)
                                                 Output:["_col0"],aggregations:["count()"]
-                                                Select Operator [SEL_198] (rows=25 width=4)
-                                                  Group By Operator [GBY_197] (rows=25 width=4)
+                                                Select Operator [SEL_196] (rows=25 width=4)
+                                                  Group By Operator [GBY_195] (rows=25 width=4)
                                                     Output:["_col0"],keys:KEY._col0
                                                   <-Map 2 [SIMPLE_EDGE] vectorized
-                                                    SHUFFLE [RS_187]
+                                                    SHUFFLE [RS_185]
                                                       PartitionCols:_col0
-                                                      Group By Operator [GBY_185] (rows=25 width=4)
+                                                      Group By Operator [GBY_183] (rows=25 width=4)
                                                         Output:["_col0"],keys:d_month_seq
-                                                        Select Operator [SEL_183] (rows=50 width=12)
+                                                        Select Operator [SEL_181] (rows=50 width=12)
                                                           Output:["d_month_seq"]
-                                                          Filter Operator [FIL_181] (rows=50 width=12)
+                                                          Filter Operator [FIL_179] (rows=50 width=12)
                                                             predicate:((d_moy = 2) and (d_year = 2000))
                                                             TableScan [TS_3] (rows=73049 width=12)
                                                               default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_month_seq","d_year","d_moy"]
-                                  <-Select Operator [SEL_206] (rows=10 width=202)
+                                  <-Select Operator [SEL_204] (rows=10 width=202)
                                       Output:["_col0","_col1"]
-                                      Group By Operator [GBY_205] (rows=10 width=210)
+                                      Group By Operator [GBY_203] (rows=10 width=210)
                                         Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0
                                       <-Map 14 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_196]
+                                        SHUFFLE [RS_194]
                                           PartitionCols:_col0
-                                          Group By Operator [GBY_195] (rows=10 width=210)
+                                          Group By Operator [GBY_193] (rows=10 width=210)
                                             Output:["_col0","_col1","_col2"],aggregations:["sum(i_current_price)","count(i_current_price)"],keys:i_category
-                                            Filter Operator [FIL_194] (rows=462000 width=201)
+                                            Filter Operator [FIL_192] (rows=462000 width=201)
                                               predicate:i_category is not null
                                               TableScan [TS_22] (rows=462000 width=201)
                                                 default@item,j,Tbl:COMPLETE,Col:COMPLETE,Output:["i_current_price","i_category"]
-                              <-Select Operator [SEL_210] (rows=462000 width=205)
+                              <-Select Operator [SEL_208] (rows=462000 width=205)
                                   Output:["_col0","_col1","_col2"]
-                                  Filter Operator [FIL_209] (rows=462000 width=205)
+                                  Filter Operator [FIL_207] (rows=462000 width=205)
                                     predicate:i_category is not null
                                     TableScan [TS_43] (rows=462000 width=205)
                                       default@item,i,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_current_price","i_category"]
                       <-Reducer 7 [SIMPLE_EDGE]
                         SHUFFLE [RS_63]
                           PartitionCols:_col4
-                          Merge Join Operator [MERGEJOIN_174] (rows=7192227 width=90)
-                            Conds:RS_223._col5=RS_61._col0(Inner),Output:["_col4","_col9"]
+                          Merge Join Operator [MERGEJOIN_172] (rows=7192227 width=90)
+                            Conds:RS_221._col5=RS_61._col0(Inner),Output:["_col4","_col9"]
                           <-Map 6 [SIMPLE_EDGE] vectorized
-                            SHUFFLE [RS_223]
+                            SHUFFLE [RS_221]
                               PartitionCols:_col5
-                              Map Join Operator [MAPJOIN_222] (rows=7192227 width=4)
-                                Conds:RS_193._col0=SEL_221._col0(Inner),HybridGraceHashJoin:true,Output:["_col4","_col5"]
+                              Map Join Operator [MAPJOIN_220] (rows=7192227 width=4)
+                                Conds:RS_191._col0=SEL_219._col0(Inner),HybridGraceHashJoin:true,Output:["_col4","_col5"]
                               <-Map 1 [BROADCAST_EDGE] vectorized
-                                BROADCAST [RS_193]
+                                BROADCAST [RS_191]
                                   PartitionCols:_col0
-                                  Map Join Operator [MAPJOIN_192] (rows=660 width=4)
-                                    Conds:SEL_191._col1=RS_189._col0(Inner),HybridGraceHashJoin:true,Output:["_col0"]
+                                  Map Join Operator [MAPJOIN_190] (rows=660 width=4)
+                                    Conds:SEL_189._col1=RS_187._col0(Inner),HybridGraceHashJoin:true,Output:["_col0"]
                                   <-Reducer 3 [BROADCAST_EDGE] vectorized
-                                    BROADCAST [RS_189]
+                                    BROADCAST [RS_187]
                                       PartitionCols:_col0
-                                      Group By Operator [GBY_188] (rows=25 width=4)
+                                      Group By Operator [GBY_186] (rows=25 width=4)
                                         Output:["_col0"],keys:KEY._col0
                                       <-Map 2 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_186]
+                                        SHUFFLE [RS_184]
                                           PartitionCols:_col0
-                                          Group By Operator [GBY_184] (rows=25 width=4)
+                                          Group By Operator [GBY_182] (rows=25 width=4)
                                             Output:["_col0"],keys:d_month_seq
-                                            Select Operator [SEL_182] (rows=50 width=12)
+                                            Select Operator [SEL_180] (rows=50 width=12)
                                               Output:["d_month_seq"]
-                                              Filter Operator [FIL_180] (rows=50 width=12)
+                                              Filter Operator [FIL_178] (rows=50 width=12)
                                                 predicate:((d_moy = 2) and (d_year = 2000) and d_month_seq is not null)
                                                  Please refer to the previous TableScan [TS_3]
-                                  <-Select Operator [SEL_191] (rows=73049 width=8)
+                                  <-Select Operator [SEL_189] (rows=73049 width=8)
                                       Output:["_col0","_col1"]
-                                      Filter Operator [FIL_190] (rows=73049 width=8)
+                                      Filter Operator [FIL_188] (rows=73049 width=8)
                                         predicate:d_month_seq is not null
                                         TableScan [TS_0] (rows=73049 width=8)
                                           default@date_dim,d,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_month_seq"]
-                              <-Select Operator [SEL_221] (rows=525327388 width=11)
+                              <-Select Operator [SEL_219] (rows=525327388 width=11)
                                   Output:["_col0","_col1","_col2"]
-                                  Filter Operator [FIL_220] (rows=525327388 width=11)
+                                  Filter Operator [FIL_218] (rows=525327388 width=11)
                                     predicate:((ss_item_sk BETWEEN DynamicValue(RS_64_i_i_item_sk_min) AND DynamicValue(RS_64_i_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_64_i_i_item_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null)
                                     TableScan [TS_10] (rows=575995635 width=11)
                                       default@store_sales,s,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk"]
                                     <-Reducer 17 [BROADCAST_EDGE] vectorized
-                                      BROADCAST [RS_219]
-                                        Group By Operator [GBY_218] (rows=1 width=12)
+                                      BROADCAST [RS_217]
+                                        Group By Operator [GBY_216] (rows=1 width=12)
                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                         <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_217]
-                                            Group By Operator [GBY_216] (rows=1 width=12)
+                                          SHUFFLE [RS_215]
+                                            Group By Operator [GBY_214] (rows=1 width=12)
                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                              Select Operator [SEL_215] (rows=154000 width=4)
+                                              Select Operator [SEL_213] (rows=154000 width=4)
                                                 Output:["_col0"]
-                                                 Please refer to the previous Select Operator [SEL_213]
+                                                 Please refer to the previous Select Operator [SEL_211]
                           <-Reducer 12 [SIMPLE_EDGE]
                             SHUFFLE [RS_61]
                               PartitionCols:_col0
-                              Merge Join Operator [MERGEJOIN_171] (rows=80000000 width=90)
-                                Conds:RS_226._col1=RS_228._col0(Inner),Output:["_col0","_col3"]
+                              Merge Join Operator [MERGEJOIN_169] (rows=80000000 width=90)
+                                Conds:RS_224._col1=RS_226._col0(Inner),Output:["_col0","_col3"]
                               <-Map 11 [SIMPLE_EDGE] vectorized
-                                SHUFFLE [RS_226]
+                                SHUFFLE [RS_224]
                                   PartitionCols:_col1
-                                  Select Operator [SEL_225] (rows=80000000 width=8)
+                                  Select Operator [SEL_223] (rows=80000000 width=8)
                                     Output:["_col0","_col1"]
-                                    Filter Operator [FIL_224] (rows=80000000 width=8)
+                                    Filter Operator [FIL_222] (rows=80000000 width=8)
                                       predicate:c_current_addr_sk is not null
                                       TableScan [TS_13] (rows=80000000 width=8)
                                         default@customer,c,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_addr_sk"]
                               <-Map 13 [SIMPLE_EDGE] vectorized
-                                SHUFFLE [RS_228]
+                                SHUFFLE [RS_226]
                                   PartitionCols:_col0
-                                  Select Operator [SEL_227] (rows=40000000 width=90)
+                                  Select Operator [SEL_225] (rows=40000000 width=90)
                                     Output:["_col0","_col1"]
                                     TableScan [TS_16] (rows=40000000 width=90)
                                       default@customer_address,a,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_state"]


[6/6] hive git commit: HIVE-20788: Extended SJ reduction may backtrack columns incorrectly when creating filters (Jesus Camacho Rodriguez, reviewed by Deepak Jaiswal)

Posted by jc...@apache.org.
HIVE-20788: Extended SJ reduction may backtrack columns incorrectly when creating filters (Jesus Camacho Rodriguez, reviewed by Deepak Jaiswal)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3cbc13e9
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3cbc13e9
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3cbc13e9

Branch: refs/heads/master
Commit: 3cbc13e92b9c22fabf9eac72eaec9352eb9b43d2
Parents: 94d4991
Author: Jesus Camacho Rodriguez <jc...@apache.org>
Authored: Mon Oct 22 18:30:18 2018 -0700
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Wed Oct 24 16:11:48 2018 -0700

----------------------------------------------------------------------
 .../hive/ql/ppd/SyntheticJoinPredicate.java     |  17 +-
 .../queries/clientpositive/perf/cbo_query24.q   |   3 +-
 .../test/queries/clientpositive/perf/query24.q  |   3 +-
 .../clientpositive/perf/spark/query24.q.out     | 400 ++++++++---------
 .../clientpositive/perf/tez/cbo_query23.q.out   |   8 +-
 .../clientpositive/perf/tez/cbo_query24.q.out   | 103 ++---
 .../perf/tez/constraints/cbo_query24.q.out      | 101 ++---
 .../perf/tez/constraints/cbo_query6.q.out       |   2 +-
 .../perf/tez/constraints/query18.q.out          | 108 ++---
 .../perf/tez/constraints/query24.q.out          | 436 ++++++++++---------
 .../perf/tez/constraints/query33.q.out          | 202 ++++-----
 .../perf/tez/constraints/query56.q.out          | 236 +++++-----
 .../perf/tez/constraints/query6.q.out           | 132 +++---
 .../perf/tez/constraints/query60.q.out          | 242 +++++-----
 .../perf/tez/constraints/query95.q.out          | 128 +++---
 .../clientpositive/perf/tez/query18.q.out       | 112 ++---
 .../clientpositive/perf/tez/query23.q.out       | 340 +++++++--------
 .../clientpositive/perf/tez/query24.q.out       | 436 ++++++++++---------
 .../clientpositive/perf/tez/query59.q.out       |  74 ++--
 .../clientpositive/perf/tez/query95.q.out       | 180 ++++----
 20 files changed, 1664 insertions(+), 1599 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/java/org/apache/hadoop/hive/ql/ppd/SyntheticJoinPredicate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ppd/SyntheticJoinPredicate.java b/ql/src/java/org/apache/hadoop/hive/ql/ppd/SyntheticJoinPredicate.java
index 1f533bc..e97e447 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ppd/SyntheticJoinPredicate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ppd/SyntheticJoinPredicate.java
@@ -308,7 +308,22 @@ public class SyntheticJoinPredicate extends Transform {
       CommonJoinOperator<JoinDesc> joinOp = (CommonJoinOperator) currentOp;
 
       // 2. Backtrack expression to join output
-      final ExprNodeDesc joinExprNode = ExprNodeDescUtils.backtrack(currentNode, op, joinOp);
+      ExprNodeDesc expr = currentNode;
+      if (currentOp != op) {
+        if (expr instanceof ExprNodeColumnDesc) {
+          // Expression refers to output of current operator, but backtrack methods works
+          // from the input columns, hence we need to make resolution for current operator
+          // here. If the operator was already the join, there is nothing to do
+          if (op.getColumnExprMap() != null) {
+            expr = op.getColumnExprMap().get(((ExprNodeColumnDesc) expr).getColumn());
+          }
+        } else {
+          // TODO: We can extend to other expression types
+          // We are done
+          return true;
+        }
+      }
+      final ExprNodeDesc joinExprNode = ExprNodeDescUtils.backtrack(expr, op, joinOp);
       if (joinExprNode == null || !(joinExprNode instanceof ExprNodeColumnDesc)) {
         // TODO: We can extend to other expression types
         // We are done

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/queries/clientpositive/perf/cbo_query24.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/perf/cbo_query24.q b/ql/src/test/queries/clientpositive/perf/cbo_query24.q
index 02bcbaf..8994de7 100644
--- a/ql/src/test/queries/clientpositive/perf/cbo_query24.q
+++ b/ql/src/test/queries/clientpositive/perf/cbo_query24.q
@@ -24,7 +24,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/queries/clientpositive/perf/query24.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/perf/query24.q b/ql/src/test/queries/clientpositive/perf/query24.q
index 007d7ee..b3cdaef 100644
--- a/ql/src/test/queries/clientpositive/perf/query24.q
+++ b/ql/src/test/queries/clientpositive/perf/query24.q
@@ -24,7 +24,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/spark/query24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query24.q.out b/ql/src/test/results/clientpositive/perf/spark/query24.q.out
index 4e2e8e7..91fe702 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query24.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query24.q.out
@@ -1,4 +1,4 @@
-Warning: Map Join MAPJOIN[104][bigTable=?] in task 'Stage-1:MAPRED' is a cross product
+Warning: Map Join MAPJOIN[107][bigTable=?] in task 'Stage-1:MAPRED' is a cross product
 PREHOOK: query: explain
 with ssales as
 (select c_last_name
@@ -23,7 +23,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -79,7 +80,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -138,8 +140,8 @@ STAGE PLANS:
                       Statistics: Num rows: 852 Data size: 1628138 Basic stats: COMPLETE Column stats: NONE
                       Spark HashTable Sink Operator
                         keys:
-                          0 _col2 (type: int)
-                          1 _col0 (type: int)
+                          0 _col2 (type: string)
+                          1 _col4 (type: string)
             Execution mode: vectorized
             Local Work:
               Map Reduce Local Work
@@ -147,43 +149,43 @@ STAGE PLANS:
   Stage: Stage-2
     Spark
       Edges:
-        Reducer 13 <- Map 12 (PARTITION-LEVEL SORT, 975), Map 20 (PARTITION-LEVEL SORT, 975)
-        Reducer 14 <- Map 21 (PARTITION-LEVEL SORT, 486), Reducer 13 (PARTITION-LEVEL SORT, 486)
-        Reducer 15 <- Map 22 (PARTITION-LEVEL SORT, 564), Reducer 14 (PARTITION-LEVEL SORT, 564)
-        Reducer 16 <- Map 23 (PARTITION-LEVEL SORT, 899), Reducer 15 (PARTITION-LEVEL SORT, 899)
-        Reducer 17 <- Reducer 16 (GROUP, 640)
+        Reducer 13 <- Map 12 (PARTITION-LEVEL SORT, 887), Map 20 (PARTITION-LEVEL SORT, 887)
+        Reducer 14 <- Map 21 (PARTITION-LEVEL SORT, 989), Reducer 13 (PARTITION-LEVEL SORT, 989)
+        Reducer 15 <- Map 22 (PARTITION-LEVEL SORT, 442), Reducer 14 (PARTITION-LEVEL SORT, 442)
+        Reducer 16 <- Map 23 (PARTITION-LEVEL SORT, 516), Reducer 15 (PARTITION-LEVEL SORT, 516)
+        Reducer 17 <- Reducer 16 (GROUP, 529)
         Reducer 18 <- Reducer 17 (GROUP, 1)
 #### A masked pattern was here ####
       Vertices:
         Map 12 
             Map Operator Tree:
                 TableScan
-                  alias: store_sales
-                  filterExpr: (ss_ticket_number is not null and ss_item_sk is not null and ss_store_sk is not null and ss_customer_sk is not null) (type: boolean)
-                  Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
+                  alias: customer_address
+                  filterExpr: (ca_address_sk is not null and ca_zip is not null) (type: boolean)
+                  Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (ss_customer_sk is not null and ss_item_sk is not null and ss_store_sk is not null and ss_ticket_number is not null) (type: boolean)
-                    Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
+                    predicate: (ca_address_sk is not null and ca_zip is not null) (type: boolean)
+                    Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: ss_item_sk (type: int), ss_customer_sk (type: int), ss_store_sk (type: int), ss_ticket_number (type: int), ss_sales_price (type: decimal(7,2))
-                      outputColumnNames: _col0, _col1, _col2, _col3, _col4
-                      Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
+                      expressions: ca_address_sk (type: int), ca_state (type: string), ca_zip (type: string), ca_country (type: string)
+                      outputColumnNames: _col0, _col1, _col2, _col3
+                      Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
                       Map Join Operator
                         condition map:
                              Inner Join 0 to 1
                         keys:
-                          0 _col2 (type: int)
-                          1 _col0 (type: int)
-                        outputColumnNames: _col0, _col1, _col3, _col4, _col6, _col8, _col9
+                          0 _col2 (type: string)
+                          1 _col4 (type: string)
+                        outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col7
                         input vertices:
                           1 Map 19
-                        Statistics: Num rows: 633595212 Data size: 55895953508 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 44000000 Data size: 44654715780 Basic stats: COMPLETE Column stats: NONE
                         Reduce Output Operator
-                          key expressions: _col1 (type: int)
+                          key expressions: _col0 (type: int)
                           sort order: +
-                          Map-reduce partition columns: _col1 (type: int)
-                          Statistics: Num rows: 633595212 Data size: 55895953508 Basic stats: COMPLETE Column stats: NONE
-                          value expressions: _col0 (type: int), _col3 (type: int), _col4 (type: decimal(7,2)), _col6 (type: string), _col8 (type: string), _col9 (type: string)
+                          Map-reduce partition columns: _col0 (type: int)
+                          Statistics: Num rows: 44000000 Data size: 44654715780 Basic stats: COMPLETE Column stats: NONE
+                          value expressions: _col1 (type: string), _col3 (type: string), _col4 (type: int), _col5 (type: string), _col7 (type: string)
             Execution mode: vectorized
             Local Work:
               Map Reduce Local Work
@@ -191,25 +193,45 @@ STAGE PLANS:
             Map Operator Tree:
                 TableScan
                   alias: customer
-                  filterExpr: (c_customer_sk is not null and c_birth_country is not null) (type: boolean)
+                  filterExpr: (c_customer_sk is not null and c_current_addr_sk is not null) (type: boolean)
                   Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (c_birth_country is not null and c_customer_sk is not null) (type: boolean)
+                    predicate: (c_current_addr_sk is not null and c_customer_sk is not null) (type: boolean)
                     Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: c_customer_sk (type: int), c_first_name (type: string), c_last_name (type: string), c_birth_country (type: string)
-                      outputColumnNames: _col0, _col1, _col2, _col3
+                      expressions: c_customer_sk (type: int), c_current_addr_sk (type: int), c_first_name (type: string), c_last_name (type: string), c_birth_country (type: string)
+                      outputColumnNames: _col0, _col1, _col2, _col3, _col4
                       Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
-                        key expressions: _col0 (type: int)
+                        key expressions: _col1 (type: int)
                         sort order: +
-                        Map-reduce partition columns: _col0 (type: int)
+                        Map-reduce partition columns: _col1 (type: int)
                         Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
-                        value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string)
+                        value expressions: _col0 (type: int), _col2 (type: string), _col3 (type: string), _col4 (type: string)
             Execution mode: vectorized
         Map 21 
             Map Operator Tree:
                 TableScan
+                  alias: store_sales
+                  filterExpr: (ss_ticket_number is not null and ss_item_sk is not null and ss_store_sk is not null and ss_customer_sk is not null) (type: boolean)
+                  Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (ss_customer_sk is not null and ss_item_sk is not null and ss_store_sk is not null and ss_ticket_number is not null) (type: boolean)
+                    Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: ss_item_sk (type: int), ss_customer_sk (type: int), ss_store_sk (type: int), ss_ticket_number (type: int), ss_sales_price (type: decimal(7,2))
+                      outputColumnNames: _col0, _col1, _col2, _col3, _col4
+                      Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
+                      Reduce Output Operator
+                        key expressions: _col1 (type: int), _col2 (type: int)
+                        sort order: ++
+                        Map-reduce partition columns: _col1 (type: int), _col2 (type: int)
+                        Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
+                        value expressions: _col0 (type: int), _col3 (type: int), _col4 (type: decimal(7,2))
+            Execution mode: vectorized
+        Map 22 
+            Map Operator Tree:
+                TableScan
                   alias: item
                   filterExpr: i_item_sk is not null (type: boolean)
                   Statistics: Num rows: 462000 Data size: 663560457 Basic stats: COMPLETE Column stats: NONE
@@ -227,7 +249,7 @@ STAGE PLANS:
                         Statistics: Num rows: 462000 Data size: 663560457 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col1 (type: decimal(7,2)), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: int)
             Execution mode: vectorized
-        Map 22 
+        Map 23 
             Map Operator Tree:
                 TableScan
                   alias: store_returns
@@ -246,109 +268,92 @@ STAGE PLANS:
                         Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
                         Statistics: Num rows: 57591150 Data size: 4462194832 Basic stats: COMPLETE Column stats: NONE
             Execution mode: vectorized
-        Map 23 
-            Map Operator Tree:
-                TableScan
-                  alias: customer_address
-                  filterExpr: (upper(ca_country) is not null and ca_zip is not null) (type: boolean)
-                  Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                  Filter Operator
-                    predicate: (ca_zip is not null and upper(ca_country) is not null) (type: boolean)
-                    Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                    Select Operator
-                      expressions: ca_state (type: string), ca_zip (type: string), ca_country (type: string)
-                      outputColumnNames: _col0, _col1, _col2
-                      Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col1 (type: string), upper(_col2) (type: string)
-                        sort order: ++
-                        Map-reduce partition columns: _col1 (type: string), upper(_col2) (type: string)
-                        Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                        value expressions: _col0 (type: string)
-            Execution mode: vectorized
         Reducer 13 
             Reduce Operator Tree:
               Join Operator
                 condition map:
                      Inner Join 0 to 1
                 keys:
-                  0 _col1 (type: int)
-                  1 _col0 (type: int)
-                outputColumnNames: _col0, _col3, _col4, _col6, _col8, _col9, _col11, _col12, _col13
-                Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
-                Reduce Output Operator
-                  key expressions: _col0 (type: int)
-                  sort order: +
-                  Map-reduce partition columns: _col0 (type: int)
-                  Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col3 (type: int), _col4 (type: decimal(7,2)), _col6 (type: string), _col8 (type: string), _col9 (type: string), _col11 (type: string), _col12 (type: string), _col13 (type: string)
+                  0 _col0 (type: int)
+                  1 _col1 (type: int)
+                outputColumnNames: _col1, _col3, _col4, _col5, _col7, _col9, _col11, _col12, _col13
+                Statistics: Num rows: 88000001 Data size: 75681779077 Basic stats: COMPLETE Column stats: NONE
+                Filter Operator
+                  predicate: (_col13 <> upper(_col3)) (type: boolean)
+                  Statistics: Num rows: 88000001 Data size: 75681779077 Basic stats: COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: _col9 (type: int), _col4 (type: int)
+                    sort order: ++
+                    Map-reduce partition columns: _col9 (type: int), _col4 (type: int)
+                    Statistics: Num rows: 88000001 Data size: 75681779077 Basic stats: COMPLETE Column stats: NONE
+                    value expressions: _col1 (type: string), _col5 (type: string), _col7 (type: string), _col11 (type: string), _col12 (type: string)
         Reducer 14 
             Reduce Operator Tree:
               Join Operator
                 condition map:
                      Inner Join 0 to 1
                 keys:
-                  0 _col0 (type: int)
-                  1 _col0 (type: int)
-                outputColumnNames: _col0, _col3, _col4, _col6, _col8, _col9, _col11, _col12, _col13, _col15, _col16, _col17, _col18, _col19
-                Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
+                  0 _col9 (type: int), _col4 (type: int)
+                  1 _col1 (type: int), _col2 (type: int)
+                outputColumnNames: _col1, _col5, _col7, _col11, _col12, _col14, _col17, _col18
+                Statistics: Num rows: 633595212 Data size: 55895953508 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
-                  key expressions: _col0 (type: int), _col3 (type: int)
-                  sort order: ++
-                  Map-reduce partition columns: _col0 (type: int), _col3 (type: int)
-                  Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col4 (type: decimal(7,2)), _col6 (type: string), _col8 (type: string), _col9 (type: string), _col11 (type: string), _col12 (type: string), _col13 (type: string), _col15 (type: decimal(7,2)), _col16 (type: string), _col17 (type: string), _col18 (type: string), _col19 (type: int)
+                  key expressions: _col14 (type: int)
+                  sort order: +
+                  Map-reduce partition columns: _col14 (type: int)
+                  Statistics: Num rows: 633595212 Data size: 55895953508 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col1 (type: string), _col5 (type: string), _col7 (type: string), _col11 (type: string), _col12 (type: string), _col17 (type: int), _col18 (type: decimal(7,2))
         Reducer 15 
             Reduce Operator Tree:
               Join Operator
                 condition map:
                      Inner Join 0 to 1
                 keys:
-                  0 _col0 (type: int), _col3 (type: int)
-                  1 _col0 (type: int), _col1 (type: int)
-                outputColumnNames: _col4, _col6, _col8, _col9, _col11, _col12, _col13, _col15, _col16, _col17, _col18, _col19
-                Statistics: Num rows: 843315281 Data size: 74397518956 Basic stats: COMPLETE Column stats: NONE
+                  0 _col14 (type: int)
+                  1 _col0 (type: int)
+                outputColumnNames: _col1, _col5, _col7, _col11, _col12, _col14, _col17, _col18, _col20, _col21, _col22, _col23, _col24
+                Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
-                  key expressions: _col9 (type: string), _col13 (type: string)
+                  key expressions: _col14 (type: int), _col17 (type: int)
                   sort order: ++
-                  Map-reduce partition columns: _col9 (type: string), _col13 (type: string)
-                  Statistics: Num rows: 843315281 Data size: 74397518956 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col4 (type: decimal(7,2)), _col6 (type: string), _col8 (type: string), _col11 (type: string), _col12 (type: string), _col15 (type: decimal(7,2)), _col16 (type: string), _col17 (type: string), _col18 (type: string), _col19 (type: int)
+                  Map-reduce partition columns: _col14 (type: int), _col17 (type: int)
+                  Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col1 (type: string), _col5 (type: string), _col7 (type: string), _col11 (type: string), _col12 (type: string), _col18 (type: decimal(7,2)), _col20 (type: decimal(7,2)), _col21 (type: string), _col22 (type: string), _col23 (type: string), _col24 (type: int)
         Reducer 16 
             Reduce Operator Tree:
               Join Operator
                 condition map:
                      Inner Join 0 to 1
                 keys:
-                  0 _col9 (type: string), _col13 (type: string)
-                  1 _col1 (type: string), upper(_col2) (type: string)
-                outputColumnNames: _col4, _col6, _col8, _col11, _col12, _col15, _col16, _col17, _col18, _col19, _col22
-                Statistics: Num rows: 927646829 Data size: 81837272625 Basic stats: COMPLETE Column stats: NONE
+                  0 _col14 (type: int), _col17 (type: int)
+                  1 _col0 (type: int), _col1 (type: int)
+                outputColumnNames: _col1, _col5, _col7, _col11, _col12, _col18, _col20, _col21, _col22, _col23, _col24
+                Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
                 Group By Operator
-                  aggregations: sum(_col4)
-                  keys: _col11 (type: string), _col12 (type: string), _col6 (type: string), _col8 (type: string), _col15 (type: decimal(7,2)), _col16 (type: string), _col17 (type: string), _col18 (type: string), _col19 (type: int), _col22 (type: string)
+                  aggregations: sum(_col18)
+                  keys: _col11 (type: string), _col12 (type: string), _col1 (type: string), _col5 (type: string), _col7 (type: string), _col20 (type: decimal(7,2)), _col21 (type: string), _col22 (type: string), _col23 (type: string), _col24 (type: int)
                   mode: hash
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
-                  Statistics: Num rows: 927646829 Data size: 81837272625 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
-                    key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: decimal(7,2)), _col5 (type: string), _col6 (type: string), _col7 (type: string), _col8 (type: int), _col9 (type: string)
+                    key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: decimal(7,2)), _col6 (type: string), _col7 (type: string), _col8 (type: string), _col9 (type: int)
                     sort order: ++++++++++
-                    Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: decimal(7,2)), _col5 (type: string), _col6 (type: string), _col7 (type: string), _col8 (type: int), _col9 (type: string)
-                    Statistics: Num rows: 927646829 Data size: 81837272625 Basic stats: COMPLETE Column stats: NONE
+                    Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: decimal(7,2)), _col6 (type: string), _col7 (type: string), _col8 (type: string), _col9 (type: int)
+                    Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
                     value expressions: _col10 (type: decimal(17,2))
         Reducer 17 
             Execution mode: vectorized
             Reduce Operator Tree:
               Group By Operator
                 aggregations: sum(VALUE._col0)
-                keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string), KEY._col3 (type: string), KEY._col4 (type: decimal(7,2)), KEY._col5 (type: string), KEY._col6 (type: string), KEY._col7 (type: string), KEY._col8 (type: int), KEY._col9 (type: string)
+                keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string), KEY._col3 (type: string), KEY._col4 (type: string), KEY._col5 (type: decimal(7,2)), KEY._col6 (type: string), KEY._col7 (type: string), KEY._col8 (type: string), KEY._col9 (type: int)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
-                Statistics: Num rows: 463823414 Data size: 40918636268 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 383325119 Data size: 33817053293 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
                   expressions: _col10 (type: decimal(17,2))
                   outputColumnNames: _col10
-                  Statistics: Num rows: 463823414 Data size: 40918636268 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 383325119 Data size: 33817053293 Basic stats: COMPLETE Column stats: NONE
                   Group By Operator
                     aggregations: sum(_col10), count(_col10)
                     mode: hash
@@ -381,7 +386,7 @@ STAGE PLANS:
     Spark
 #### A masked pattern was here ####
       Vertices:
-        Map 8 
+        Map 9 
             Map Operator Tree:
                 TableScan
                   alias: store
@@ -396,8 +401,8 @@ STAGE PLANS:
                       Statistics: Num rows: 852 Data size: 1628138 Basic stats: COMPLETE Column stats: NONE
                       Spark HashTable Sink Operator
                         keys:
-                          0 _col2 (type: int)
-                          1 _col0 (type: int)
+                          0 _col2 (type: string)
+                          1 _col4 (type: string)
             Execution mode: vectorized
             Local Work:
               Map Reduce Local Work
@@ -405,11 +410,11 @@ STAGE PLANS:
   Stage: Stage-1
     Spark
       Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 400), Map 7 (PARTITION-LEVEL SORT, 400)
-        Reducer 3 <- Map 9 (PARTITION-LEVEL SORT, 1009), Reducer 2 (PARTITION-LEVEL SORT, 1009)
-        Reducer 4 <- Map 10 (PARTITION-LEVEL SORT, 564), Reducer 3 (PARTITION-LEVEL SORT, 564)
-        Reducer 5 <- Map 11 (PARTITION-LEVEL SORT, 899), Reducer 4 (PARTITION-LEVEL SORT, 899)
-        Reducer 6 <- Reducer 5 (GROUP PARTITION-LEVEL SORT, 640)
+        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 400), Map 6 (PARTITION-LEVEL SORT, 400)
+        Reducer 3 <- Reducer 2 (PARTITION-LEVEL SORT, 1009), Reducer 8 (PARTITION-LEVEL SORT, 1009)
+        Reducer 4 <- Map 11 (PARTITION-LEVEL SORT, 516), Reducer 3 (PARTITION-LEVEL SORT, 516)
+        Reducer 5 <- Reducer 4 (GROUP PARTITION-LEVEL SORT, 529)
+        Reducer 8 <- Map 10 (PARTITION-LEVEL SORT, 887), Map 7 (PARTITION-LEVEL SORT, 887)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -435,6 +440,26 @@ STAGE PLANS:
         Map 10 
             Map Operator Tree:
                 TableScan
+                  alias: customer
+                  filterExpr: (c_customer_sk is not null and c_current_addr_sk is not null) (type: boolean)
+                  Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (c_current_addr_sk is not null and c_customer_sk is not null) (type: boolean)
+                    Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: c_customer_sk (type: int), c_current_addr_sk (type: int), c_first_name (type: string), c_last_name (type: string), c_birth_country (type: string)
+                      outputColumnNames: _col0, _col1, _col2, _col3, _col4
+                      Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
+                      Reduce Output Operator
+                        key expressions: _col1 (type: int)
+                        sort order: +
+                        Map-reduce partition columns: _col1 (type: int)
+                        Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
+                        value expressions: _col0 (type: int), _col2 (type: string), _col3 (type: string), _col4 (type: string)
+            Execution mode: vectorized
+        Map 11 
+            Map Operator Tree:
+                TableScan
                   alias: store_returns
                   filterExpr: (sr_ticket_number is not null and sr_item_sk is not null) (type: boolean)
                   Statistics: Num rows: 57591150 Data size: 4462194832 Basic stats: COMPLETE Column stats: NONE
@@ -451,27 +476,7 @@ STAGE PLANS:
                         Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
                         Statistics: Num rows: 57591150 Data size: 4462194832 Basic stats: COMPLETE Column stats: NONE
             Execution mode: vectorized
-        Map 11 
-            Map Operator Tree:
-                TableScan
-                  alias: customer_address
-                  filterExpr: (upper(ca_country) is not null and ca_zip is not null) (type: boolean)
-                  Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                  Filter Operator
-                    predicate: (ca_zip is not null and upper(ca_country) is not null) (type: boolean)
-                    Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                    Select Operator
-                      expressions: ca_state (type: string), ca_zip (type: string), ca_country (type: string)
-                      outputColumnNames: _col0, _col1, _col2
-                      Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col1 (type: string), upper(_col2) (type: string)
-                        sort order: ++
-                        Map-reduce partition columns: _col1 (type: string), upper(_col2) (type: string)
-                        Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
-                        value expressions: _col0 (type: string)
-            Execution mode: vectorized
-        Map 7 
+        Map 6 
             Map Operator Tree:
                 TableScan
                   alias: item
@@ -491,29 +496,39 @@ STAGE PLANS:
                         Statistics: Num rows: 231000 Data size: 331780228 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col1 (type: decimal(7,2)), _col2 (type: string), _col4 (type: string), _col5 (type: int)
             Execution mode: vectorized
-        Map 9 
+        Map 7 
             Map Operator Tree:
                 TableScan
-                  alias: customer
-                  filterExpr: (c_customer_sk is not null and c_birth_country is not null) (type: boolean)
-                  Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
+                  alias: customer_address
+                  filterExpr: (ca_address_sk is not null and ca_zip is not null) (type: boolean)
+                  Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (c_birth_country is not null and c_customer_sk is not null) (type: boolean)
-                    Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
+                    predicate: (ca_address_sk is not null and ca_zip is not null) (type: boolean)
+                    Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: c_customer_sk (type: int), c_first_name (type: string), c_last_name (type: string), c_birth_country (type: string)
+                      expressions: ca_address_sk (type: int), ca_state (type: string), ca_zip (type: string), ca_country (type: string)
                       outputColumnNames: _col0, _col1, _col2, _col3
-                      Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: int)
-                        sort order: +
-                        Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 80000000 Data size: 68801615852 Basic stats: COMPLETE Column stats: NONE
-                        value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string)
+                      Statistics: Num rows: 40000000 Data size: 40595195284 Basic stats: COMPLETE Column stats: NONE
+                      Map Join Operator
+                        condition map:
+                             Inner Join 0 to 1
+                        keys:
+                          0 _col2 (type: string)
+                          1 _col4 (type: string)
+                        outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col7
+                        input vertices:
+                          1 Map 9
+                        Statistics: Num rows: 44000000 Data size: 44654715780 Basic stats: COMPLETE Column stats: NONE
+                        Reduce Output Operator
+                          key expressions: _col0 (type: int)
+                          sort order: +
+                          Map-reduce partition columns: _col0 (type: int)
+                          Statistics: Num rows: 44000000 Data size: 44654715780 Basic stats: COMPLETE Column stats: NONE
+                          value expressions: _col1 (type: string), _col3 (type: string), _col4 (type: int), _col5 (type: string), _col7 (type: string)
             Execution mode: vectorized
-        Reducer 2 
             Local Work:
               Map Reduce Local Work
+        Reducer 2 
             Reduce Operator Tree:
               Join Operator
                 condition map:
@@ -523,38 +538,28 @@ STAGE PLANS:
                   1 _col0 (type: int)
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col6, _col7, _col9, _col10
                 Statistics: Num rows: 633595212 Data size: 55895953508 Basic stats: COMPLETE Column stats: NONE
-                Map Join Operator
-                  condition map:
-                       Inner Join 0 to 1
-                  keys:
-                    0 _col2 (type: int)
-                    1 _col0 (type: int)
-                  outputColumnNames: _col0, _col1, _col3, _col4, _col6, _col7, _col9, _col10, _col12, _col14, _col15
-                  input vertices:
-                    1 Map 8
-                  Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
-                  Reduce Output Operator
-                    key expressions: _col1 (type: int)
-                    sort order: +
-                    Map-reduce partition columns: _col1 (type: int)
-                    Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
-                    value expressions: _col0 (type: int), _col3 (type: int), _col4 (type: decimal(7,2)), _col6 (type: decimal(7,2)), _col7 (type: string), _col9 (type: string), _col10 (type: int), _col12 (type: string), _col14 (type: string), _col15 (type: string)
+                Reduce Output Operator
+                  key expressions: _col1 (type: int), _col2 (type: int)
+                  sort order: ++
+                  Map-reduce partition columns: _col1 (type: int), _col2 (type: int)
+                  Statistics: Num rows: 633595212 Data size: 55895953508 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col0 (type: int), _col3 (type: int), _col4 (type: decimal(7,2)), _col6 (type: decimal(7,2)), _col7 (type: string), _col9 (type: string), _col10 (type: int)
         Reducer 3 
             Reduce Operator Tree:
               Join Operator
                 condition map:
                      Inner Join 0 to 1
                 keys:
-                  0 _col1 (type: int)
-                  1 _col0 (type: int)
-                outputColumnNames: _col0, _col3, _col4, _col6, _col7, _col9, _col10, _col12, _col14, _col15, _col17, _col18, _col19
-                Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
+                  0 _col1 (type: int), _col2 (type: int)
+                  1 _col0 (type: int), _col9 (type: int)
+                outputColumnNames: _col0, _col3, _col4, _col6, _col7, _col9, _col10, _col13, _col14, _col17, _col21, _col23
+                Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
                   key expressions: _col0 (type: int), _col3 (type: int)
                   sort order: ++
                   Map-reduce partition columns: _col0 (type: int), _col3 (type: int)
-                  Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col4 (type: decimal(7,2)), _col6 (type: decimal(7,2)), _col7 (type: string), _col9 (type: string), _col10 (type: int), _col12 (type: string), _col14 (type: string), _col15 (type: string), _col17 (type: string), _col18 (type: string), _col19 (type: string)
+                  Statistics: Num rows: 696954748 Data size: 61485550191 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col4 (type: decimal(7,2)), _col6 (type: decimal(7,2)), _col7 (type: string), _col9 (type: string), _col10 (type: int), _col13 (type: string), _col14 (type: string), _col17 (type: string), _col21 (type: string), _col23 (type: string)
         Reducer 4 
             Reduce Operator Tree:
               Join Operator
@@ -563,61 +568,45 @@ STAGE PLANS:
                 keys:
                   0 _col0 (type: int), _col3 (type: int)
                   1 _col0 (type: int), _col1 (type: int)
-                outputColumnNames: _col4, _col6, _col7, _col9, _col10, _col12, _col14, _col15, _col17, _col18, _col19
-                Statistics: Num rows: 843315281 Data size: 74397518956 Basic stats: COMPLETE Column stats: NONE
-                Reduce Output Operator
-                  key expressions: _col15 (type: string), _col19 (type: string)
-                  sort order: ++
-                  Map-reduce partition columns: _col15 (type: string), _col19 (type: string)
-                  Statistics: Num rows: 843315281 Data size: 74397518956 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col4 (type: decimal(7,2)), _col6 (type: decimal(7,2)), _col7 (type: string), _col9 (type: string), _col10 (type: int), _col12 (type: string), _col14 (type: string), _col17 (type: string), _col18 (type: string)
-        Reducer 5 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Inner Join 0 to 1
-                keys:
-                  0 _col15 (type: string), _col19 (type: string)
-                  1 _col1 (type: string), upper(_col2) (type: string)
-                outputColumnNames: _col4, _col6, _col7, _col9, _col10, _col12, _col14, _col17, _col18, _col22
-                Statistics: Num rows: 927646829 Data size: 81837272625 Basic stats: COMPLETE Column stats: NONE
+                outputColumnNames: _col4, _col6, _col7, _col9, _col10, _col13, _col14, _col17, _col21, _col23
+                Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
                 Group By Operator
                   aggregations: sum(_col4)
-                  keys: _col17 (type: string), _col18 (type: string), _col12 (type: string), _col22 (type: string), _col6 (type: decimal(7,2)), _col7 (type: string), _col9 (type: string), _col10 (type: int), _col14 (type: string)
+                  keys: _col13 (type: string), _col14 (type: string), _col21 (type: string), _col6 (type: decimal(7,2)), _col7 (type: string), _col9 (type: string), _col10 (type: int), _col17 (type: string), _col23 (type: string)
                   mode: hash
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                  Statistics: Num rows: 927646829 Data size: 81837272625 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
-                    key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: decimal(7,2)), _col5 (type: string), _col6 (type: string), _col7 (type: int), _col8 (type: string)
+                    key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: decimal(7,2)), _col4 (type: string), _col5 (type: string), _col6 (type: int), _col7 (type: string), _col8 (type: string)
                     sort order: +++++++++
                     Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
-                    Statistics: Num rows: 927646829 Data size: 81837272625 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 766650239 Data size: 67634106676 Basic stats: COMPLETE Column stats: NONE
                     value expressions: _col9 (type: decimal(17,2))
-        Reducer 6 
+        Reducer 5 
             Execution mode: vectorized
             Local Work:
               Map Reduce Local Work
             Reduce Operator Tree:
               Group By Operator
                 aggregations: sum(VALUE._col0)
-                keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string), KEY._col3 (type: string), KEY._col4 (type: decimal(7,2)), KEY._col5 (type: string), KEY._col6 (type: string), KEY._col7 (type: int), KEY._col8 (type: string)
+                keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string), KEY._col3 (type: decimal(7,2)), KEY._col4 (type: string), KEY._col5 (type: string), KEY._col6 (type: int), KEY._col7 (type: string), KEY._col8 (type: string)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                Statistics: Num rows: 463823414 Data size: 40918636268 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 383325119 Data size: 33817053293 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
                   expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col9 (type: decimal(17,2))
-                  outputColumnNames: _col1, _col2, _col7, _col9
-                  Statistics: Num rows: 463823414 Data size: 40918636268 Basic stats: COMPLETE Column stats: NONE
+                  outputColumnNames: _col4, _col5, _col7, _col9
+                  Statistics: Num rows: 383325119 Data size: 33817053293 Basic stats: COMPLETE Column stats: NONE
                   Group By Operator
                     aggregations: sum(_col9)
-                    keys: _col1 (type: string), _col2 (type: string), _col7 (type: string)
+                    keys: _col4 (type: string), _col5 (type: string), _col7 (type: string)
                     mode: complete
                     outputColumnNames: _col0, _col1, _col2, _col3
-                    Statistics: Num rows: 231911707 Data size: 20459318134 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 191662559 Data size: 16908526602 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
                       expressions: _col1 (type: string), _col0 (type: string), _col2 (type: string), _col3 (type: decimal(27,2))
                       outputColumnNames: _col0, _col1, _col2, _col3
-                      Statistics: Num rows: 231911707 Data size: 20459318134 Basic stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 191662559 Data size: 16908526602 Basic stats: COMPLETE Column stats: NONE
                       Map Join Operator
                         condition map:
                              Inner Join 0 to 1
@@ -627,21 +616,44 @@ STAGE PLANS:
                         outputColumnNames: _col0, _col1, _col2, _col3, _col4
                         input vertices:
                           1 Reducer 18
-                        Statistics: Num rows: 231911707 Data size: 74494745865 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 191662559 Data size: 61565902849 Basic stats: COMPLETE Column stats: NONE
                         Filter Operator
                           predicate: (_col3 > _col4) (type: boolean)
-                          Statistics: Num rows: 77303902 Data size: 24831581847 Basic stats: COMPLETE Column stats: NONE
+                          Statistics: Num rows: 63887519 Data size: 20521967402 Basic stats: COMPLETE Column stats: NONE
                           Select Operator
                             expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: decimal(27,2))
                             outputColumnNames: _col0, _col1, _col2, _col3
-                            Statistics: Num rows: 77303902 Data size: 24831581847 Basic stats: COMPLETE Column stats: NONE
+                            Statistics: Num rows: 63887519 Data size: 20521967402 Basic stats: COMPLETE Column stats: NONE
                             File Output Operator
                               compressed: false
-                              Statistics: Num rows: 77303902 Data size: 24831581847 Basic stats: COMPLETE Column stats: NONE
+                              Statistics: Num rows: 63887519 Data size: 20521967402 Basic stats: COMPLETE Column stats: NONE
                               table:
                                   input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                                   output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                                   serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+        Reducer 8 
+            Reduce Operator Tree:
+              Join Operator
+                condition map:
+                     Inner Join 0 to 1
+                keys:
+                  0 _col0 (type: int)
+                  1 _col1 (type: int)
+                outputColumnNames: _col1, _col3, _col4, _col5, _col7, _col9, _col11, _col12, _col13
+                Statistics: Num rows: 88000001 Data size: 75681779077 Basic stats: COMPLETE Column stats: NONE
+                Filter Operator
+                  predicate: (_col13 <> upper(_col3)) (type: boolean)
+                  Statistics: Num rows: 88000001 Data size: 75681779077 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: _col9 (type: int), _col11 (type: string), _col12 (type: string), _col1 (type: string), _col4 (type: int), _col5 (type: string), _col7 (type: string)
+                    outputColumnNames: _col0, _col2, _col3, _col6, _col9, _col10, _col12
+                    Statistics: Num rows: 88000001 Data size: 75681779077 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: int), _col9 (type: int)
+                      sort order: ++
+                      Map-reduce partition columns: _col0 (type: int), _col9 (type: int)
+                      Statistics: Num rows: 88000001 Data size: 75681779077 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col2 (type: string), _col3 (type: string), _col6 (type: string), _col10 (type: string), _col12 (type: string)
 
   Stage: Stage-0
     Fetch Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/cbo_query23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/cbo_query23.q.out b/ql/src/test/results/clientpositive/perf/tez/cbo_query23.q.out
index baf790e..ace7cf5 100644
--- a/ql/src/test/results/clientpositive/perf/tez/cbo_query23.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/cbo_query23.q.out
@@ -1,7 +1,7 @@
-Warning: Shuffle Join MERGEJOIN[589][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 29' is a cross product
-Warning: Shuffle Join MERGEJOIN[590][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 30' is a cross product
-Warning: Shuffle Join MERGEJOIN[592][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 33' is a cross product
-Warning: Shuffle Join MERGEJOIN[593][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 34' is a cross product
+Warning: Shuffle Join MERGEJOIN[593][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 29' is a cross product
+Warning: Shuffle Join MERGEJOIN[594][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 30' is a cross product
+Warning: Shuffle Join MERGEJOIN[596][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 33' is a cross product
+Warning: Shuffle Join MERGEJOIN[597][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 34' is a cross product
 PREHOOK: query: explain cbo
 with frequent_ss_items as 
  (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/cbo_query24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/cbo_query24.q.out b/ql/src/test/results/clientpositive/perf/tez/cbo_query24.q.out
index 53220d2..1d005b8 100644
--- a/ql/src/test/results/clientpositive/perf/tez/cbo_query24.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/cbo_query24.q.out
@@ -1,4 +1,4 @@
-Warning: Shuffle Join MERGEJOIN[290][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 8' is a cross product
+Warning: Shuffle Join MERGEJOIN[301][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product
 PREHOOK: query: explain cbo
 with ssales as
 (select c_last_name
@@ -23,7 +23,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -79,7 +80,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -115,57 +117,58 @@ CBO PLAN:
 HiveProject($f0=[$0], $f1=[$1], $f2=[$2], $f3=[$3])
   HiveJoin(condition=[>($3, $4)], joinType=[inner], algorithm=[none], cost=[not available])
     HiveProject(c_last_name=[$1], c_first_name=[$0], s_store_name=[$2], $f3=[$3])
-      HiveAggregate(group=[{1, 2, 7}], agg#0=[sum($9)])
-        HiveProject(ca_state=[$0], c_first_name=[$1], c_last_name=[$2], i_current_price=[$3], i_size=[$4], i_units=[$5], i_manager_id=[$6], s_store_name=[$7], s_state=[$8], $f9=[$9])
-          HiveAggregate(group=[{0, 6, 7, 15, 16, 18, 19, 21, 23}], agg#0=[sum($13)])
-            HiveJoin(condition=[AND(=($8, UPPER($2)), =($24, $1))], joinType=[inner], algorithm=[none], cost=[not available])
-              HiveProject(ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                HiveFilter(condition=[AND(IS NOT NULL(UPPER($10)), IS NOT NULL($9))])
-                  HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
-              HiveJoin(condition=[AND(=($9, $1), =($6, $0))], joinType=[inner], algorithm=[none], cost=[not available])
-                HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
-                  HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2))])
-                    HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
-                HiveJoin(condition=[=($5, $0)], joinType=[inner], algorithm=[none], cost=[not available])
-                  HiveProject(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                    HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($14))])
-                      HiveTableScan(table=[[default, customer]], table:alias=[customer])
-                  HiveJoin(condition=[=($2, $11)], joinType=[inner], algorithm=[none], cost=[not available])
-                    HiveJoin(condition=[=($0, $5)], joinType=[inner], algorithm=[none], cost=[not available])
-                      HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
-                        HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2), IS NOT NULL($7), IS NOT NULL($3))])
-                          HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
-                      HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[CAST(_UTF-16LE'orchid'):VARCHAR(2147483647) CHARACTER SET "UTF-16LE" COLLATE "ISO-8859-1$en_US$primary"], i_units=[$18], i_manager_id=[$20])
-                        HiveFilter(condition=[AND(=($17, _UTF-16LE'orchid'), IS NOT NULL($0))])
-                          HiveTableScan(table=[[default, item]], table:alias=[item])
-                    HiveProject(s_store_sk=[$0], s_store_name=[$5], s_market_id=[CAST(7):INTEGER], s_state=[$24], s_zip=[$25])
-                      HiveFilter(condition=[AND(=($10, 7), IS NOT NULL($0), IS NOT NULL($25))])
-                        HiveTableScan(table=[[default, store]], table:alias=[store])
+      HiveAggregate(group=[{4, 5, 7}], agg#0=[sum($9)])
+        HiveProject(i_current_price=[$0], i_size=[$1], i_units=[$2], i_manager_id=[$3], c_first_name=[$4], c_last_name=[$5], ca_state=[$6], s_store_name=[$7], s_state=[$8], $f9=[$9])
+          HiveAggregate(group=[{8, 9, 11, 12, 15, 16, 19, 23, 25}], agg#0=[sum($6)])
+            HiveJoin(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner], algorithm=[none], cost=[not available])
+              HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
+                HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2))])
+                  HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
+              HiveJoin(condition=[AND(=($1, $11), =($2, $20))], joinType=[inner], algorithm=[none], cost=[not available])
+                HiveJoin(condition=[=($0, $5)], joinType=[inner], algorithm=[none], cost=[not available])
+                  HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
+                    HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2), IS NOT NULL($7), IS NOT NULL($3))])
+                      HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
+                  HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[CAST(_UTF-16LE'orchid'):VARCHAR(2147483647) CHARACTER SET "UTF-16LE" COLLATE "ISO-8859-1$en_US$primary"], i_units=[$18], i_manager_id=[$20])
+                    HiveFilter(condition=[AND(=($17, _UTF-16LE'orchid'), IS NOT NULL($0))])
+                      HiveTableScan(table=[[default, item]], table:alias=[item])
+                HiveProject(c_customer_sk=[$0], c_current_addr_sk=[$1], c_first_name=[$2], c_last_name=[$3], c_birth_country=[$4], ca_address_sk=[$5], ca_state=[$6], ca_zip=[$7], ca_country=[$8], s_store_sk=[$9], s_store_name=[$10], s_market_id=[$11], s_state=[$12], s_zip=[$13])
+                  HiveJoin(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner], algorithm=[none], cost=[not available])
+                    HiveProject(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
+                      HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                        HiveTableScan(table=[[default, customer]], table:alias=[customer])
+                    HiveJoin(condition=[=($8, $2)], joinType=[inner], algorithm=[none], cost=[not available])
+                      HiveProject(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
+                        HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                          HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
+                      HiveProject(s_store_sk=[$0], s_store_name=[$5], s_market_id=[CAST(7):INTEGER], s_state=[$24], s_zip=[$25])
+                        HiveFilter(condition=[AND(=($10, 7), IS NOT NULL($0), IS NOT NULL($25))])
+                          HiveTableScan(table=[[default, store]], table:alias=[store])
     HiveProject(_o__c0=[*(0.05, /($0, $1))])
       HiveAggregate(group=[{}], agg#0=[sum($10)], agg#1=[count($10)])
-        HiveProject(c_first_name=[$0], c_last_name=[$1], s_store_name=[$2], s_state=[$3], i_current_price=[$4], i_size=[$5], i_color=[$6], i_units=[$7], i_manager_id=[$8], ca_state=[$9], $f10=[$10])
-          HiveAggregate(group=[{3, 4, 12, 14, 17, 18, 19, 20, 21, 22}], agg#0=[sum($10)])
-            HiveJoin(condition=[AND(=($5, UPPER($24)), =($15, $23))], joinType=[inner], algorithm=[none], cost=[not available])
-              HiveJoin(condition=[AND(=($9, $1), =($6, $0))], joinType=[inner], algorithm=[none], cost=[not available])
-                HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
-                  HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2))])
-                    HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
-                HiveJoin(condition=[=($4, $14)], joinType=[inner], algorithm=[none], cost=[not available])
-                  HiveJoin(condition=[=($5, $0)], joinType=[inner], algorithm=[none], cost=[not available])
-                    HiveProject(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($14))])
+        HiveProject(c_first_name=[$0], c_last_name=[$1], ca_state=[$2], s_store_name=[$3], s_state=[$4], i_current_price=[$5], i_size=[$6], i_color=[$7], i_units=[$8], i_manager_id=[$9], $f10=[$10])
+          HiveAggregate(group=[{7, 8, 11, 15, 17, 20, 21, 22, 23, 24}], agg#0=[sum($4)])
+            HiveJoin(condition=[AND(=($3, $26), =($0, $25))], joinType=[inner], algorithm=[none], cost=[not available])
+              HiveJoin(condition=[=($0, $19)], joinType=[inner], algorithm=[none], cost=[not available])
+                HiveJoin(condition=[AND(=($1, $5), =($2, $14))], joinType=[inner], algorithm=[none], cost=[not available])
+                  HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
+                    HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2), IS NOT NULL($7), IS NOT NULL($3))])
+                      HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
+                  HiveJoin(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner], algorithm=[none], cost=[not available])
+                    HiveProject(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
+                      HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
                         HiveTableScan(table=[[default, customer]], table:alias=[customer])
-                    HiveJoin(condition=[=($2, $5)], joinType=[inner], algorithm=[none], cost=[not available])
-                      HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
-                        HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2), IS NOT NULL($7), IS NOT NULL($3))])
-                          HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
+                    HiveJoin(condition=[=($8, $2)], joinType=[inner], algorithm=[none], cost=[not available])
+                      HiveProject(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
+                        HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                          HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
                       HiveProject(s_store_sk=[$0], s_store_name=[$5], s_market_id=[CAST(7):INTEGER], s_state=[$24], s_zip=[$25])
                         HiveFilter(condition=[AND(=($10, 7), IS NOT NULL($0), IS NOT NULL($25))])
                           HiveTableScan(table=[[default, store]], table:alias=[store])
-                  HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                    HiveFilter(condition=[IS NOT NULL($0)])
-                      HiveTableScan(table=[[default, item]], table:alias=[item])
-              HiveProject(ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                HiveFilter(condition=[AND(IS NOT NULL(UPPER($10)), IS NOT NULL($9))])
-                  HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
+                HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                  HiveFilter(condition=[IS NOT NULL($0)])
+                    HiveTableScan(table=[[default, item]], table:alias=[item])
+              HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
+                HiveFilter(condition=[AND(IS NOT NULL($9), IS NOT NULL($2))])
+                  HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query24.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query24.q.out
index 34cc51b..0801f34 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query24.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query24.q.out
@@ -1,4 +1,4 @@
-Warning: Shuffle Join MERGEJOIN[287][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 8' is a cross product
+Warning: Shuffle Join MERGEJOIN[298][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product
 PREHOOK: query: explain cbo
 with ssales as
 (select c_last_name
@@ -23,7 +23,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -79,7 +80,8 @@ where ss_ticket_number = sr_ticket_number
   and ss_customer_sk = c_customer_sk
   and ss_item_sk = i_item_sk
   and ss_store_sk = s_store_sk
-  and c_birth_country = upper(ca_country)
+  and c_current_addr_sk = ca_address_sk
+  and c_birth_country <> upper(ca_country)
   and s_zip = ca_zip
 and s_market_id=7
 group by c_last_name
@@ -115,54 +117,55 @@ CBO PLAN:
 HiveProject($f0=[$0], $f1=[$1], $f2=[$2], $f3=[$3])
   HiveJoin(condition=[>($3, $4)], joinType=[inner], algorithm=[none], cost=[not available])
     HiveProject(c_last_name=[$1], c_first_name=[$0], s_store_name=[$2], $f3=[$3])
-      HiveAggregate(group=[{1, 2, 7}], agg#0=[sum($9)])
-        HiveProject(ca_state=[$0], c_first_name=[$1], c_last_name=[$2], i_current_price=[$3], i_size=[$4], i_units=[$5], i_manager_id=[$6], s_store_name=[$7], s_state=[$8], $f9=[$9])
-          HiveAggregate(group=[{0, 6, 7, 15, 16, 17, 18, 20, 21}], agg#0=[sum($13)])
-            HiveJoin(condition=[AND(=($8, $2), =($22, $1))], joinType=[inner], algorithm=[none], cost=[not available])
-              HiveProject(ca_state=[$8], ca_zip=[$9], UPPER=[UPPER($10)])
-                HiveFilter(condition=[AND(IS NOT NULL(UPPER($10)), IS NOT NULL($9))])
-                  HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
-              HiveJoin(condition=[AND(=($9, $1), =($6, $0))], joinType=[inner], algorithm=[none], cost=[not available])
-                HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
-                  HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
-                HiveJoin(condition=[=($5, $0)], joinType=[inner], algorithm=[none], cost=[not available])
-                  HiveProject(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                    HiveFilter(condition=[IS NOT NULL($14)])
-                      HiveTableScan(table=[[default, customer]], table:alias=[customer])
-                  HiveJoin(condition=[=($2, $10)], joinType=[inner], algorithm=[none], cost=[not available])
-                    HiveJoin(condition=[=($0, $5)], joinType=[inner], algorithm=[none], cost=[not available])
-                      HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
-                        HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($3))])
-                          HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
-                      HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
-                        HiveFilter(condition=[=($17, _UTF-16LE'orchid')])
-                          HiveTableScan(table=[[default, item]], table:alias=[item])
-                    HiveProject(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                      HiveFilter(condition=[AND(=($10, 7), IS NOT NULL($25))])
-                        HiveTableScan(table=[[default, store]], table:alias=[store])
-    HiveProject(_o__c0=[*(0.05, /($0, $1))])
-      HiveAggregate(group=[{}], agg#0=[sum($10)], agg#1=[count($10)])
-        HiveProject(c_first_name=[$0], c_last_name=[$1], s_store_name=[$2], s_state=[$3], i_current_price=[$4], i_size=[$5], i_color=[$6], i_units=[$7], i_manager_id=[$8], ca_state=[$9], $f10=[$10])
-          HiveAggregate(group=[{3, 4, 12, 13, 16, 17, 18, 19, 20, 21}], agg#0=[sum($10)])
-            HiveJoin(condition=[AND(=($5, $23), =($14, $22))], joinType=[inner], algorithm=[none], cost=[not available])
-              HiveJoin(condition=[AND(=($9, $1), =($6, $0))], joinType=[inner], algorithm=[none], cost=[not available])
-                HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
-                  HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
-                HiveJoin(condition=[=($4, $13)], joinType=[inner], algorithm=[none], cost=[not available])
-                  HiveJoin(condition=[=($5, $0)], joinType=[inner], algorithm=[none], cost=[not available])
-                    HiveProject(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      HiveFilter(condition=[IS NOT NULL($14)])
+      HiveAggregate(group=[{4, 5, 7}], agg#0=[sum($9)])
+        HiveProject(i_current_price=[$0], i_size=[$1], i_units=[$2], i_manager_id=[$3], c_first_name=[$4], c_last_name=[$5], ca_state=[$6], s_store_name=[$7], s_state=[$8], $f9=[$9])
+          HiveAggregate(group=[{8, 9, 10, 11, 14, 15, 18, 22, 23}], agg#0=[sum($6)])
+            HiveJoin(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner], algorithm=[none], cost=[not available])
+              HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
+                HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
+              HiveJoin(condition=[AND(=($1, $10), =($2, $19))], joinType=[inner], algorithm=[none], cost=[not available])
+                HiveJoin(condition=[=($0, $5)], joinType=[inner], algorithm=[none], cost=[not available])
+                  HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
+                    HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($3))])
+                      HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
+                  HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
+                    HiveFilter(condition=[=($17, _UTF-16LE'orchid')])
+                      HiveTableScan(table=[[default, item]], table:alias=[item])
+                HiveProject(c_customer_sk=[$0], c_current_addr_sk=[$1], c_first_name=[$2], c_last_name=[$3], c_birth_country=[$4], ca_address_sk=[$5], ca_state=[$6], ca_zip=[$7], UPPER=[$8], s_store_sk=[$9], s_store_name=[$10], s_state=[$11], s_zip=[$12])
+                  HiveJoin(condition=[AND(=($1, $5), <>($4, $8))], joinType=[inner], algorithm=[none], cost=[not available])
+                    HiveProject(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
+                      HiveFilter(condition=[IS NOT NULL($4)])
                         HiveTableScan(table=[[default, customer]], table:alias=[customer])
-                    HiveJoin(condition=[=($2, $5)], joinType=[inner], algorithm=[none], cost=[not available])
-                      HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
-                        HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($3))])
-                          HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
+                    HiveJoin(condition=[=($7, $2)], joinType=[inner], algorithm=[none], cost=[not available])
+                      HiveProject(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], UPPER=[UPPER($10)])
+                        HiveFilter(condition=[IS NOT NULL($9)])
+                          HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
                       HiveProject(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
                         HiveFilter(condition=[AND(=($10, 7), IS NOT NULL($25))])
                           HiveTableScan(table=[[default, store]], table:alias=[store])
-                  HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                    HiveTableScan(table=[[default, item]], table:alias=[item])
-              HiveProject(ca_state=[$8], ca_zip=[$9], UPPER=[UPPER($10)])
-                HiveFilter(condition=[AND(IS NOT NULL(UPPER($10)), IS NOT NULL($9))])
-                  HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
+    HiveProject(_o__c0=[*(0.05, /($0, $1))])
+      HiveAggregate(group=[{}], agg#0=[sum($10)], agg#1=[count($10)])
+        HiveProject(c_first_name=[$0], c_last_name=[$1], ca_state=[$2], s_store_name=[$3], s_state=[$4], i_current_price=[$5], i_size=[$6], i_color=[$7], i_units=[$8], i_manager_id=[$9], $f10=[$10])
+          HiveAggregate(group=[{9, 10, 13, 17, 18, 21, 22, 23, 24, 25}], agg#0=[sum($6)])
+            HiveJoin(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner], algorithm=[none], cost=[not available])
+              HiveProject(sr_item_sk=[$2], sr_ticket_number=[$9])
+                HiveTableScan(table=[[default, store_returns]], table:alias=[store_returns])
+              HiveJoin(condition=[=($0, $18)], joinType=[inner], algorithm=[none], cost=[not available])
+                HiveJoin(condition=[AND(=($17, $12), =($2, $14))], joinType=[inner], algorithm=[none], cost=[not available])
+                  HiveJoin(condition=[=($1, $5)], joinType=[inner], algorithm=[none], cost=[not available])
+                    HiveProject(ss_item_sk=[$2], ss_customer_sk=[$3], ss_store_sk=[$7], ss_ticket_number=[$9], ss_sales_price=[$13])
+                      HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($3))])
+                        HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales])
+                    HiveJoin(condition=[AND(=($1, $5), <>($4, $8))], joinType=[inner], algorithm=[none], cost=[not available])
+                      HiveProject(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
+                        HiveFilter(condition=[IS NOT NULL($4)])
+                          HiveTableScan(table=[[default, customer]], table:alias=[customer])
+                      HiveProject(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], UPPER=[UPPER($10)])
+                        HiveFilter(condition=[IS NOT NULL($9)])
+                          HiveTableScan(table=[[default, customer_address]], table:alias=[customer_address])
+                  HiveProject(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
+                    HiveFilter(condition=[AND(=($10, 7), IS NOT NULL($25))])
+                      HiveTableScan(table=[[default, store]], table:alias=[store])
+                HiveProject(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                  HiveTableScan(table=[[default, item]], table:alias=[item])
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query6.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query6.q.out
index ef53060..cbf372a 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query6.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query6.q.out
@@ -1,4 +1,4 @@
-Warning: Map Join MAPJOIN[172][bigTable=?] in task 'Reducer 15' is a cross product
+Warning: Map Join MAPJOIN[170][bigTable=?] in task 'Reducer 15' is a cross product
 PREHOOK: query: explain cbo
 select  a.ca_state state, count(*) cnt
  from customer_address a


[2/6] hive git commit: HIVE-20788: Extended SJ reduction may backtrack columns incorrectly when creating filters (Jesus Camacho Rodriguez, reviewed by Deepak Jaiswal)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/3cbc13e9/ql/src/test/results/clientpositive/perf/tez/query23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query23.q.out b/ql/src/test/results/clientpositive/perf/tez/query23.q.out
index 61d1dd7..7784792 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query23.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query23.q.out
@@ -1,7 +1,7 @@
-Warning: Shuffle Join MERGEJOIN[589][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 29' is a cross product
-Warning: Shuffle Join MERGEJOIN[590][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 30' is a cross product
-Warning: Shuffle Join MERGEJOIN[592][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 33' is a cross product
-Warning: Shuffle Join MERGEJOIN[593][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 34' is a cross product
+Warning: Shuffle Join MERGEJOIN[593][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 29' is a cross product
+Warning: Shuffle Join MERGEJOIN[594][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 30' is a cross product
+Warning: Shuffle Join MERGEJOIN[596][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 33' is a cross product
+Warning: Shuffle Join MERGEJOIN[597][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 34' is a cross product
 PREHOOK: query: explain
 with frequent_ss_items as 
  (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt
@@ -166,37 +166,37 @@ Stage-0
     limit:100
     Stage-1
       Reducer 6 vectorized
-      File Output Operator [FS_695]
-        Limit [LIM_694] (rows=1 width=112)
+      File Output Operator [FS_699]
+        Limit [LIM_698] (rows=1 width=112)
           Number of rows:100
-          Group By Operator [GBY_693] (rows=1 width=112)
+          Group By Operator [GBY_697] (rows=1 width=112)
             Output:["_col0"],aggregations:["sum(VALUE._col0)"]
           <-Union 5 [CUSTOM_SIMPLE_EDGE]
             <-Reducer 12 [CONTAINS]
-              Reduce Output Operator [RS_604]
-                Group By Operator [GBY_603] (rows=1 width=112)
+              Reduce Output Operator [RS_608]
+                Group By Operator [GBY_607] (rows=1 width=112)
                   Output:["_col0"],aggregations:["sum(_col0)"]
-                  Select Operator [SEL_601] (rows=1 width=112)
+                  Select Operator [SEL_605] (rows=1 width=112)
                     Output:["_col0"]
-                    Merge Join Operator [MERGEJOIN_600] (rows=1 width=116)
+                    Merge Join Operator [MERGEJOIN_604] (rows=1 width=116)
                       Conds:RS_248._col2=RS_249._col0(Inner),Output:["_col3","_col4"]
                     <-Reducer 11 [SIMPLE_EDGE]
                       PARTITION_ONLY_SHUFFLE [RS_248]
                         PartitionCols:_col2
-                        Merge Join Operator [MERGEJOIN_588] (rows=155 width=0)
-                          Conds:RS_245._col1=RS_638._col0(Inner),Output:["_col2","_col3","_col4"]
+                        Merge Join Operator [MERGEJOIN_592] (rows=155 width=0)
+                          Conds:RS_245._col1=RS_642._col0(Inner),Output:["_col2","_col3","_col4"]
                         <-Reducer 18 [SIMPLE_EDGE] vectorized
-                          SHUFFLE [RS_638]
+                          SHUFFLE [RS_642]
                             PartitionCols:_col0
-                            Group By Operator [GBY_635] (rows=2235 width=4)
+                            Group By Operator [GBY_639] (rows=2235 width=4)
                               Output:["_col0"],keys:_col1
-                              Select Operator [SEL_634] (rows=6548799 width=12)
+                              Select Operator [SEL_638] (rows=6548799 width=12)
                                 Output:["_col1"]
-                                Filter Operator [FIL_633] (rows=6548799 width=12)
+                                Filter Operator [FIL_637] (rows=6548799 width=12)
                                   predicate:(_col3 > 4L)
-                                  Select Operator [SEL_632] (rows=19646398 width=12)
+                                  Select Operator [SEL_636] (rows=19646398 width=12)
                                     Output:["_col0","_col3"]
-                                    Group By Operator [GBY_631] (rows=19646398 width=290)
+                                    Group By Operator [GBY_635] (rows=19646398 width=290)
                                       Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
                                     <-Reducer 17 [SIMPLE_EDGE]
                                       SHUFFLE [RS_24]
@@ -205,96 +205,96 @@ Stage-0
                                           Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2
                                           Select Operator [SEL_21] (rows=19646398 width=282)
                                             Output:["_col0","_col1","_col2"]
-                                            Merge Join Operator [MERGEJOIN_573] (rows=19646398 width=282)
-                                              Conds:RS_18._col1=RS_630._col0(Inner),Output:["_col3","_col5","_col6"]
+                                            Merge Join Operator [MERGEJOIN_577] (rows=19646398 width=282)
+                                              Conds:RS_18._col1=RS_634._col0(Inner),Output:["_col3","_col5","_col6"]
                                             <-Map 23 [SIMPLE_EDGE] vectorized
-                                              SHUFFLE [RS_630]
+                                              SHUFFLE [RS_634]
                                                 PartitionCols:_col0
-                                                Select Operator [SEL_629] (rows=462000 width=188)
+                                                Select Operator [SEL_633] (rows=462000 width=188)
                                                   Output:["_col0","_col1"]
-                                                  Filter Operator [FIL_628] (rows=462000 width=188)
+                                                  Filter Operator [FIL_632] (rows=462000 width=188)
                                                     predicate:i_item_sk is not null
                                                     TableScan [TS_12] (rows=462000 width=188)
                                                       default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_desc"]
                                             <-Reducer 16 [SIMPLE_EDGE]
                                               SHUFFLE [RS_18]
                                                 PartitionCols:_col1
-                                                Merge Join Operator [MERGEJOIN_572] (rows=19646398 width=98)
-                                                  Conds:RS_627._col0=RS_619._col0(Inner),Output:["_col1","_col3"]
+                                                Merge Join Operator [MERGEJOIN_576] (rows=19646398 width=98)
+                                                  Conds:RS_631._col0=RS_623._col0(Inner),Output:["_col1","_col3"]
                                                 <-Map 21 [SIMPLE_EDGE] vectorized
-                                                  PARTITION_ONLY_SHUFFLE [RS_619]
+                                                  PARTITION_ONLY_SHUFFLE [RS_623]
                                                     PartitionCols:_col0
-                                                    Select Operator [SEL_618] (rows=2609 width=102)
+                                                    Select Operator [SEL_622] (rows=2609 width=102)
                                                       Output:["_col0","_col1"]
-                                                      Filter Operator [FIL_617] (rows=2609 width=102)
+                                                      Filter Operator [FIL_621] (rows=2609 width=102)
                                                         predicate:((d_year) IN (1999, 2000, 2001, 2002) and d_date_sk is not null)
                                                         TableScan [TS_9] (rows=73049 width=102)
                                                           default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_date","d_year"]
                                                 <-Map 15 [SIMPLE_EDGE] vectorized
-                                                  SHUFFLE [RS_627]
+                                                  SHUFFLE [RS_631]
                                                     PartitionCols:_col0
-                                                    Select Operator [SEL_626] (rows=550076554 width=7)
+                                                    Select Operator [SEL_630] (rows=550076554 width=7)
                                                       Output:["_col0","_col1"]
-                                                      Filter Operator [FIL_625] (rows=550076554 width=7)
+                                                      Filter Operator [FIL_629] (rows=550076554 width=7)
                                                         predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null)
                                                         TableScan [TS_6] (rows=575995635 width=7)
                                                           default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk"]
                                                         <-Reducer 22 [BROADCAST_EDGE] vectorized
-                                                          BROADCAST [RS_624]
-                                                            Group By Operator [GBY_623] (rows=1 width=12)
+                                                          BROADCAST [RS_628]
+                                                            Group By Operator [GBY_627] (rows=1 width=12)
                                                               Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                             <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                              PARTITION_ONLY_SHUFFLE [RS_622]
-                                                                Group By Operator [GBY_621] (rows=1 width=12)
+                                                              PARTITION_ONLY_SHUFFLE [RS_626]
+                                                                Group By Operator [GBY_625] (rows=1 width=12)
                                                                   Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                  Select Operator [SEL_620] (rows=2609 width=4)
+                                                                  Select Operator [SEL_624] (rows=2609 width=4)
                                                                     Output:["_col0"]
-                                                                     Please refer to the previous Select Operator [SEL_618]
+                                                                     Please refer to the previous Select Operator [SEL_622]
                         <-Reducer 10 [SIMPLE_EDGE]
                           SHUFFLE [RS_245]
                             PartitionCols:_col1
-                            Merge Join Operator [MERGEJOIN_579] (rows=3941102 width=122)
-                              Conds:RS_702._col0=RS_609._col0(Inner),Output:["_col1","_col2","_col3","_col4"]
+                            Merge Join Operator [MERGEJOIN_583] (rows=3941102 width=122)
+                              Conds:RS_706._col0=RS_613._col0(Inner),Output:["_col1","_col2","_col3","_col4"]
                             <-Map 8 [SIMPLE_EDGE] vectorized
-                              PARTITION_ONLY_SHUFFLE [RS_609]
+                              PARTITION_ONLY_SHUFFLE [RS_613]
                                 PartitionCols:_col0
-                                Select Operator [SEL_606] (rows=50 width=12)
+                                Select Operator [SEL_610] (rows=50 width=12)
                                   Output:["_col0"]
-                                  Filter Operator [FIL_605] (rows=50 width=12)
+                                  Filter Operator [FIL_609] (rows=50 width=12)
                                     predicate:((d_moy = 1) and (d_year = 1999) and d_date_sk is not null)
                                     TableScan [TS_3] (rows=73049 width=12)
                                       default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year","d_moy"]
                             <-Map 44 [SIMPLE_EDGE] vectorized
-                              SHUFFLE [RS_702]
+                              SHUFFLE [RS_706]
                                 PartitionCols:_col0
-                                Select Operator [SEL_701] (rows=143930993 width=127)
+                                Select Operator [SEL_705] (rows=143930993 width=127)
                                   Output:["_col0","_col1","_col2","_col3","_col4"]
-                                  Filter Operator [FIL_700] (rows=143930993 width=127)
+                                  Filter Operator [FIL_704] (rows=143930993 width=127)
                                     predicate:((ws_item_sk BETWEEN DynamicValue(RS_246_item_i_item_sk_min) AND DynamicValue(RS_246_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_246_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_243_date_dim_d_date_sk_min) AND DynamicValue(RS_243_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_243_date_dim_d_date_sk_bloom_filter))) and ws_bill_customer_sk is not null and ws_item_sk is not null and ws_sold_date_sk is not null)
                                     TableScan [TS_126] (rows=144002668 width=127)
                                       default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk","ws_quantity","ws_list_price"]
                                     <-Reducer 14 [BROADCAST_EDGE] vectorized
-                                      BROADCAST [RS_697]
-                                        Group By Operator [GBY_696] (rows=1 width=12)
+                                      BROADCAST [RS_701]
+                                        Group By Operator [GBY_700] (rows=1 width=12)
                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                         <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized
-                                          PARTITION_ONLY_SHUFFLE [RS_614]
-                                            Group By Operator [GBY_612] (rows=1 width=12)
+                                          PARTITION_ONLY_SHUFFLE [RS_618]
+                                            Group By Operator [GBY_616] (rows=1 width=12)
                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                              Select Operator [SEL_610] (rows=50 width=4)
+                                              Select Operator [SEL_614] (rows=50 width=4)
                                                 Output:["_col0"]
-                                                 Please refer to the previous Select Operator [SEL_606]
+                                                 Please refer to the previous Select Operator [SEL_610]
                                     <-Reducer 20 [BROADCAST_EDGE] vectorized
-                                      BROADCAST [RS_699]
-                                        Group By Operator [GBY_698] (rows=1 width=12)
+                                      BROADCAST [RS_703]
+                                        Group By Operator [GBY_702] (rows=1 width=12)
                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                         <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_643]
-                                            Group By Operator [GBY_641] (rows=1 width=12)
+                                          SHUFFLE [RS_647]
+                                            Group By Operator [GBY_645] (rows=1 width=12)
                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                              Select Operator [SEL_639] (rows=2235 width=4)
+                                              Select Operator [SEL_643] (rows=2235 width=4)
                                                 Output:["_col0"]
-                                                 Please refer to the previous Group By Operator [GBY_635]
+                                                 Please refer to the previous Group By Operator [GBY_639]
                     <-Reducer 34 [SIMPLE_EDGE]
                       SHUFFLE [RS_249]
                         PartitionCols:_col0
@@ -302,29 +302,29 @@ Stage-0
                           Output:["_col0"]
                           Filter Operator [FIL_240] (rows=471875 width=228)
                             predicate:(_col3 > (0.95 * _col1))
-                            Merge Join Operator [MERGEJOIN_593] (rows=1415625 width=228)
+                            Merge Join Operator [MERGEJOIN_597] (rows=1415625 width=228)
                               Conds:(Inner),Output:["_col1","_col2","_col3"]
                             <-Reducer 33 [CUSTOM_SIMPLE_EDGE]
                               PARTITION_ONLY_SHUFFLE [RS_237]
-                                Merge Join Operator [MERGEJOIN_592] (rows=1 width=112)
+                                Merge Join Operator [MERGEJOIN_596] (rows=1 width=112)
                                   Conds:(Inner),Output:["_col1"]
                                 <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized
-                                  PARTITION_ONLY_SHUFFLE [RS_708]
-                                    Select Operator [SEL_707] (rows=1 width=8)
-                                      Filter Operator [FIL_706] (rows=1 width=8)
+                                  PARTITION_ONLY_SHUFFLE [RS_712]
+                                    Select Operator [SEL_711] (rows=1 width=8)
+                                      Filter Operator [FIL_710] (rows=1 width=8)
                                         predicate:(sq_count_check(_col0) <= 1)
-                                        Group By Operator [GBY_705] (rows=1 width=8)
+                                        Group By Operator [GBY_709] (rows=1 width=8)
                                           Output:["_col0"],aggregations:["count()"]
-                                          Select Operator [SEL_704] (rows=1 width=8)
-                                            Group By Operator [GBY_703] (rows=1 width=8)
+                                          Select Operator [SEL_708] (rows=1 width=8)
+                                            Group By Operator [GBY_707] (rows=1 width=8)
                                               Output:["_col0"],aggregations:["count(VALUE._col0)"]
                                             <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized
-                                              PARTITION_ONLY_SHUFFLE [RS_676]
-                                                Group By Operator [GBY_672] (rows=1 width=8)
+                                              PARTITION_ONLY_SHUFFLE [RS_680]
+                                                Group By Operator [GBY_676] (rows=1 width=8)
                                                   Output:["_col0"],aggregations:["count(_col0)"]
-                                                  Select Operator [SEL_668] (rows=11859 width=116)
+                                                  Select Operator [SEL_672] (rows=11859 width=116)
                                                     Output:["_col0"]
-                                                    Group By Operator [GBY_665] (rows=11859 width=116)
+                                                    Group By Operator [GBY_669] (rows=11859 width=116)
                                                       Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                                                     <-Reducer 26 [SIMPLE_EDGE]
                                                       SHUFFLE [RS_51]
@@ -333,65 +333,65 @@ Stage-0
                                                           Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
                                                           Select Operator [SEL_48] (rows=18762463 width=4)
                                                             Output:["_col0","_col1"]
-                                                            Merge Join Operator [MERGEJOIN_575] (rows=18762463 width=4)
-                                                              Conds:RS_45._col1=RS_663._col0(Inner),Output:["_col2","_col3","_col6"]
+                                                            Merge Join Operator [MERGEJOIN_579] (rows=18762463 width=4)
+                                                              Conds:RS_45._col1=RS_667._col0(Inner),Output:["_col2","_col3","_col6"]
                                                             <-Map 41 [SIMPLE_EDGE] vectorized
-                                                              SHUFFLE [RS_663]
+                                                              SHUFFLE [RS_667]
                                                                 PartitionCols:_col0
-                                                                Select Operator [SEL_661] (rows=80000000 width=4)
+                                                                Select Operator [SEL_665] (rows=80000000 width=4)
                                                                   Output:["_col0"]
-                                                                  Filter Operator [FIL_660] (rows=80000000 width=4)
+                                                                  Filter Operator [FIL_664] (rows=80000000 width=4)
                                                                     predicate:c_customer_sk is not null
                                                                     TableScan [TS_96] (rows=80000000 width=4)
                                                                       default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk"]
                                                             <-Reducer 25 [SIMPLE_EDGE]
                                                               SHUFFLE [RS_45]
                                                                 PartitionCols:_col1
-                                                                Merge Join Operator [MERGEJOIN_574] (rows=18762463 width=0)
-                                                                  Conds:RS_659._col0=RS_651._col0(Inner),Output:["_col1","_col2","_col3"]
+                                                                Merge Join Operator [MERGEJOIN_578] (rows=18762463 width=0)
+                                                                  Conds:RS_663._col0=RS_655._col0(Inner),Output:["_col1","_col2","_col3"]
                                                                 <-Map 36 [SIMPLE_EDGE] vectorized
-                                                                  PARTITION_ONLY_SHUFFLE [RS_651]
+                                                                  PARTITION_ONLY_SHUFFLE [RS_655]
                                                                     PartitionCols:_col0
-                                                                    Select Operator [SEL_650] (rows=2609 width=8)
+                                                                    Select Operator [SEL_654] (rows=2609 width=8)
                                                                       Output:["_col0"]
-                                                                      Filter Operator [FIL_649] (rows=2609 width=8)
+                                                                      Filter Operator [FIL_653] (rows=2609 width=8)
                                                                         predicate:((d_year) IN (1999, 2000, 2001, 2002) and d_date_sk is not null)
                                                                         TableScan [TS_36] (rows=73049 width=8)
                                                                           default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"]
                                                                 <-Map 24 [SIMPLE_EDGE] vectorized
-                                                                  SHUFFLE [RS_659]
+                                                                  SHUFFLE [RS_663]
                                                                     PartitionCols:_col0
-                                                                    Select Operator [SEL_658] (rows=525327388 width=118)
+                                                                    Select Operator [SEL_662] (rows=525327388 width=118)
                                                                       Output:["_col0","_col1","_col2","_col3"]
-                                                                      Filter Operator [FIL_657] (rows=525327388 width=118)
+                                                                      Filter Operator [FIL_661] (rows=525327388 width=118)
                                                                         predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_43_date_dim_d_date_sk_min) AND DynamicValue(RS_43_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_43_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null)
                                                                         TableScan [TS_33] (rows=575995635 width=118)
                                                                           default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_customer_sk","ss_quantity","ss_sales_price"]
                                                                         <-Reducer 37 [BROADCAST_EDGE] vectorized
-                                                                          BROADCAST [RS_656]
-                                                                            Group By Operator [GBY_655] (rows=1 width=12)
+                                                                          BROADCAST [RS_660]
+                                                                            Group By Operator [GBY_659] (rows=1 width=12)
                                                                               Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                                             <-Map 36 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                              PARTITION_ONLY_SHUFFLE [RS_654]
-                                                                                Group By Operator [GBY_653] (rows=1 width=12)
+                                                                              PARTITION_ONLY_SHUFFLE [RS_658]
+                                                                                Group By Operator [GBY_657] (rows=1 width=12)
                                                                                   Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                                  Select Operator [SEL_652] (rows=2609 width=4)
+                                                                                  Select Operator [SEL_656] (rows=2609 width=4)
                                                                                     Output:["_col0"]
-                                                                                     Please refer to the previous Select Operator [SEL_650]
+                                                                                     Please refer to the previous Select Operator [SEL_654]
                                 <-Reducer 35 [CUSTOM_SIMPLE_EDGE] vectorized
-                                  PARTITION_ONLY_SHUFFLE [RS_710]
-                                    Group By Operator [GBY_709] (rows=1 width=112)
+                                  PARTITION_ONLY_SHUFFLE [RS_714]
+                                    Group By Operator [GBY_713] (rows=1 width=112)
                                       Output:["_col0"],aggregations:["max(VALUE._col0)"]
                                     <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized
-                                      PARTITION_ONLY_SHUFFLE [RS_677]
-                                        Group By Operator [GBY_673] (rows=1 width=112)
+                                      PARTITION_ONLY_SHUFFLE [RS_681]
+                                        Group By Operator [GBY_677] (rows=1 width=112)
                                           Output:["_col0"],aggregations:["max(_col1)"]
-                                          Select Operator [SEL_669] (rows=11859 width=116)
+                                          Select Operator [SEL_673] (rows=11859 width=116)
                                             Output:["_col1"]
-                                             Please refer to the previous Group By Operator [GBY_665]
+                                             Please refer to the previous Group By Operator [GBY_669]
                             <-Reducer 43 [CUSTOM_SIMPLE_EDGE] vectorized
-                              PARTITION_ONLY_SHUFFLE [RS_717]
-                                Group By Operator [GBY_716] (rows=1415625 width=116)
+                              PARTITION_ONLY_SHUFFLE [RS_721]
+                                Group By Operator [GBY_720] (rows=1415625 width=116)
                                   Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                                 <-Reducer 42 [SIMPLE_EDGE]
                                   SHUFFLE [RS_231]
@@ -400,89 +400,89 @@ Stage-0
                                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
                                       Select Operator [SEL_228] (rows=550080312 width=114)
                                         Output:["_col0","_col1"]
-                                        Merge Join Operator [MERGEJOIN_586] (rows=550080312 width=114)
-                                          Conds:RS_715._col0=RS_664._col0(Inner),Output:["_col1","_col2","_col3"]
+                                        Merge Join Operator [MERGEJOIN_590] (rows=550080312 width=114)
+                                          Conds:RS_719._col0=RS_668._col0(Inner),Output:["_col1","_col2","_col3"]
                                         <-Map 41 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_664]
+                                          SHUFFLE [RS_668]
                                             PartitionCols:_col0
-                                             Please refer to the previous Select Operator [SEL_661]
+                                             Please refer to the previous Select Operator [SEL_665]
                                         <-Map 45 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_715]
+                                          SHUFFLE [RS_719]
                                             PartitionCols:_col0
-                                            Select Operator [SEL_714] (rows=550080312 width=114)
+                                            Select Operator [SEL_718] (rows=550080312 width=114)
                                               Output:["_col0","_col1","_col2"]
-                                              Filter Operator [FIL_713] (rows=550080312 width=114)
+                                              Filter Operator [FIL_717] (rows=550080312 width=114)
                                                 predicate:((ss_customer_sk BETWEEN DynamicValue(RS_248_web_sales_ws_bill_customer_sk_min) AND DynamicValue(RS_248_web_sales_ws_bill_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_248_web_sales_ws_bill_customer_sk_bloom_filter))) and ss_customer_sk is not null)
                                                 TableScan [TS_219] (rows=575995635 width=114)
                                                   default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_customer_sk","ss_quantity","ss_sales_price"]
                                                 <-Reducer 13 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_712]
-                                                    Group By Operator [GBY_711] (rows=1 width=12)
+                                                  BROADCAST [RS_716]
+                                                    Group By Operator [GBY_715] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Reducer 11 [CUSTOM_SIMPLE_EDGE]
-                                                      PARTITION_ONLY_SHUFFLE [RS_562]
-                                                        Group By Operator [GBY_561] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_570]
+                                                        Group By Operator [GBY_569] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_560] (rows=155 width=0)
+                                                          Select Operator [SEL_568] (rows=155 width=0)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_588]
+                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_592]
             <-Reducer 4 [CONTAINS]
-              Reduce Output Operator [RS_599]
-                Group By Operator [GBY_598] (rows=1 width=112)
+              Reduce Output Operator [RS_603]
+                Group By Operator [GBY_602] (rows=1 width=112)
                   Output:["_col0"],aggregations:["sum(_col0)"]
-                  Select Operator [SEL_596] (rows=1 width=112)
+                  Select Operator [SEL_600] (rows=1 width=112)
                     Output:["_col0"]
-                    Merge Join Operator [MERGEJOIN_595] (rows=1 width=116)
+                    Merge Join Operator [MERGEJOIN_599] (rows=1 width=116)
                       Conds:RS_122._col1=RS_123._col0(Inner),Output:["_col3","_col4"]
                     <-Reducer 3 [SIMPLE_EDGE]
                       PARTITION_ONLY_SHUFFLE [RS_122]
                         PartitionCols:_col1
-                        Merge Join Operator [MERGEJOIN_587] (rows=304 width=0)
-                          Conds:RS_119._col2=RS_636._col0(Inner),Output:["_col1","_col3","_col4"]
+                        Merge Join Operator [MERGEJOIN_591] (rows=304 width=0)
+                          Conds:RS_119._col2=RS_640._col0(Inner),Output:["_col1","_col3","_col4"]
                         <-Reducer 18 [SIMPLE_EDGE] vectorized
-                          SHUFFLE [RS_636]
+                          SHUFFLE [RS_640]
                             PartitionCols:_col0
-                             Please refer to the previous Group By Operator [GBY_635]
+                             Please refer to the previous Group By Operator [GBY_639]
                         <-Reducer 2 [SIMPLE_EDGE]
                           SHUFFLE [RS_119]
                             PartitionCols:_col2
-                            Merge Join Operator [MERGEJOIN_571] (rows=7751875 width=101)
-                              Conds:RS_648._col0=RS_607._col0(Inner),Output:["_col1","_col2","_col3","_col4"]
+                            Merge Join Operator [MERGEJOIN_575] (rows=7751875 width=101)
+                              Conds:RS_652._col0=RS_611._col0(Inner),Output:["_col1","_col2","_col3","_col4"]
                             <-Map 8 [SIMPLE_EDGE] vectorized
-                              PARTITION_ONLY_SHUFFLE [RS_607]
+                              PARTITION_ONLY_SHUFFLE [RS_611]
                                 PartitionCols:_col0
-                                 Please refer to the previous Select Operator [SEL_606]
+                                 Please refer to the previous Select Operator [SEL_610]
                             <-Map 1 [SIMPLE_EDGE] vectorized
-                              SHUFFLE [RS_648]
+                              SHUFFLE [RS_652]
                                 PartitionCols:_col0
-                                Select Operator [SEL_647] (rows=285117831 width=127)
+                                Select Operator [SEL_651] (rows=285117831 width=127)
                                   Output:["_col0","_col1","_col2","_col3","_col4"]
-                                  Filter Operator [FIL_646] (rows=285117831 width=127)
+                                  Filter Operator [FIL_650] (rows=285117831 width=127)
                                     predicate:((cs_item_sk BETWEEN DynamicValue(RS_120_item_i_item_sk_min) AND DynamicValue(RS_120_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_120_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_117_date_dim_d_date_sk_min) AND DynamicValue(RS_117_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_117_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null)
                                     TableScan [TS_0] (rows=287989836 width=127)
                                       default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk","cs_quantity","cs_list_price"]
                                     <-Reducer 19 [BROADCAST_EDGE] vectorized
-                                      BROADCAST [RS_645]
-                                        Group By Operator [GBY_644] (rows=1 width=12)
+                                      BROADCAST [RS_649]
+                                        Group By Operator [GBY_648] (rows=1 width=12)
                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                         <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_642]
-                                            Group By Operator [GBY_640] (rows=1 width=12)
+                                          SHUFFLE [RS_646]
+                                            Group By Operator [GBY_644] (rows=1 width=12)
                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                              Select Operator [SEL_637] (rows=2235 width=4)
+                                              Select Operator [SEL_641] (rows=2235 width=4)
                                                 Output:["_col0"]
-                                                 Please refer to the previous Group By Operator [GBY_635]
+                                                 Please refer to the previous Group By Operator [GBY_639]
                                     <-Reducer 9 [BROADCAST_EDGE] vectorized
-                                      BROADCAST [RS_616]
-                                        Group By Operator [GBY_615] (rows=1 width=12)
+                                      BROADCAST [RS_620]
+                                        Group By Operator [GBY_619] (rows=1 width=12)
                                           Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                         <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized
-                                          PARTITION_ONLY_SHUFFLE [RS_613]
-                                            Group By Operator [GBY_611] (rows=1 width=12)
+                                          PARTITION_ONLY_SHUFFLE [RS_617]
+                                            Group By Operator [GBY_615] (rows=1 width=12)
                                               Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                              Select Operator [SEL_608] (rows=50 width=4)
+                                              Select Operator [SEL_612] (rows=50 width=4)
                                                 Output:["_col0"]
-                                                 Please refer to the previous Select Operator [SEL_606]
+                                                 Please refer to the previous Select Operator [SEL_610]
                     <-Reducer 30 [SIMPLE_EDGE]
                       SHUFFLE [RS_123]
                         PartitionCols:_col0
@@ -490,43 +490,43 @@ Stage-0
                           Output:["_col0"]
                           Filter Operator [FIL_114] (rows=471875 width=228)
                             predicate:(_col3 > (0.95 * _col1))
-                            Merge Join Operator [MERGEJOIN_590] (rows=1415625 width=228)
+                            Merge Join Operator [MERGEJOIN_594] (rows=1415625 width=228)
                               Conds:(Inner),Output:["_col1","_col2","_col3"]
                             <-Reducer 29 [CUSTOM_SIMPLE_EDGE]
                               PARTITION_ONLY_SHUFFLE [RS_111]
-                                Merge Join Operator [MERGEJOIN_589] (rows=1 width=112)
+                                Merge Join Operator [MERGEJOIN_593] (rows=1 width=112)
                                   Conds:(Inner),Output:["_col1"]
                                 <-Reducer 28 [CUSTOM_SIMPLE_EDGE] vectorized
-                                  PARTITION_ONLY_SHUFFLE [RS_683]
-                                    Select Operator [SEL_682] (rows=1 width=8)
-                                      Filter Operator [FIL_681] (rows=1 width=8)
+                                  PARTITION_ONLY_SHUFFLE [RS_687]
+                                    Select Operator [SEL_686] (rows=1 width=8)
+                                      Filter Operator [FIL_685] (rows=1 width=8)
                                         predicate:(sq_count_check(_col0) <= 1)
-                                        Group By Operator [GBY_680] (rows=1 width=8)
+                                        Group By Operator [GBY_684] (rows=1 width=8)
                                           Output:["_col0"],aggregations:["count()"]
-                                          Select Operator [SEL_679] (rows=1 width=8)
-                                            Group By Operator [GBY_678] (rows=1 width=8)
+                                          Select Operator [SEL_683] (rows=1 width=8)
+                                            Group By Operator [GBY_682] (rows=1 width=8)
                                               Output:["_col0"],aggregations:["count(VALUE._col0)"]
                                             <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized
-                                              PARTITION_ONLY_SHUFFLE [RS_674]
-                                                Group By Operator [GBY_670] (rows=1 width=8)
+                                              PARTITION_ONLY_SHUFFLE [RS_678]
+                                                Group By Operator [GBY_674] (rows=1 width=8)
                                                   Output:["_col0"],aggregations:["count(_col0)"]
-                                                  Select Operator [SEL_666] (rows=11859 width=116)
+                                                  Select Operator [SEL_670] (rows=11859 width=116)
                                                     Output:["_col0"]
-                                                     Please refer to the previous Group By Operator [GBY_665]
+                                                     Please refer to the previous Group By Operator [GBY_669]
                                 <-Reducer 31 [CUSTOM_SIMPLE_EDGE] vectorized
-                                  PARTITION_ONLY_SHUFFLE [RS_685]
-                                    Group By Operator [GBY_684] (rows=1 width=112)
+                                  PARTITION_ONLY_SHUFFLE [RS_689]
+                                    Group By Operator [GBY_688] (rows=1 width=112)
                                       Output:["_col0"],aggregations:["max(VALUE._col0)"]
                                     <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized
-                                      PARTITION_ONLY_SHUFFLE [RS_675]
-                                        Group By Operator [GBY_671] (rows=1 width=112)
+                                      PARTITION_ONLY_SHUFFLE [RS_679]
+                                        Group By Operator [GBY_675] (rows=1 width=112)
                                           Output:["_col0"],aggregations:["max(_col1)"]
-                                          Select Operator [SEL_667] (rows=11859 width=116)
+                                          Select Operator [SEL_671] (rows=11859 width=116)
                                             Output:["_col1"]
-                                             Please refer to the previous Group By Operator [GBY_665]
+                                             Please refer to the previous Group By Operator [GBY_669]
                             <-Reducer 40 [CUSTOM_SIMPLE_EDGE] vectorized
-                              PARTITION_ONLY_SHUFFLE [RS_692]
-                                Group By Operator [GBY_691] (rows=1415625 width=116)
+                              PARTITION_ONLY_SHUFFLE [RS_696]
+                                Group By Operator [GBY_695] (rows=1415625 width=116)
                                   Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
                                 <-Reducer 39 [SIMPLE_EDGE]
                                   SHUFFLE [RS_105]
@@ -535,30 +535,30 @@ Stage-0
                                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
                                       Select Operator [SEL_102] (rows=550080312 width=114)
                                         Output:["_col0","_col1"]
-                                        Merge Join Operator [MERGEJOIN_578] (rows=550080312 width=114)
-                                          Conds:RS_690._col0=RS_662._col0(Inner),Output:["_col1","_col2","_col3"]
+                                        Merge Join Operator [MERGEJOIN_582] (rows=550080312 width=114)
+                                          Conds:RS_694._col0=RS_666._col0(Inner),Output:["_col1","_col2","_col3"]
                                         <-Map 41 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_662]
+                                          SHUFFLE [RS_666]
                                             PartitionCols:_col0
-                                             Please refer to the previous Select Operator [SEL_661]
+                                             Please refer to the previous Select Operator [SEL_665]
                                         <-Map 38 [SIMPLE_EDGE] vectorized
-                                          SHUFFLE [RS_690]
+                                          SHUFFLE [RS_694]
                                             PartitionCols:_col0
-                                            Select Operator [SEL_689] (rows=550080312 width=114)
+                                            Select Operator [SEL_693] (rows=550080312 width=114)
                                               Output:["_col0","_col1","_col2"]
-                                              Filter Operator [FIL_688] (rows=550080312 width=114)
+                                              Filter Operator [FIL_692] (rows=550080312 width=114)
                                                 predicate:((ss_customer_sk BETWEEN DynamicValue(RS_122_catalog_sales_cs_bill_customer_sk_min) AND DynamicValue(RS_122_catalog_sales_cs_bill_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_122_catalog_sales_cs_bill_customer_sk_bloom_filter))) and ss_customer_sk is not null)
                                                 TableScan [TS_93] (rows=575995635 width=114)
                                                   default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_customer_sk","ss_quantity","ss_sales_price"]
                                                 <-Reducer 7 [BROADCAST_EDGE] vectorized
-                                                  BROADCAST [RS_687]
-                                                    Group By Operator [GBY_686] (rows=1 width=12)
+                                                  BROADCAST [RS_691]
+                                                    Group By Operator [GBY_690] (rows=1 width=12)
                                                       Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
                                                     <-Reducer 3 [CUSTOM_SIMPLE_EDGE]
-                                                      PARTITION_ONLY_SHUFFLE [RS_458]
-                                                        Group By Operator [GBY_457] (rows=1 width=12)
+                                                      PARTITION_ONLY_SHUFFLE [RS_464]
+                                                        Group By Operator [GBY_463] (rows=1 width=12)
                                                           Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                          Select Operator [SEL_456] (rows=304 width=0)
+                                                          Select Operator [SEL_462] (rows=304 width=0)
                                                             Output:["_col0"]
-                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_587]
+                                                             Please refer to the previous Merge Join Operator [MERGEJOIN_591]