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/01/05 02:44:43 UTC

[3/8] hive git commit: HIVE-18361: Extend shared work optimizer to reuse computation beyond work boundaries (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/96a409e1/ql/src/test/results/clientpositive/perf/tez/query58.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query58.q.out b/ql/src/test/results/clientpositive/perf/tez/query58.q.out
index d5ef23b..769af24 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query58.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query58.q.out
@@ -1,6 +1,4 @@
-Warning: Shuffle Join MERGEJOIN[265][tables = [$hdt$_4, $hdt$_5]] in Stage 'Reducer 20' is a cross product
-Warning: Shuffle Join MERGEJOIN[269][tables = [$hdt$_5, $hdt$_6]] in Stage 'Reducer 24' is a cross product
-Warning: Shuffle Join MERGEJOIN[273][tables = [$hdt$_6, $hdt$_7]] in Stage 'Reducer 28' is a cross product
+Warning: Shuffle Join MERGEJOIN[265][tables = [$hdt$_4, $hdt$_5]] in Stage 'Reducer 18' is a cross product
 PREHOOK: query: explain
 with ss_items as
  (select i_item_id item_id
@@ -133,31 +131,21 @@ Plan optimized by CBO.
 
 Vertex dependency in root stage
 Reducer 10 <- Reducer 9 (SIMPLE_EDGE)
-Reducer 11 <- Map 33 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
-Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE)
+Reducer 11 <- Map 23 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE)
 Reducer 13 <- Reducer 12 (SIMPLE_EDGE)
-Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 22 (ONE_TO_ONE_EDGE)
-Reducer 16 <- Map 14 (SIMPLE_EDGE), Reducer 26 (ONE_TO_ONE_EDGE)
-Reducer 17 <- Map 14 (SIMPLE_EDGE), Reducer 30 (ONE_TO_ONE_EDGE)
-Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE)
+Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 20 (ONE_TO_ONE_EDGE)
+Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE)
+Reducer 18 <- Map 21 (CUSTOM_SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE)
+Reducer 19 <- Map 21 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
 Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
-Reducer 20 <- Map 31 (CUSTOM_SIMPLE_EDGE), Reducer 19 (CUSTOM_SIMPLE_EDGE)
-Reducer 21 <- Map 31 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE)
-Reducer 22 <- Reducer 21 (SIMPLE_EDGE)
-Reducer 23 <- Map 18 (CUSTOM_SIMPLE_EDGE)
-Reducer 24 <- Map 31 (CUSTOM_SIMPLE_EDGE), Reducer 23 (CUSTOM_SIMPLE_EDGE)
-Reducer 25 <- Map 31 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE)
-Reducer 26 <- Reducer 25 (SIMPLE_EDGE)
-Reducer 27 <- Map 18 (CUSTOM_SIMPLE_EDGE)
-Reducer 28 <- Map 31 (CUSTOM_SIMPLE_EDGE), Reducer 27 (CUSTOM_SIMPLE_EDGE)
-Reducer 29 <- Map 31 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE)
+Reducer 20 <- Reducer 19 (SIMPLE_EDGE)
 Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
-Reducer 30 <- Reducer 29 (SIMPLE_EDGE)
 Reducer 4 <- Reducer 3 (SIMPLE_EDGE)
 Reducer 5 <- Reducer 10 (ONE_TO_ONE_EDGE), Reducer 13 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE)
 Reducer 6 <- Reducer 5 (SIMPLE_EDGE)
-Reducer 8 <- Map 32 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
-Reducer 9 <- Reducer 16 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE)
+Reducer 8 <- Map 22 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+Reducer 9 <- Reducer 15 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
@@ -189,13 +177,13 @@ Stage-0
                             Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4
                             Merge Join Operator [MERGEJOIN_277] (rows=696954748 width=88)
                               Conds:RS_92._col0=RS_93._col0(Inner),Output:["_col2","_col4"]
-                            <-Reducer 16 [SIMPLE_EDGE]
+                            <-Reducer 15 [SIMPLE_EDGE]
                               SHUFFLE [RS_93]
                                 PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_271] (rows=80353 width=1119)
-                                  Conds:RS_85._col1=RS_86._col0(Inner),Output:["_col0"]
+                                Merge Join Operator [MERGEJOIN_267] (rows=80353 width=1119)
+                                  Conds:RS_35._col1=RS_36._col0(Inner),Output:["_col0"]
                                 <-Map 14 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_85]
+                                  SHUFFLE [RS_35]
                                     PartitionCols:_col1
                                     Select Operator [SEL_8] (rows=73049 width=1119)
                                       Output:["_col0","_col1"]
@@ -203,48 +191,48 @@ Stage-0
                                         predicate:(d_date is not null and d_date_sk is not null)
                                         TableScan [TS_6] (rows=73049 width=1119)
                                           default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"]
-                                <-Reducer 26 [ONE_TO_ONE_EDGE]
-                                  FORWARD [RS_86]
+                                <-Reducer 20 [ONE_TO_ONE_EDGE]
+                                  FORWARD [RS_36]
                                     PartitionCols:_col0
-                                    Group By Operator [GBY_83] (rows=40176 width=1119)
+                                    Group By Operator [GBY_33] (rows=40176 width=1119)
                                       Output:["_col0"],keys:KEY._col0
-                                    <-Reducer 25 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_82]
+                                    <-Reducer 19 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_32]
                                         PartitionCols:_col0
-                                        Group By Operator [GBY_81] (rows=80353 width=1119)
+                                        Group By Operator [GBY_31] (rows=80353 width=1119)
                                           Output:["_col0"],keys:_col2
-                                          Merge Join Operator [MERGEJOIN_270] (rows=80353 width=1119)
-                                            Conds:RS_77._col1=RS_78._col1(Inner),Output:["_col2"]
-                                          <-Map 31 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_78]
+                                          Merge Join Operator [MERGEJOIN_266] (rows=80353 width=1119)
+                                            Conds:RS_27._col1=RS_28._col1(Inner),Output:["_col2"]
+                                          <-Map 21 [SIMPLE_EDGE]
+                                            SHUFFLE [RS_28]
                                               PartitionCols:_col1
-                                              Select Operator [SEL_73] (rows=73049 width=1119)
+                                              Select Operator [SEL_23] (rows=73049 width=1119)
                                                 Output:["_col0","_col1"]
-                                                Filter Operator [FIL_257] (rows=73049 width=1119)
+                                                Filter Operator [FIL_251] (rows=73049 width=1119)
                                                   predicate:(d_date is not null and d_week_seq is not null)
                                                   TableScan [TS_21] (rows=73049 width=1119)
                                                     default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"]
-                                          <-Reducer 24 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_77]
+                                          <-Reducer 18 [SIMPLE_EDGE]
+                                            SHUFFLE [RS_27]
                                               PartitionCols:_col1
-                                              Merge Join Operator [MERGEJOIN_269] (rows=36524 width=1128)
+                                              Merge Join Operator [MERGEJOIN_265] (rows=36524 width=1128)
                                                 Conds:(Inner),Output:["_col1"]
-                                              <-Map 31 [CUSTOM_SIMPLE_EDGE]
-                                                SHUFFLE [RS_75]
-                                                  Select Operator [SEL_70] (rows=36524 width=1119)
+                                              <-Map 21 [CUSTOM_SIMPLE_EDGE]
+                                                SHUFFLE [RS_25]
+                                                  Select Operator [SEL_20] (rows=36524 width=1119)
                                                     Output:["_col0"]
-                                                    Filter Operator [FIL_256] (rows=36524 width=1119)
+                                                    Filter Operator [FIL_250] (rows=36524 width=1119)
                                                       predicate:((d_date = '1998-02-19') and d_week_seq is not null)
                                                        Please refer to the previous TableScan [TS_21]
-                                              <-Reducer 23 [CUSTOM_SIMPLE_EDGE]
-                                                PARTITION_ONLY_SHUFFLE [RS_74]
-                                                  Select Operator [SEL_67] (rows=1 width=8)
-                                                    Filter Operator [FIL_66] (rows=1 width=8)
+                                              <-Reducer 17 [CUSTOM_SIMPLE_EDGE]
+                                                PARTITION_ONLY_SHUFFLE [RS_24]
+                                                  Select Operator [SEL_17] (rows=1 width=8)
+                                                    Filter Operator [FIL_16] (rows=1 width=8)
                                                       predicate:(sq_count_check(_col0) <= 1)
-                                                      Group By Operator [GBY_64] (rows=1 width=8)
+                                                      Group By Operator [GBY_14] (rows=1 width=8)
                                                         Output:["_col0"],aggregations:["count(VALUE._col0)"]
-                                                      <-Map 18 [CUSTOM_SIMPLE_EDGE]
-                                                        PARTITION_ONLY_SHUFFLE [RS_63]
+                                                      <-Map 16 [CUSTOM_SIMPLE_EDGE]
+                                                        PARTITION_ONLY_SHUFFLE [RS_13]
                                                           Group By Operator [GBY_12] (rows=1 width=8)
                                                             Output:["_col0"],aggregations:["count()"]
                                                             Select Operator [SEL_11] (rows=36524 width=1119)
@@ -266,7 +254,7 @@ Stage-0
                                         predicate:(i_item_id is not null and i_item_sk is not null)
                                         TableScan [TS_3] (rows=462000 width=1436)
                                           default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"]
-                                <-Map 32 [SIMPLE_EDGE]
+                                <-Map 22 [SIMPLE_EDGE]
                                   SHUFFLE [RS_89]
                                     PartitionCols:_col1
                                     Select Operator [SEL_52] (rows=575995635 width=88)
@@ -287,6 +275,10 @@ Stage-0
                             Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4
                             Merge Join Operator [MERGEJOIN_278] (rows=174243235 width=135)
                               Conds:RS_142._col0=RS_143._col0(Inner),Output:["_col2","_col4"]
+                            <-Reducer 15 [SIMPLE_EDGE]
+                              SHUFFLE [RS_143]
+                                PartitionCols:_col0
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_267]
                             <-Reducer 11 [SIMPLE_EDGE]
                               SHUFFLE [RS_142]
                                 PartitionCols:_col0
@@ -296,7 +288,7 @@ Stage-0
                                   SHUFFLE [RS_140]
                                     PartitionCols:_col0
                                      Please refer to the previous Select Operator [SEL_5]
-                                <-Map 33 [SIMPLE_EDGE]
+                                <-Map 23 [SIMPLE_EDGE]
                                   SHUFFLE [RS_139]
                                     PartitionCols:_col1
                                     Select Operator [SEL_102] (rows=144002668 width=135)
@@ -305,57 +297,6 @@ Stage-0
                                         predicate:(ws_item_sk is not null and ws_sold_date_sk is not null)
                                         TableScan [TS_100] (rows=144002668 width=135)
                                           default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_ext_sales_price"]
-                            <-Reducer 17 [SIMPLE_EDGE]
-                              SHUFFLE [RS_143]
-                                PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_275] (rows=80353 width=1119)
-                                  Conds:RS_135._col1=RS_136._col0(Inner),Output:["_col0"]
-                                <-Map 14 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_135]
-                                    PartitionCols:_col1
-                                     Please refer to the previous Select Operator [SEL_8]
-                                <-Reducer 30 [ONE_TO_ONE_EDGE]
-                                  FORWARD [RS_136]
-                                    PartitionCols:_col0
-                                    Group By Operator [GBY_133] (rows=40176 width=1119)
-                                      Output:["_col0"],keys:KEY._col0
-                                    <-Reducer 29 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_132]
-                                        PartitionCols:_col0
-                                        Group By Operator [GBY_131] (rows=80353 width=1119)
-                                          Output:["_col0"],keys:_col2
-                                          Merge Join Operator [MERGEJOIN_274] (rows=80353 width=1119)
-                                            Conds:RS_127._col1=RS_128._col1(Inner),Output:["_col2"]
-                                          <-Map 31 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_128]
-                                              PartitionCols:_col1
-                                              Select Operator [SEL_123] (rows=73049 width=1119)
-                                                Output:["_col0","_col1"]
-                                                Filter Operator [FIL_263] (rows=73049 width=1119)
-                                                  predicate:(d_date is not null and d_week_seq is not null)
-                                                   Please refer to the previous TableScan [TS_21]
-                                          <-Reducer 28 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_127]
-                                              PartitionCols:_col1
-                                              Merge Join Operator [MERGEJOIN_273] (rows=36524 width=1128)
-                                                Conds:(Inner),Output:["_col1"]
-                                              <-Map 31 [CUSTOM_SIMPLE_EDGE]
-                                                SHUFFLE [RS_125]
-                                                  Select Operator [SEL_120] (rows=36524 width=1119)
-                                                    Output:["_col0"]
-                                                    Filter Operator [FIL_262] (rows=36524 width=1119)
-                                                      predicate:((d_date = '1998-02-19') and d_week_seq is not null)
-                                                       Please refer to the previous TableScan [TS_21]
-                                              <-Reducer 27 [CUSTOM_SIMPLE_EDGE]
-                                                PARTITION_ONLY_SHUFFLE [RS_124]
-                                                  Select Operator [SEL_117] (rows=1 width=8)
-                                                    Filter Operator [FIL_116] (rows=1 width=8)
-                                                      predicate:(sq_count_check(_col0) <= 1)
-                                                      Group By Operator [GBY_114] (rows=1 width=8)
-                                                        Output:["_col0"],aggregations:["count(VALUE._col0)"]
-                                                      <-Map 18 [CUSTOM_SIMPLE_EDGE]
-                                                        PARTITION_ONLY_SHUFFLE [RS_113]
-                                                           Please refer to the previous Group By Operator [GBY_12]
                   <-Reducer 4 [ONE_TO_ONE_EDGE]
                     FORWARD [RS_150]
                       PartitionCols:_col0
@@ -371,54 +312,7 @@ Stage-0
                             <-Reducer 15 [SIMPLE_EDGE]
                               SHUFFLE [RS_43]
                                 PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_267] (rows=80353 width=1119)
-                                  Conds:RS_35._col1=RS_36._col0(Inner),Output:["_col0"]
-                                <-Map 14 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_35]
-                                    PartitionCols:_col1
-                                     Please refer to the previous Select Operator [SEL_8]
-                                <-Reducer 22 [ONE_TO_ONE_EDGE]
-                                  FORWARD [RS_36]
-                                    PartitionCols:_col0
-                                    Group By Operator [GBY_33] (rows=40176 width=1119)
-                                      Output:["_col0"],keys:KEY._col0
-                                    <-Reducer 21 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_32]
-                                        PartitionCols:_col0
-                                        Group By Operator [GBY_31] (rows=80353 width=1119)
-                                          Output:["_col0"],keys:_col2
-                                          Merge Join Operator [MERGEJOIN_266] (rows=80353 width=1119)
-                                            Conds:RS_27._col1=RS_28._col1(Inner),Output:["_col2"]
-                                          <-Map 31 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_28]
-                                              PartitionCols:_col1
-                                              Select Operator [SEL_23] (rows=73049 width=1119)
-                                                Output:["_col0","_col1"]
-                                                Filter Operator [FIL_251] (rows=73049 width=1119)
-                                                  predicate:(d_date is not null and d_week_seq is not null)
-                                                   Please refer to the previous TableScan [TS_21]
-                                          <-Reducer 20 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_27]
-                                              PartitionCols:_col1
-                                              Merge Join Operator [MERGEJOIN_265] (rows=36524 width=1128)
-                                                Conds:(Inner),Output:["_col1"]
-                                              <-Map 31 [CUSTOM_SIMPLE_EDGE]
-                                                SHUFFLE [RS_25]
-                                                  Select Operator [SEL_20] (rows=36524 width=1119)
-                                                    Output:["_col0"]
-                                                    Filter Operator [FIL_250] (rows=36524 width=1119)
-                                                      predicate:((d_date = '1998-02-19') and d_week_seq is not null)
-                                                       Please refer to the previous TableScan [TS_21]
-                                              <-Reducer 19 [CUSTOM_SIMPLE_EDGE]
-                                                PARTITION_ONLY_SHUFFLE [RS_24]
-                                                  Select Operator [SEL_17] (rows=1 width=8)
-                                                    Filter Operator [FIL_16] (rows=1 width=8)
-                                                      predicate:(sq_count_check(_col0) <= 1)
-                                                      Group By Operator [GBY_14] (rows=1 width=8)
-                                                        Output:["_col0"],aggregations:["count(VALUE._col0)"]
-                                                      <-Map 18 [CUSTOM_SIMPLE_EDGE]
-                                                        PARTITION_ONLY_SHUFFLE [RS_13]
-                                                           Please refer to the previous Group By Operator [GBY_12]
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_267]
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_42]
                                 PartitionCols:_col0

http://git-wip-us.apache.org/repos/asf/hive/blob/96a409e1/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 37c2cc0..61818a8 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query59.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query59.q.out
@@ -87,16 +87,15 @@ POSTHOOK: type: QUERY
 Plan optimized by CBO.
 
 Vertex dependency in root stage
-Reducer 10 <- Map 13 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE)
-Reducer 11 <- Map 15 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE)
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE)
+Reducer 10 <- Map 14 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE)
 Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
-Reducer 4 <- Map 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
-Reducer 5 <- Map 14 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE)
-Reducer 6 <- Reducer 11 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE)
+Reducer 4 <- Map 12 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
+Reducer 5 <- Map 13 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE)
+Reducer 6 <- Reducer 10 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE)
 Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
-Reducer 8 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE)
-Reducer 9 <- Reducer 8 (SIMPLE_EDGE)
+Reducer 8 <- Reducer 2 (SIMPLE_EDGE)
+Reducer 9 <- Map 12 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
@@ -114,14 +113,14 @@ Stage-0
                 Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"]
                 Merge Join Operator [MERGEJOIN_104] (rows=421657640 width=88)
                   Conds:RS_56._col2, _col1=RS_57._col1, (_col0 - 52)(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col12","_col13","_col14","_col15","_col16","_col17"]
-                <-Reducer 11 [SIMPLE_EDGE]
+                <-Reducer 10 [SIMPLE_EDGE]
                   SHUFFLE [RS_57]
                     PartitionCols:_col1, (_col0 - 52)
                     Select Operator [SEL_55] (rows=383325119 width=88)
                       Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
                       Merge Join Operator [MERGEJOIN_103] (rows=383325119 width=88)
                         Conds:RS_52._col1=RS_53._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col11"]
-                      <-Map 15 [SIMPLE_EDGE]
+                      <-Map 14 [SIMPLE_EDGE]
                         SHUFFLE [RS_53]
                           PartitionCols:_col0
                           Select Operator [SEL_48] (rows=1704 width=1910)
@@ -130,12 +129,12 @@ Stage-0
                               predicate:(s_store_id is not null and s_store_sk is not null)
                               TableScan [TS_46] (rows=1704 width=1910)
                                 default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id"]
-                      <-Reducer 10 [SIMPLE_EDGE]
+                      <-Reducer 9 [SIMPLE_EDGE]
                         SHUFFLE [RS_52]
                           PartitionCols:_col1
                           Merge Join Operator [MERGEJOIN_102] (rows=348477374 width=88)
                             Conds:RS_49._col0=RS_50._col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
-                          <-Map 13 [SIMPLE_EDGE]
+                          <-Map 12 [SIMPLE_EDGE]
                             SHUFFLE [RS_50]
                               PartitionCols:_col1
                               Select Operator [SEL_45] (rows=8116 width=1119)
@@ -144,22 +143,22 @@ Stage-0
                                   predicate:(d_month_seq BETWEEN 1197 AND 1208 and d_week_seq is not null)
                                   TableScan [TS_15] (rows=73049 width=1119)
                                     default@date_dim,d,Tbl:COMPLETE,Col:NONE,Output:["d_month_seq","d_week_seq"]
-                          <-Reducer 9 [SIMPLE_EDGE]
+                          <-Reducer 8 [SIMPLE_EDGE]
                             SHUFFLE [RS_49]
                               PartitionCols:_col0
                               Group By Operator [GBY_41] (rows=316797606 width=88)
                                 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 8 [SIMPLE_EDGE]
+                              <-Reducer 2 [SIMPLE_EDGE]
                                 SHUFFLE [RS_40]
                                   PartitionCols:_col0, _col1
                                   Group By Operator [GBY_39] (rows=633595212 width=88)
                                     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_37] (rows=633595212 width=88)
                                       Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8"]
-                                      Merge Join Operator [MERGEJOIN_101] (rows=633595212 width=88)
-                                        Conds:RS_34._col0=RS_35._col0(Inner),Output:["_col1","_col2","_col4","_col5"]
+                                      Merge Join Operator [MERGEJOIN_98] (rows=633595212 width=88)
+                                        Conds:RS_6._col0=RS_7._col0(Inner),Output:["_col1","_col2","_col4","_col5"]
                                       <-Map 1 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_34]
+                                        SHUFFLE [RS_6]
                                           PartitionCols:_col0
                                           Select Operator [SEL_2] (rows=575995635 width=88)
                                             Output:["_col0","_col1","_col2"]
@@ -167,8 +166,8 @@ Stage-0
                                               predicate:(ss_sold_date_sk is not null and ss_store_sk is not null)
                                               TableScan [TS_0] (rows=575995635 width=88)
                                                 default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_store_sk","ss_sales_price"]
-                                      <-Map 12 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_35]
+                                      <-Map 11 [SIMPLE_EDGE]
+                                        SHUFFLE [RS_7]
                                           PartitionCols:_col0
                                           Select Operator [SEL_5] (rows=73049 width=1119)
                                             Output:["_col0","_col1","_col2"]
@@ -183,7 +182,7 @@ Stage-0
                       Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"]
                       Merge Join Operator [MERGEJOIN_100] (rows=383325119 width=88)
                         Conds:RS_24._col1=RS_25._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col12","_col13"]
-                      <-Map 14 [SIMPLE_EDGE]
+                      <-Map 13 [SIMPLE_EDGE]
                         SHUFFLE [RS_25]
                           PartitionCols:_col0
                           Select Operator [SEL_20] (rows=1704 width=1910)
@@ -197,7 +196,7 @@ Stage-0
                           PartitionCols:_col1
                           Merge Join Operator [MERGEJOIN_99] (rows=348477374 width=88)
                             Conds:RS_21._col0=RS_22._col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
-                          <-Map 13 [SIMPLE_EDGE]
+                          <-Map 12 [SIMPLE_EDGE]
                             SHUFFLE [RS_22]
                               PartitionCols:_col1
                               Select Operator [SEL_17] (rows=8116 width=1119)
@@ -217,14 +216,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=633595212 width=88)
                                       Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"]
-                                      Merge Join Operator [MERGEJOIN_98] (rows=633595212 width=88)
-                                        Conds:RS_6._col0=RS_7._col0(Inner),Output:["_col1","_col2","_col4","_col5"]
-                                      <-Map 1 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_6]
-                                          PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_2]
-                                      <-Map 12 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_7]
-                                          PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_5]
+                                       Please refer to the previous Merge Join Operator [MERGEJOIN_98]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/96a409e1/ql/src/test/results/clientpositive/perf/tez/query60.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query60.q.out b/ql/src/test/results/clientpositive/perf/tez/query60.q.out
index 84a9ada..67102b3 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query60.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query60.q.out
@@ -155,26 +155,22 @@ POSTHOOK: type: QUERY
 Plan optimized by CBO.
 
 Vertex dependency in root stage
-Reducer 10 <- Reducer 9 (SIMPLE_EDGE), Union 5 (CONTAINS)
-Reducer 11 <- Map 1 (SIMPLE_EDGE), Reducer 17 (ONE_TO_ONE_EDGE)
-Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE)
-Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Union 5 (CONTAINS)
-Reducer 15 <- Map 14 (SIMPLE_EDGE)
-Reducer 16 <- Map 14 (SIMPLE_EDGE)
-Reducer 17 <- Map 14 (SIMPLE_EDGE)
-Reducer 19 <- Map 18 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE)
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 15 (ONE_TO_ONE_EDGE)
-Reducer 20 <- Map 26 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE)
-Reducer 22 <- Map 21 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE)
-Reducer 23 <- Map 26 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE)
-Reducer 24 <- Map 21 (SIMPLE_EDGE), Map 28 (SIMPLE_EDGE)
-Reducer 25 <- Map 26 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE)
-Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE)
+Reducer 10 <- Reducer 2 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE)
+Reducer 11 <- Reducer 10 (SIMPLE_EDGE), Union 5 (CONTAINS)
+Reducer 13 <- Map 12 (SIMPLE_EDGE)
+Reducer 15 <- Map 14 (SIMPLE_EDGE), Map 17 (SIMPLE_EDGE)
+Reducer 16 <- Map 22 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE)
+Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE)
+Reducer 19 <- Map 22 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 13 (ONE_TO_ONE_EDGE)
+Reducer 20 <- Map 17 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE)
+Reducer 21 <- Map 22 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE)
+Reducer 3 <- Reducer 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
 Reducer 4 <- Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS)
 Reducer 6 <- Union 5 (SIMPLE_EDGE)
 Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
-Reducer 8 <- Map 1 (SIMPLE_EDGE), Reducer 16 (ONE_TO_ONE_EDGE)
-Reducer 9 <- Reducer 23 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE)
+Reducer 8 <- Reducer 19 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 9 <- Reducer 8 (SIMPLE_EDGE), Union 5 (CONTAINS)
 
 Stage-0
   Fetch Operator
@@ -191,66 +187,27 @@ Stage-0
               Group By Operator [GBY_116] (rows=335408073 width=108)
                 Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
               <-Union 5 [SIMPLE_EDGE]
-                <-Reducer 10 [CONTAINS]
+                <-Reducer 11 [CONTAINS]
                   Reduce Output Operator [RS_115]
                     PartitionCols:_col0
                     Group By Operator [GBY_114] (rows=670816147 width=108)
                       Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_72] (rows=191657247 width=135)
+                      Group By Operator [GBY_110] (rows=95833781 width=135)
                         Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
-                      <-Reducer 9 [SIMPLE_EDGE]
-                        SHUFFLE [RS_71]
+                      <-Reducer 10 [SIMPLE_EDGE]
+                        SHUFFLE [RS_109]
                           PartitionCols:_col0
-                          Group By Operator [GBY_70] (rows=383314495 width=135)
+                          Group By Operator [GBY_108] (rows=191667562 width=135)
                             Output:["_col0","_col1"],aggregations:["sum(_col8)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_183] (rows=383314495 width=135)
-                              Conds:RS_66._col0=RS_67._col4(Inner),Output:["_col1","_col8"]
-                            <-Reducer 23 [SIMPLE_EDGE]
-                              SHUFFLE [RS_67]
-                                PartitionCols:_col4
-                                Select Operator [SEL_62] (rows=348467716 width=135)
-                                  Output:["_col4","_col5"]
-                                  Merge Join Operator [MERGEJOIN_178] (rows=348467716 width=135)
-                                    Conds:RS_59._col1=RS_60._col0(Inner),Output:["_col2","_col3"]
-                                  <-Map 26 [SIMPLE_EDGE]
-                                    SHUFFLE [RS_60]
-                                      PartitionCols:_col0
-                                      Select Operator [SEL_18] (rows=20000000 width=1014)
-                                        Output:["_col0"]
-                                        Filter Operator [FIL_162] (rows=20000000 width=1014)
-                                          predicate:((ca_gmt_offset = -6) and ca_address_sk is not null)
-                                          TableScan [TS_16] (rows=40000000 width=1014)
-                                            default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"]
-                                  <-Reducer 22 [SIMPLE_EDGE]
-                                    SHUFFLE [RS_59]
-                                      PartitionCols:_col1
-                                      Merge Join Operator [MERGEJOIN_177] (rows=316788826 width=135)
-                                        Conds:RS_56._col0=RS_57._col0(Inner),Output:["_col1","_col2","_col3"]
-                                      <-Map 21 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_57]
-                                          PartitionCols:_col0
-                                          Select Operator [SEL_15] (rows=18262 width=1119)
-                                            Output:["_col0"]
-                                            Filter Operator [FIL_161] (rows=18262 width=1119)
-                                              predicate:((d_moy = 9) and (d_year = 1999) and d_date_sk is not null)
-                                              TableScan [TS_13] (rows=73049 width=1119)
-                                                default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"]
-                                      <-Map 27 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_56]
-                                          PartitionCols:_col0
-                                          Select Operator [SEL_49] (rows=287989836 width=135)
-                                            Output:["_col0","_col1","_col2","_col3"]
-                                            Filter Operator [FIL_165] (rows=287989836 width=135)
-                                              predicate:(cs_bill_addr_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null)
-                                              TableScan [TS_47] (rows=287989836 width=135)
-                                                default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_addr_sk","cs_item_sk","cs_ext_sales_price"]
-                            <-Reducer 8 [SIMPLE_EDGE]
-                              SHUFFLE [RS_66]
+                            Merge Join Operator [MERGEJOIN_184] (rows=191667562 width=135)
+                              Conds:RS_104._col0=RS_105._col3(Inner),Output:["_col1","_col8"]
+                            <-Reducer 2 [SIMPLE_EDGE]
+                              SHUFFLE [RS_104]
                                 PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_176] (rows=508200 width=1436)
-                                  Conds:RS_63._col1=RS_64._col0(Inner),Output:["_col0","_col1"]
+                                Merge Join Operator [MERGEJOIN_173] (rows=508200 width=1436)
+                                  Conds:RS_26._col1=RS_27._col0(Inner),Output:["_col0","_col1"]
                                 <-Map 1 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_63]
+                                  SHUFFLE [RS_26]
                                     PartitionCols:_col1
                                     Select Operator [SEL_2] (rows=462000 width=1436)
                                       Output:["_col0","_col1"]
@@ -258,13 +215,13 @@ Stage-0
                                         predicate:(i_item_id is not null and i_item_sk is not null)
                                         TableScan [TS_0] (rows=462000 width=1436)
                                           default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"]
-                                <-Reducer 16 [ONE_TO_ONE_EDGE]
-                                  FORWARD [RS_64]
+                                <-Reducer 13 [ONE_TO_ONE_EDGE]
+                                  FORWARD [RS_27]
                                     PartitionCols:_col0
-                                    Group By Operator [GBY_45] (rows=115500 width=1436)
+                                    Group By Operator [GBY_8] (rows=115500 width=1436)
                                       Output:["_col0"],keys:KEY._col0
-                                    <-Map 14 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_44]
+                                    <-Map 12 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_7]
                                         PartitionCols:_col0
                                         Group By Operator [GBY_6] (rows=231000 width=1436)
                                           Output:["_col0"],keys:i_item_id
@@ -274,59 +231,37 @@ Stage-0
                                               predicate:((i_category) IN ('Children') and i_item_id is not null)
                                               TableScan [TS_3] (rows=462000 width=1436)
                                                 default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_id","i_category"]
-                <-Reducer 13 [CONTAINS]
-                  Reduce Output Operator [RS_115]
-                    PartitionCols:_col0
-                    Group By Operator [GBY_114] (rows=670816147 width=108)
-                      Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
-                      Group By Operator [GBY_110] (rows=95833781 width=135)
-                        Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
-                      <-Reducer 12 [SIMPLE_EDGE]
-                        SHUFFLE [RS_109]
-                          PartitionCols:_col0
-                          Group By Operator [GBY_108] (rows=191667562 width=135)
-                            Output:["_col0","_col1"],aggregations:["sum(_col8)"],keys:_col1
-                            Merge Join Operator [MERGEJOIN_184] (rows=191667562 width=135)
-                              Conds:RS_104._col0=RS_105._col3(Inner),Output:["_col1","_col8"]
-                            <-Reducer 11 [SIMPLE_EDGE]
-                              SHUFFLE [RS_104]
-                                PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_179] (rows=508200 width=1436)
-                                  Conds:RS_101._col1=RS_102._col0(Inner),Output:["_col0","_col1"]
-                                <-Map 1 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_101]
-                                    PartitionCols:_col1
-                                     Please refer to the previous Select Operator [SEL_2]
-                                <-Reducer 17 [ONE_TO_ONE_EDGE]
-                                  FORWARD [RS_102]
-                                    PartitionCols:_col0
-                                    Group By Operator [GBY_83] (rows=115500 width=1436)
-                                      Output:["_col0"],keys:KEY._col0
-                                    <-Map 14 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_82]
-                                        PartitionCols:_col0
-                                         Please refer to the previous Group By Operator [GBY_6]
-                            <-Reducer 25 [SIMPLE_EDGE]
+                            <-Reducer 21 [SIMPLE_EDGE]
                               SHUFFLE [RS_105]
                                 PartitionCols:_col3
                                 Select Operator [SEL_100] (rows=174243235 width=135)
                                   Output:["_col3","_col5"]
                                   Merge Join Operator [MERGEJOIN_181] (rows=174243235 width=135)
                                     Conds:RS_97._col2=RS_98._col0(Inner),Output:["_col1","_col3"]
-                                  <-Map 26 [SIMPLE_EDGE]
+                                  <-Map 22 [SIMPLE_EDGE]
                                     SHUFFLE [RS_98]
                                       PartitionCols:_col0
-                                       Please refer to the previous Select Operator [SEL_18]
-                                  <-Reducer 24 [SIMPLE_EDGE]
+                                      Select Operator [SEL_18] (rows=20000000 width=1014)
+                                        Output:["_col0"]
+                                        Filter Operator [FIL_162] (rows=20000000 width=1014)
+                                          predicate:((ca_gmt_offset = -6) and ca_address_sk is not null)
+                                          TableScan [TS_16] (rows=40000000 width=1014)
+                                            default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"]
+                                  <-Reducer 20 [SIMPLE_EDGE]
                                     SHUFFLE [RS_97]
                                       PartitionCols:_col2
                                       Merge Join Operator [MERGEJOIN_180] (rows=158402938 width=135)
                                         Conds:RS_94._col0=RS_95._col0(Inner),Output:["_col1","_col2","_col3"]
-                                      <-Map 21 [SIMPLE_EDGE]
+                                      <-Map 17 [SIMPLE_EDGE]
                                         SHUFFLE [RS_95]
                                           PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_15]
-                                      <-Map 28 [SIMPLE_EDGE]
+                                          Select Operator [SEL_15] (rows=18262 width=1119)
+                                            Output:["_col0"]
+                                            Filter Operator [FIL_161] (rows=18262 width=1119)
+                                              predicate:((d_moy = 9) and (d_year = 1999) and d_date_sk is not null)
+                                              TableScan [TS_13] (rows=73049 width=1119)
+                                                default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"]
+                                      <-Map 24 [SIMPLE_EDGE]
                                         SHUFFLE [RS_94]
                                           PartitionCols:_col0
                                           Select Operator [SEL_87] (rows=144002668 width=135)
@@ -352,42 +287,28 @@ Stage-0
                             <-Reducer 2 [SIMPLE_EDGE]
                               SHUFFLE [RS_29]
                                 PartitionCols:_col0
-                                Merge Join Operator [MERGEJOIN_173] (rows=508200 width=1436)
-                                  Conds:RS_26._col1=RS_27._col0(Inner),Output:["_col0","_col1"]
-                                <-Map 1 [SIMPLE_EDGE]
-                                  SHUFFLE [RS_26]
-                                    PartitionCols:_col1
-                                     Please refer to the previous Select Operator [SEL_2]
-                                <-Reducer 15 [ONE_TO_ONE_EDGE]
-                                  FORWARD [RS_27]
-                                    PartitionCols:_col0
-                                    Group By Operator [GBY_8] (rows=115500 width=1436)
-                                      Output:["_col0"],keys:KEY._col0
-                                    <-Map 14 [SIMPLE_EDGE]
-                                      SHUFFLE [RS_7]
-                                        PartitionCols:_col0
-                                         Please refer to the previous Group By Operator [GBY_6]
-                            <-Reducer 20 [SIMPLE_EDGE]
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_173]
+                            <-Reducer 16 [SIMPLE_EDGE]
                               SHUFFLE [RS_30]
                                 PartitionCols:_col3
                                 Select Operator [SEL_25] (rows=696954748 width=88)
                                   Output:["_col3","_col5"]
                                   Merge Join Operator [MERGEJOIN_175] (rows=696954748 width=88)
                                     Conds:RS_22._col2=RS_23._col0(Inner),Output:["_col1","_col3"]
-                                  <-Map 26 [SIMPLE_EDGE]
+                                  <-Map 22 [SIMPLE_EDGE]
                                     SHUFFLE [RS_23]
                                       PartitionCols:_col0
                                        Please refer to the previous Select Operator [SEL_18]
-                                  <-Reducer 19 [SIMPLE_EDGE]
+                                  <-Reducer 15 [SIMPLE_EDGE]
                                     SHUFFLE [RS_22]
                                       PartitionCols:_col2
                                       Merge Join Operator [MERGEJOIN_174] (rows=633595212 width=88)
                                         Conds:RS_19._col0=RS_20._col0(Inner),Output:["_col1","_col2","_col3"]
-                                      <-Map 21 [SIMPLE_EDGE]
+                                      <-Map 17 [SIMPLE_EDGE]
                                         SHUFFLE [RS_20]
                                           PartitionCols:_col0
                                            Please refer to the previous Select Operator [SEL_15]
-                                      <-Map 18 [SIMPLE_EDGE]
+                                      <-Map 14 [SIMPLE_EDGE]
                                         SHUFFLE [RS_19]
                                           PartitionCols:_col0
                                           Select Operator [SEL_12] (rows=575995635 width=88)
@@ -396,4 +317,51 @@ Stage-0
                                               predicate:(ss_addr_sk is not null and ss_item_sk is not null and ss_sold_date_sk is not null)
                                               TableScan [TS_10] (rows=575995635 width=88)
                                                 default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_addr_sk","ss_ext_sales_price"]
+                <-Reducer 9 [CONTAINS]
+                  Reduce Output Operator [RS_115]
+                    PartitionCols:_col0
+                    Group By Operator [GBY_114] (rows=670816147 width=108)
+                      Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0
+                      Group By Operator [GBY_72] (rows=191657247 width=135)
+                        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=383314495 width=135)
+                            Output:["_col0","_col1"],aggregations:["sum(_col8)"],keys:_col1
+                            Merge Join Operator [MERGEJOIN_183] (rows=383314495 width=135)
+                              Conds:RS_66._col0=RS_67._col4(Inner),Output:["_col1","_col8"]
+                            <-Reducer 2 [SIMPLE_EDGE]
+                              SHUFFLE [RS_66]
+                                PartitionCols:_col0
+                                 Please refer to the previous Merge Join Operator [MERGEJOIN_173]
+                            <-Reducer 19 [SIMPLE_EDGE]
+                              SHUFFLE [RS_67]
+                                PartitionCols:_col4
+                                Select Operator [SEL_62] (rows=348467716 width=135)
+                                  Output:["_col4","_col5"]
+                                  Merge Join Operator [MERGEJOIN_178] (rows=348467716 width=135)
+                                    Conds:RS_59._col1=RS_60._col0(Inner),Output:["_col2","_col3"]
+                                  <-Map 22 [SIMPLE_EDGE]
+                                    SHUFFLE [RS_60]
+                                      PartitionCols:_col0
+                                       Please refer to the previous Select Operator [SEL_18]
+                                  <-Reducer 18 [SIMPLE_EDGE]
+                                    SHUFFLE [RS_59]
+                                      PartitionCols:_col1
+                                      Merge Join Operator [MERGEJOIN_177] (rows=316788826 width=135)
+                                        Conds:RS_56._col0=RS_57._col0(Inner),Output:["_col1","_col2","_col3"]
+                                      <-Map 17 [SIMPLE_EDGE]
+                                        SHUFFLE [RS_57]
+                                          PartitionCols:_col0
+                                           Please refer to the previous Select Operator [SEL_15]
+                                      <-Map 23 [SIMPLE_EDGE]
+                                        SHUFFLE [RS_56]
+                                          PartitionCols:_col0
+                                          Select Operator [SEL_49] (rows=287989836 width=135)
+                                            Output:["_col0","_col1","_col2","_col3"]
+                                            Filter Operator [FIL_165] (rows=287989836 width=135)
+                                              predicate:(cs_bill_addr_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null)
+                                              TableScan [TS_47] (rows=287989836 width=135)
+                                                default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_addr_sk","cs_item_sk","cs_ext_sales_price"]
 

http://git-wip-us.apache.org/repos/asf/hive/blob/96a409e1/ql/src/test/results/clientpositive/perf/tez/query61.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query61.q.out b/ql/src/test/results/clientpositive/perf/tez/query61.q.out
index 0b4f5fd..7ac7c0f 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query61.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query61.q.out
@@ -88,21 +88,20 @@ POSTHOOK: type: QUERY
 Plan optimized by CBO.
 
 Vertex dependency in root stage
-Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE)
+Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 15 (SIMPLE_EDGE)
+Reducer 12 <- Map 19 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE)
 Reducer 13 <- Map 20 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE)
 Reducer 14 <- Map 21 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE)
-Reducer 15 <- Map 22 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE)
-Reducer 17 <- Map 16 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE)
+Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE)
+Reducer 17 <- Map 19 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE)
 Reducer 18 <- Map 20 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE)
-Reducer 19 <- Map 21 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE)
-Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE)
+Reducer 3 <- Reducer 14 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
 Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE)
-Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE)
 Reducer 6 <- Reducer 5 (SIMPLE_EDGE)
-Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE)
-Reducer 8 <- Reducer 19 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE)
-Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE)
+Reducer 7 <- Reducer 18 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
@@ -130,12 +129,35 @@ Stage-0
                           Output:["_col0"],aggregations:["sum(_col9)"]
                           Merge Join Operator [MERGEJOIN_154] (rows=927646829 width=88)
                             Conds:RS_37._col0=RS_38._col2(Inner),Output:["_col9"]
-                          <-Reducer 15 [SIMPLE_EDGE]
+                          <-Reducer 2 [SIMPLE_EDGE]
+                            SHUFFLE [RS_37]
+                              PartitionCols:_col0
+                              Merge Join Operator [MERGEJOIN_145] (rows=88000001 width=860)
+                                Conds:RS_34._col1=RS_35._col0(Inner),Output:["_col0"]
+                              <-Map 1 [SIMPLE_EDGE]
+                                SHUFFLE [RS_34]
+                                  PartitionCols:_col1
+                                  Select Operator [SEL_2] (rows=80000000 width=860)
+                                    Output:["_col0","_col1"]
+                                    Filter Operator [FIL_132] (rows=80000000 width=860)
+                                      predicate:(c_current_addr_sk is not null and c_customer_sk is not null)
+                                      TableScan [TS_0] (rows=80000000 width=860)
+                                        default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"]
+                              <-Map 9 [SIMPLE_EDGE]
+                                SHUFFLE [RS_35]
+                                  PartitionCols:_col0
+                                  Select Operator [SEL_5] (rows=20000000 width=1014)
+                                    Output:["_col0"]
+                                    Filter Operator [FIL_133] (rows=20000000 width=1014)
+                                      predicate:((ca_gmt_offset = -7) and ca_address_sk is not null)
+                                      TableScan [TS_3] (rows=40000000 width=1014)
+                                        default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"]
+                          <-Reducer 14 [SIMPLE_EDGE]
                             SHUFFLE [RS_38]
                               PartitionCols:_col2
                               Merge Join Operator [MERGEJOIN_149] (rows=843315281 width=88)
                                 Conds:RS_30._col4=RS_31._col0(Inner),Output:["_col2","_col5"]
-                              <-Map 22 [SIMPLE_EDGE]
+                              <-Map 21 [SIMPLE_EDGE]
                                 SHUFFLE [RS_31]
                                   PartitionCols:_col0
                                   Select Operator [SEL_20] (rows=2300 width=1179)
@@ -144,12 +166,12 @@ Stage-0
                                       predicate:(((p_channel_dmail = 'Y') or (p_channel_email = 'Y') or (p_channel_tv = 'Y')) and p_promo_sk is not null)
                                       TableScan [TS_18] (rows=2300 width=1179)
                                         default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_dmail","p_channel_email","p_channel_tv"]
-                              <-Reducer 14 [SIMPLE_EDGE]
+                              <-Reducer 13 [SIMPLE_EDGE]
                                 SHUFFLE [RS_30]
                                   PartitionCols:_col4
                                   Merge Join Operator [MERGEJOIN_148] (rows=766650239 width=88)
                                     Conds:RS_27._col3=RS_28._col0(Inner),Output:["_col2","_col4","_col5"]
-                                  <-Map 21 [SIMPLE_EDGE]
+                                  <-Map 20 [SIMPLE_EDGE]
                                     SHUFFLE [RS_28]
                                       PartitionCols:_col0
                                       Select Operator [SEL_17] (rows=852 width=1910)
@@ -158,12 +180,12 @@ Stage-0
                                           predicate:((s_gmt_offset = -7) and s_store_sk is not null)
                                           TableScan [TS_15] (rows=1704 width=1910)
                                             default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_gmt_offset"]
-                                  <-Reducer 13 [SIMPLE_EDGE]
+                                  <-Reducer 12 [SIMPLE_EDGE]
                                     SHUFFLE [RS_27]
                                       PartitionCols:_col3
                                       Merge Join Operator [MERGEJOIN_147] (rows=696954748 width=88)
                                         Conds:RS_24._col1=RS_25._col0(Inner),Output:["_col2","_col3","_col4","_col5"]
-                                      <-Map 20 [SIMPLE_EDGE]
+                                      <-Map 19 [SIMPLE_EDGE]
                                         SHUFFLE [RS_25]
                                           PartitionCols:_col0
                                           Select Operator [SEL_14] (rows=231000 width=1436)
@@ -172,12 +194,12 @@ Stage-0
                                               predicate:((i_category = 'Electronics') and i_item_sk is not null)
                                               TableScan [TS_12] (rows=462000 width=1436)
                                                 default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_category"]
-                                      <-Reducer 12 [SIMPLE_EDGE]
+                                      <-Reducer 11 [SIMPLE_EDGE]
                                         SHUFFLE [RS_24]
                                           PartitionCols:_col1
                                           Merge Join Operator [MERGEJOIN_146] (rows=633595212 width=88)
                                             Conds:RS_21._col0=RS_22._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"]
-                                          <-Map 16 [SIMPLE_EDGE]
+                                          <-Map 15 [SIMPLE_EDGE]
                                             SHUFFLE [RS_22]
                                               PartitionCols:_col0
                                               Select Operator [SEL_11] (rows=18262 width=1119)
@@ -186,7 +208,7 @@ Stage-0
                                                   predicate:((d_moy = 11) and (d_year = 1999) and d_date_sk is not null)
                                                   TableScan [TS_9] (rows=73049 width=1119)
                                                     default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"]
-                                          <-Map 11 [SIMPLE_EDGE]
+                                          <-Map 10 [SIMPLE_EDGE]
                                             SHUFFLE [RS_21]
                                               PartitionCols:_col0
                                               Select Operator [SEL_8] (rows=575995635 width=88)
@@ -195,67 +217,48 @@ Stage-0
                                                   predicate:(ss_customer_sk is not null and ss_item_sk is not null and ss_promo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null)
                                                   TableScan [TS_6] (rows=575995635 width=88)
                                                     default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_store_sk","ss_promo_sk","ss_ext_sales_price"]
-                          <-Reducer 2 [SIMPLE_EDGE]
-                            SHUFFLE [RS_37]
-                              PartitionCols:_col0
-                              Merge Join Operator [MERGEJOIN_145] (rows=88000001 width=860)
-                                Conds:RS_34._col1=RS_35._col0(Inner),Output:["_col0"]
-                              <-Map 1 [SIMPLE_EDGE]
-                                SHUFFLE [RS_34]
-                                  PartitionCols:_col1
-                                  Select Operator [SEL_2] (rows=80000000 width=860)
-                                    Output:["_col0","_col1"]
-                                    Filter Operator [FIL_132] (rows=80000000 width=860)
-                                      predicate:(c_current_addr_sk is not null and c_customer_sk is not null)
-                                      TableScan [TS_0] (rows=80000000 width=860)
-                                        default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"]
-                              <-Map 10 [SIMPLE_EDGE]
-                                SHUFFLE [RS_35]
-                                  PartitionCols:_col0
-                                  Select Operator [SEL_5] (rows=20000000 width=1014)
-                                    Output:["_col0"]
-                                    Filter Operator [FIL_133] (rows=20000000 width=1014)
-                                      predicate:((ca_gmt_offset = -7) and ca_address_sk is not null)
-                                      TableScan [TS_3] (rows=40000000 width=1014)
-                                        default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"]
-                <-Reducer 9 [CUSTOM_SIMPLE_EDGE]
+                <-Reducer 8 [CUSTOM_SIMPLE_EDGE]
                   PARTITION_ONLY_SHUFFLE [RS_85]
                     Group By Operator [GBY_82] (rows=1 width=112)
                       Output:["_col0"],aggregations:["sum(VALUE._col0)"]
-                    <-Reducer 8 [CUSTOM_SIMPLE_EDGE]
+                    <-Reducer 7 [CUSTOM_SIMPLE_EDGE]
                       PARTITION_ONLY_SHUFFLE [RS_81]
                         Group By Operator [GBY_80] (rows=1 width=112)
                           Output:["_col0"],aggregations:["sum(_col8)"]
                           Merge Join Operator [MERGEJOIN_155] (rows=843315281 width=88)
                             Conds:RS_76._col0=RS_77._col2(Inner),Output:["_col8"]
-                          <-Reducer 19 [SIMPLE_EDGE]
+                          <-Reducer 2 [SIMPLE_EDGE]
+                            SHUFFLE [RS_76]
+                              PartitionCols:_col0
+                               Please refer to the previous Merge Join Operator [MERGEJOIN_145]
+                          <-Reducer 18 [SIMPLE_EDGE]
                             SHUFFLE [RS_77]
                               PartitionCols:_col2
                               Merge Join Operator [MERGEJOIN_153] (rows=766650239 width=88)
                                 Conds:RS_69._col3=RS_70._col0(Inner),Output:["_col2","_col4"]
-                              <-Map 21 [SIMPLE_EDGE]
+                              <-Map 20 [SIMPLE_EDGE]
                                 SHUFFLE [RS_70]
                                   PartitionCols:_col0
                                    Please refer to the previous Select Operator [SEL_17]
-                              <-Reducer 18 [SIMPLE_EDGE]
+                              <-Reducer 17 [SIMPLE_EDGE]
                                 SHUFFLE [RS_69]
                                   PartitionCols:_col3
                                   Merge Join Operator [MERGEJOIN_152] (rows=696954748 width=88)
                                     Conds:RS_66._col1=RS_67._col0(Inner),Output:["_col2","_col3","_col4"]
-                                  <-Map 20 [SIMPLE_EDGE]
+                                  <-Map 19 [SIMPLE_EDGE]
                                     SHUFFLE [RS_67]
                                       PartitionCols:_col0
                                        Please refer to the previous Select Operator [SEL_14]
-                                  <-Reducer 17 [SIMPLE_EDGE]
+                                  <-Reducer 16 [SIMPLE_EDGE]
                                     SHUFFLE [RS_66]
                                       PartitionCols:_col1
                                       Merge Join Operator [MERGEJOIN_151] (rows=633595212 width=88)
                                         Conds:RS_63._col0=RS_64._col0(Inner),Output:["_col1","_col2","_col3","_col4"]
-                                      <-Map 16 [SIMPLE_EDGE]
+                                      <-Map 15 [SIMPLE_EDGE]
                                         SHUFFLE [RS_64]
                                           PartitionCols:_col0
                                            Please refer to the previous Select Operator [SEL_11]
-                                      <-Map 23 [SIMPLE_EDGE]
+                                      <-Map 22 [SIMPLE_EDGE]
                                         SHUFFLE [RS_63]
                                           PartitionCols:_col0
                                           Select Operator [SEL_53] (rows=575995635 width=88)
@@ -264,17 +267,4 @@ Stage-0
                                               predicate:(ss_customer_sk is not null and ss_item_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null)
                                               TableScan [TS_51] (rows=575995635 width=88)
                                                 default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_store_sk","ss_ext_sales_price"]
-                          <-Reducer 7 [SIMPLE_EDGE]
-                            SHUFFLE [RS_76]
-                              PartitionCols:_col0
-                              Merge Join Operator [MERGEJOIN_150] (rows=88000001 width=860)
-                                Conds:RS_73._col1=RS_74._col0(Inner),Output:["_col0"]
-                              <-Map 1 [SIMPLE_EDGE]
-                                SHUFFLE [RS_73]
-                                  PartitionCols:_col1
-                                   Please refer to the previous Select Operator [SEL_2]
-                              <-Map 10 [SIMPLE_EDGE]
-                                SHUFFLE [RS_74]
-                                  PartitionCols:_col0
-                                   Please refer to the previous Select Operator [SEL_5]