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/22 02:10:14 UTC

[09/51] [partial] hive git commit: HIVE-20718: Add perf cli driver with constraints (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/b8299551/ql/src/test/results/clientpositive/perf/tez/constraints/query69.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query69.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query69.q.out
new file mode 100644
index 0000000..8fe3134
--- /dev/null
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query69.q.out
@@ -0,0 +1,359 @@
+PREHOOK: query: explain
+select  
+  cd_gender,
+  cd_marital_status,
+  cd_education_status,
+  count(*) cnt1,
+  cd_purchase_estimate,
+  count(*) cnt2,
+  cd_credit_rating,
+  count(*) cnt3
+ from
+  customer c,customer_address ca,customer_demographics
+ where
+  c.c_current_addr_sk = ca.ca_address_sk and
+  ca_state in ('CO','IL','MN') and
+  cd_demo_sk = c.c_current_cdemo_sk and 
+  exists (select *
+          from store_sales,date_dim
+          where c.c_customer_sk = ss_customer_sk and
+                ss_sold_date_sk = d_date_sk and
+                d_year = 1999 and
+                d_moy between 1 and 1+2) and
+   (not exists (select *
+            from web_sales,date_dim
+            where c.c_customer_sk = ws_bill_customer_sk and
+                  ws_sold_date_sk = d_date_sk and
+                  d_year = 1999 and
+                  d_moy between 1 and 1+2) and
+    not exists (select * 
+            from catalog_sales,date_dim
+            where c.c_customer_sk = cs_ship_customer_sk and
+                  cs_sold_date_sk = d_date_sk and
+                  d_year = 1999 and
+                  d_moy between 1 and 1+2))
+ group by cd_gender,
+          cd_marital_status,
+          cd_education_status,
+          cd_purchase_estimate,
+          cd_credit_rating
+ order by cd_gender,
+          cd_marital_status,
+          cd_education_status,
+          cd_purchase_estimate,
+          cd_credit_rating
+ limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@catalog_sales
+PREHOOK: Input: default@customer
+PREHOOK: Input: default@customer_address
+PREHOOK: Input: default@customer_demographics
+PREHOOK: Input: default@date_dim
+PREHOOK: Input: default@store_sales
+PREHOOK: Input: default@web_sales
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: explain
+select  
+  cd_gender,
+  cd_marital_status,
+  cd_education_status,
+  count(*) cnt1,
+  cd_purchase_estimate,
+  count(*) cnt2,
+  cd_credit_rating,
+  count(*) cnt3
+ from
+  customer c,customer_address ca,customer_demographics
+ where
+  c.c_current_addr_sk = ca.ca_address_sk and
+  ca_state in ('CO','IL','MN') and
+  cd_demo_sk = c.c_current_cdemo_sk and 
+  exists (select *
+          from store_sales,date_dim
+          where c.c_customer_sk = ss_customer_sk and
+                ss_sold_date_sk = d_date_sk and
+                d_year = 1999 and
+                d_moy between 1 and 1+2) and
+   (not exists (select *
+            from web_sales,date_dim
+            where c.c_customer_sk = ws_bill_customer_sk and
+                  ws_sold_date_sk = d_date_sk and
+                  d_year = 1999 and
+                  d_moy between 1 and 1+2) and
+    not exists (select * 
+            from catalog_sales,date_dim
+            where c.c_customer_sk = cs_ship_customer_sk and
+                  cs_sold_date_sk = d_date_sk and
+                  d_year = 1999 and
+                  d_moy between 1 and 1+2))
+ group by cd_gender,
+          cd_marital_status,
+          cd_education_status,
+          cd_purchase_estimate,
+          cd_credit_rating
+ order by cd_gender,
+          cd_marital_status,
+          cd_education_status,
+          cd_purchase_estimate,
+          cd_credit_rating
+ limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@catalog_sales
+POSTHOOK: Input: default@customer
+POSTHOOK: Input: default@customer_address
+POSTHOOK: Input: default@customer_demographics
+POSTHOOK: Input: default@date_dim
+POSTHOOK: Input: default@store_sales
+POSTHOOK: Input: default@web_sales
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Map 14 <- Reducer 11 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE)
+Map 24 <- Reducer 10 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE)
+Map 25 <- Reducer 23 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE)
+Reducer 10 <- Reducer 4 (CUSTOM_SIMPLE_EDGE)
+Reducer 11 <- Reducer 3 (CUSTOM_SIMPLE_EDGE)
+Reducer 15 <- Map 14 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE)
+Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE)
+Reducer 18 <- Map 16 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE)
+Reducer 19 <- Reducer 18 (SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE)
+Reducer 20 <- Map 16 (CUSTOM_SIMPLE_EDGE)
+Reducer 21 <- Map 16 (SIMPLE_EDGE), Map 25 (SIMPLE_EDGE)
+Reducer 22 <- Reducer 21 (SIMPLE_EDGE)
+Reducer 23 <- Map 16 (CUSTOM_SIMPLE_EDGE)
+Reducer 3 <- Map 13 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 4 <- Reducer 15 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 19 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE)
+Reducer 6 <- Reducer 22 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE)
+Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
+Reducer 8 <- Reducer 7 (SIMPLE_EDGE)
+Reducer 9 <- Reducer 5 (CUSTOM_SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:100
+    Stage-1
+      Reducer 8 vectorized
+      File Output Operator [FS_238]
+        Limit [LIM_237] (rows=1 width=383)
+          Number of rows:100
+          Select Operator [SEL_236] (rows=1 width=383)
+            Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+          <-Reducer 7 [SIMPLE_EDGE] vectorized
+            SHUFFLE [RS_235]
+              Select Operator [SEL_234] (rows=1 width=383)
+                Output:["_col0","_col1","_col2","_col3","_col4","_col6"]
+                Group By Operator [GBY_233] (rows=1 width=367)
+                  Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4
+                <-Reducer 6 [SIMPLE_EDGE]
+                  SHUFFLE [RS_68]
+                    PartitionCols:_col0, _col1, _col2, _col3, _col4
+                    Group By Operator [GBY_67] (rows=1 width=367)
+                      Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count()"],keys:_col6, _col7, _col8, _col9, _col10
+                      Top N Key Operator [TNK_104] (rows=1 width=363)
+                        keys:_col6, _col7, _col8, _col9, _col10,sort order:+++++,top n:100
+                        Select Operator [SEL_66] (rows=1 width=363)
+                          Output:["_col6","_col7","_col8","_col9","_col10"]
+                          Filter Operator [FIL_65] (rows=1 width=363)
+                            predicate:_col14 is null
+                            Merge Join Operator [MERGEJOIN_183] (rows=1 width=363)
+                              Conds:RS_62._col0=RS_232._col0(Left Outer),Output:["_col6","_col7","_col8","_col9","_col10","_col14"]
+                            <-Reducer 5 [ONE_TO_ONE_EDGE]
+                              PARTITION_ONLY_SHUFFLE [RS_62]
+                                PartitionCols:_col0
+                                Select Operator [SEL_47] (rows=1 width=367)
+                                  Output:["_col0","_col6","_col7","_col8","_col9","_col10"]
+                                  Filter Operator [FIL_46] (rows=1 width=367)
+                                    predicate:_col12 is null
+                                    Merge Join Operator [MERGEJOIN_182] (rows=33 width=367)
+                                      Conds:RS_43._col0=RS_222._col0(Left Outer),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col12"]
+                                    <-Reducer 4 [ONE_TO_ONE_EDGE]
+                                      FORWARD [RS_43]
+                                        PartitionCols:_col0
+                                        Merge Join Operator [MERGEJOIN_181] (rows=6841 width=363)
+                                          Conds:RS_40._col0=RS_41._col0(Left Semi),Output:["_col0","_col6","_col7","_col8","_col9","_col10"]
+                                        <-Reducer 3 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_40]
+                                            PartitionCols:_col0
+                                            Merge Join Operator [MERGEJOIN_177] (rows=4605476 width=363)
+                                              Conds:RS_35._col1=RS_191._col0(Inner),Output:["_col0","_col6","_col7","_col8","_col9","_col10"]
+                                            <-Map 13 [SIMPLE_EDGE] vectorized
+                                              SHUFFLE [RS_191]
+                                                PartitionCols:_col0
+                                                Select Operator [SEL_190] (rows=1861800 width=363)
+                                                  Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+                                                  TableScan [TS_6] (rows=1861800 width=363)
+                                                    default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:COMPLETE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status","cd_purchase_estimate","cd_credit_rating"]
+                                            <-Reducer 2 [SIMPLE_EDGE]
+                                              SHUFFLE [RS_35]
+                                                PartitionCols:_col1
+                                                Merge Join Operator [MERGEJOIN_176] (rows=4541258 width=5)
+                                                  Conds:RS_186._col2=RS_189._col0(Inner),Output:["_col0","_col1"]
+                                                <-Map 1 [SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_186]
+                                                    PartitionCols:_col2
+                                                    Select Operator [SEL_185] (rows=77201384 width=11)
+                                                      Output:["_col0","_col1","_col2"]
+                                                      Filter Operator [FIL_184] (rows=77201384 width=11)
+                                                        predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null)
+                                                        TableScan [TS_0] (rows=80000000 width=11)
+                                                          default@customer,c,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"]
+                                                <-Map 12 [SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_189]
+                                                    PartitionCols:_col0
+                                                    Select Operator [SEL_188] (rows=2352941 width=90)
+                                                      Output:["_col0"]
+                                                      Filter Operator [FIL_187] (rows=2352941 width=90)
+                                                        predicate:(ca_state) IN ('CO', 'IL', 'MN')
+                                                        TableScan [TS_3] (rows=40000000 width=90)
+                                                          default@customer_address,ca,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_state"]
+                                        <-Reducer 15 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_41]
+                                            PartitionCols:_col0
+                                            Group By Operator [GBY_39] (rows=116289 width=1)
+                                              Output:["_col0"],keys:_col0
+                                              Select Operator [SEL_17] (rows=43153353 width=1)
+                                                Output:["_col0"]
+                                                Merge Join Operator [MERGEJOIN_178] (rows=43153353 width=1)
+                                                  Conds:RS_212._col0=RS_194._col0(Inner),Output:["_col1"]
+                                                <-Map 16 [SIMPLE_EDGE] vectorized
+                                                  PARTITION_ONLY_SHUFFLE [RS_194]
+                                                    PartitionCols:_col0
+                                                    Select Operator [SEL_193] (rows=150 width=4)
+                                                      Output:["_col0"]
+                                                      Filter Operator [FIL_192] (rows=150 width=12)
+                                                        predicate:((d_year = 1999) and d_moy BETWEEN 1 AND 3)
+                                                        TableScan [TS_11] (rows=73049 width=12)
+                                                          default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year","d_moy"]
+                                                <-Map 14 [SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_212]
+                                                    PartitionCols:_col0
+                                                    Select Operator [SEL_211] (rows=525327388 width=7)
+                                                      Output:["_col0","_col1"]
+                                                      Filter Operator [FIL_210] (rows=525327388 width=7)
+                                                        predicate:((ss_customer_sk BETWEEN DynamicValue(RS_40_c_c_customer_sk_min) AND DynamicValue(RS_40_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_40_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_15_date_dim_d_date_sk_min) AND DynamicValue(RS_15_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_15_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null)
+                                                        TableScan [TS_8] (rows=575995635 width=7)
+                                                          default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_customer_sk"]
+                                                        <-Reducer 11 [BROADCAST_EDGE] vectorized
+                                                          BROADCAST [RS_209]
+                                                            Group By Operator [GBY_208] (rows=1 width=12)
+                                                              Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=4291485)"]
+                                                            <-Reducer 3 [CUSTOM_SIMPLE_EDGE]
+                                                              SHUFFLE [RS_137]
+                                                                Group By Operator [GBY_136] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=4291485)"]
+                                                                  Select Operator [SEL_135] (rows=4605476 width=4)
+                                                                    Output:["_col0"]
+                                                                     Please refer to the previous Merge Join Operator [MERGEJOIN_177]
+                                                        <-Reducer 17 [BROADCAST_EDGE] vectorized
+                                                          BROADCAST [RS_207]
+                                                            Group By Operator [GBY_206] (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_203]
+                                                                Group By Operator [GBY_200] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                  Select Operator [SEL_195] (rows=150 width=4)
+                                                                    Output:["_col0"]
+                                                                     Please refer to the previous Select Operator [SEL_193]
+                                    <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized
+                                      FORWARD [RS_222]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_221] (rows=116289 width=7)
+                                          Output:["_col0","_col1"]
+                                          Group By Operator [GBY_220] (rows=116289 width=3)
+                                            Output:["_col0"],keys:KEY._col0
+                                          <-Reducer 18 [SIMPLE_EDGE]
+                                            SHUFFLE [RS_29]
+                                              PartitionCols:_col0
+                                              Group By Operator [GBY_28] (rows=116289 width=3)
+                                                Output:["_col0"],keys:_col1
+                                                Merge Join Operator [MERGEJOIN_179] (rows=11823304 width=3)
+                                                  Conds:RS_219._col0=RS_196._col0(Inner),Output:["_col1"]
+                                                <-Map 16 [SIMPLE_EDGE] vectorized
+                                                  PARTITION_ONLY_SHUFFLE [RS_196]
+                                                    PartitionCols:_col0
+                                                     Please refer to the previous Select Operator [SEL_193]
+                                                <-Map 24 [SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_219]
+                                                    PartitionCols:_col0
+                                                    Select Operator [SEL_218] (rows=143930993 width=7)
+                                                      Output:["_col0","_col1"]
+                                                      Filter Operator [FIL_217] (rows=143930993 width=7)
+                                                        predicate:((ws_bill_customer_sk BETWEEN DynamicValue(RS_43_c_c_customer_sk_min) AND DynamicValue(RS_43_c_c_customer_sk_max) and in_bloom_filter(ws_bill_customer_sk, DynamicValue(RS_43_c_c_customer_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_25_date_dim_d_date_sk_min) AND DynamicValue(RS_25_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_25_date_dim_d_date_sk_bloom_filter))) and ws_bill_customer_sk is not null and ws_sold_date_sk is not null)
+                                                        TableScan [TS_18] (rows=144002668 width=7)
+                                                          default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_bill_customer_sk"]
+                                                        <-Reducer 10 [BROADCAST_EDGE] vectorized
+                                                          BROADCAST [RS_216]
+                                                            Group By Operator [GBY_215] (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]
+                                                              FORWARD [RS_152]
+                                                                Group By Operator [GBY_151] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                  Select Operator [SEL_150] (rows=6841 width=4)
+                                                                    Output:["_col0"]
+                                                                     Please refer to the previous Merge Join Operator [MERGEJOIN_181]
+                                                        <-Reducer 20 [BROADCAST_EDGE] vectorized
+                                                          BROADCAST [RS_214]
+                                                            Group By Operator [GBY_213] (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_204]
+                                                                Group By Operator [GBY_201] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                  Select Operator [SEL_197] (rows=150 width=4)
+                                                                    Output:["_col0"]
+                                                                     Please refer to the previous Select Operator [SEL_193]
+                            <-Reducer 22 [ONE_TO_ONE_EDGE] vectorized
+                              FORWARD [RS_232]
+                                PartitionCols:_col0
+                                Select Operator [SEL_231] (rows=115467 width=7)
+                                  Output:["_col0","_col1"]
+                                  Group By Operator [GBY_230] (rows=115467 width=3)
+                                    Output:["_col0"],keys:KEY._col0
+                                  <-Reducer 21 [SIMPLE_EDGE]
+                                    SHUFFLE [RS_59]
+                                      PartitionCols:_col0
+                                      Group By Operator [GBY_58] (rows=115467 width=3)
+                                        Output:["_col0"],keys:_col1
+                                        Merge Join Operator [MERGEJOIN_180] (rows=23255411 width=3)
+                                          Conds:RS_229._col0=RS_198._col0(Inner),Output:["_col1"]
+                                        <-Map 16 [SIMPLE_EDGE] vectorized
+                                          PARTITION_ONLY_SHUFFLE [RS_198]
+                                            PartitionCols:_col0
+                                             Please refer to the previous Select Operator [SEL_193]
+                                        <-Map 25 [SIMPLE_EDGE] vectorized
+                                          SHUFFLE [RS_229]
+                                            PartitionCols:_col0
+                                            Select Operator [SEL_228] (rows=285115246 width=7)
+                                              Output:["_col0","_col1"]
+                                              Filter Operator [FIL_227] (rows=285115246 width=7)
+                                                predicate:((cs_ship_customer_sk BETWEEN DynamicValue(RS_62_c_c_customer_sk_min) AND DynamicValue(RS_62_c_c_customer_sk_max) and in_bloom_filter(cs_ship_customer_sk, DynamicValue(RS_62_c_c_customer_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_ship_customer_sk is not null and cs_sold_date_sk is not null)
+                                                TableScan [TS_48] (rows=287989836 width=7)
+                                                  default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_ship_customer_sk"]
+                                                <-Reducer 23 [BROADCAST_EDGE] vectorized
+                                                  BROADCAST [RS_224]
+                                                    Group By Operator [GBY_223] (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_205]
+                                                        Group By Operator [GBY_202] (rows=1 width=12)
+                                                          Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                          Select Operator [SEL_199] (rows=150 width=4)
+                                                            Output:["_col0"]
+                                                             Please refer to the previous Select Operator [SEL_193]
+                                                <-Reducer 9 [BROADCAST_EDGE] vectorized
+                                                  BROADCAST [RS_226]
+                                                    Group By Operator [GBY_225] (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]
+                                                      PARTITION_ONLY_SHUFFLE [RS_167]
+                                                        Group By Operator [GBY_166] (rows=1 width=12)
+                                                          Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                          Select Operator [SEL_165] (rows=1 width=4)
+                                                            Output:["_col0"]
+                                                             Please refer to the previous Select Operator [SEL_47]
+

http://git-wip-us.apache.org/repos/asf/hive/blob/b8299551/ql/src/test/results/clientpositive/perf/tez/constraints/query7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query7.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query7.q.out
new file mode 100644
index 0000000..6cfaac6
--- /dev/null
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query7.q.out
@@ -0,0 +1,171 @@
+PREHOOK: query: explain
+select  i_item_id, 
+        avg(ss_quantity) agg1,
+        avg(ss_list_price) agg2,
+        avg(ss_coupon_amt) agg3,
+        avg(ss_sales_price) agg4 
+ from store_sales, customer_demographics, date_dim, item, promotion
+ where ss_sold_date_sk = d_date_sk and
+       ss_item_sk = i_item_sk and
+       ss_cdemo_sk = cd_demo_sk and
+       ss_promo_sk = p_promo_sk and
+       cd_gender = 'F' and 
+       cd_marital_status = 'W' and
+       cd_education_status = 'Primary' and
+       (p_channel_email = 'N' or p_channel_event = 'N') and
+       d_year = 1998 
+ group by i_item_id
+ order by i_item_id
+ limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@customer_demographics
+PREHOOK: Input: default@date_dim
+PREHOOK: Input: default@item
+PREHOOK: Input: default@promotion
+PREHOOK: Input: default@store_sales
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: explain
+select  i_item_id, 
+        avg(ss_quantity) agg1,
+        avg(ss_list_price) agg2,
+        avg(ss_coupon_amt) agg3,
+        avg(ss_sales_price) agg4 
+ from store_sales, customer_demographics, date_dim, item, promotion
+ where ss_sold_date_sk = d_date_sk and
+       ss_item_sk = i_item_sk and
+       ss_cdemo_sk = cd_demo_sk and
+       ss_promo_sk = p_promo_sk and
+       cd_gender = 'F' and 
+       cd_marital_status = 'W' and
+       cd_education_status = 'Primary' and
+       (p_channel_email = 'N' or p_channel_event = 'N') and
+       d_year = 1998 
+ group by i_item_id
+ order by i_item_id
+ limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@customer_demographics
+POSTHOOK: Input: default@date_dim
+POSTHOOK: Input: default@item
+POSTHOOK: Input: default@promotion
+POSTHOOK: Input: default@store_sales
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE)
+Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE)
+Reducer 3 <- Map 10 (SIMPLE_EDGE), Reducer 2 (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 5 (SIMPLE_EDGE)
+Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
+Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:100
+    Stage-1
+      Reducer 7 vectorized
+      File Output Operator [FS_128]
+        Limit [LIM_127] (rows=100 width=444)
+          Number of rows:100
+          Select Operator [SEL_126] (rows=310774 width=444)
+            Output:["_col0","_col1","_col2","_col3","_col4"]
+          <-Reducer 6 [SIMPLE_EDGE] vectorized
+            SHUFFLE [RS_125]
+              Select Operator [SEL_124] (rows=310774 width=444)
+                Output:["_col0","_col1","_col2","_col3","_col4"]
+                Group By Operator [GBY_123] (rows=310774 width=476)
+                  Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],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)"],keys:KEY._col0
+                <-Reducer 5 [SIMPLE_EDGE]
+                  SHUFFLE [RS_28]
+                    PartitionCols:_col0
+                    Group By Operator [GBY_27] (rows=462000 width=476)
+                      Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col4)","count(_col4)","sum(_col5)","count(_col5)","sum(_col7)","count(_col7)","sum(_col6)","count(_col6)"],keys:_col12
+                      Top N Key Operator [TNK_54] (rows=1441769 width=100)
+                        keys:_col12,sort order:+,top n:100
+                        Merge Join Operator [MERGEJOIN_98] (rows=1441769 width=100)
+                          Conds:RS_23._col1=RS_122._col0(Inner),Output:["_col4","_col5","_col6","_col7","_col12"]
+                        <-Map 13 [SIMPLE_EDGE] vectorized
+                          SHUFFLE [RS_122]
+                            PartitionCols:_col0
+                            Select Operator [SEL_121] (rows=462000 width=104)
+                              Output:["_col0","_col1"]
+                              TableScan [TS_12] (rows=462000 width=104)
+                                default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_id"]
+                        <-Reducer 4 [SIMPLE_EDGE]
+                          SHUFFLE [RS_23]
+                            PartitionCols:_col1
+                            Merge Join Operator [MERGEJOIN_97] (rows=1441769 width=4)
+                              Conds:RS_20._col3=RS_120._col0(Inner),Output:["_col1","_col4","_col5","_col6","_col7"]
+                            <-Map 12 [SIMPLE_EDGE] vectorized
+                              SHUFFLE [RS_120]
+                                PartitionCols:_col0
+                                Select Operator [SEL_119] (rows=2300 width=4)
+                                  Output:["_col0"]
+                                  Filter Operator [FIL_118] (rows=2300 width=174)
+                                    predicate:((p_channel_email = 'N') or (p_channel_event = 'N'))
+                                    TableScan [TS_9] (rows=2300 width=174)
+                                      default@promotion,promotion,Tbl:COMPLETE,Col:COMPLETE,Output:["p_promo_sk","p_channel_email","p_channel_event"]
+                            <-Reducer 3 [SIMPLE_EDGE]
+                              SHUFFLE [RS_20]
+                                PartitionCols:_col3
+                                Merge Join Operator [MERGEJOIN_96] (rows=1441769 width=4)
+                                  Conds:RS_17._col0=RS_109._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7"]
+                                <-Map 10 [SIMPLE_EDGE] vectorized
+                                  SHUFFLE [RS_109]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_108] (rows=652 width=4)
+                                      Output:["_col0"]
+                                      Filter Operator [FIL_107] (rows=652 width=8)
+                                        predicate:(d_year = 1998)
+                                        TableScan [TS_6] (rows=73049 width=8)
+                                          default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"]
+                                <-Reducer 2 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_17]
+                                    PartitionCols:_col0
+                                    Merge Join Operator [MERGEJOIN_95] (rows=4037893 width=4)
+                                      Conds:RS_117._col2=RS_101._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7"]
+                                    <-Map 8 [SIMPLE_EDGE] vectorized
+                                      PARTITION_ONLY_SHUFFLE [RS_101]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_100] (rows=14776 width=4)
+                                          Output:["_col0"]
+                                          Filter Operator [FIL_99] (rows=14776 width=268)
+                                            predicate:((cd_education_status = 'Primary') and (cd_gender = 'F') and (cd_marital_status = 'W'))
+                                            TableScan [TS_3] (rows=1861800 width=268)
+                                              default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:COMPLETE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status"]
+                                    <-Map 1 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_117]
+                                        PartitionCols:_col2
+                                        Select Operator [SEL_116] (rows=501686735 width=340)
+                                          Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+                                          Filter Operator [FIL_115] (rows=501686735 width=340)
+                                            predicate:((ss_cdemo_sk BETWEEN DynamicValue(RS_15_customer_demographics_cd_demo_sk_min) AND DynamicValue(RS_15_customer_demographics_cd_demo_sk_max) and in_bloom_filter(ss_cdemo_sk, DynamicValue(RS_15_customer_demographics_cd_demo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_18_date_dim_d_date_sk_min) AND DynamicValue(RS_18_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_18_date_dim_d_date_sk_bloom_filter))) and ss_cdemo_sk is not null and ss_promo_sk is not null and ss_sold_date_sk is not null)
+                                            TableScan [TS_0] (rows=575995635 width=340)
+                                              default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_cdemo_sk","ss_promo_sk","ss_quantity","ss_list_price","ss_sales_price","ss_coupon_amt"]
+                                            <-Reducer 11 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_114]
+                                                Group By Operator [GBY_113] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                <-Map 10 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_112]
+                                                    Group By Operator [GBY_111] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                      Select Operator [SEL_110] (rows=652 width=4)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_108]
+                                            <-Reducer 9 [BROADCAST_EDGE] vectorized
+                                              BROADCAST [RS_106]
+                                                Group By Operator [GBY_105] (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_104]
+                                                    Group By Operator [GBY_103] (rows=1 width=12)
+                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                      Select Operator [SEL_102] (rows=14776 width=4)
+                                                        Output:["_col0"]
+                                                         Please refer to the previous Select Operator [SEL_100]
+

http://git-wip-us.apache.org/repos/asf/hive/blob/b8299551/ql/src/test/results/clientpositive/perf/tez/constraints/query70.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query70.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query70.q.out
new file mode 100644
index 0000000..184d281
--- /dev/null
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query70.q.out
@@ -0,0 +1,216 @@
+PREHOOK: query: explain
+select  
+    sum(ss_net_profit) as total_sum
+   ,s_state
+   ,s_county
+   ,grouping(s_state)+grouping(s_county) as lochierarchy
+   ,rank() over (
+ 	partition by grouping(s_state)+grouping(s_county),
+ 	case when grouping(s_county) = 0 then s_state end 
+ 	order by sum(ss_net_profit) desc) as rank_within_parent
+ from
+    store_sales
+   ,date_dim       d1
+   ,store
+ where
+    d1.d_month_seq between 1212 and 1212+11
+ and d1.d_date_sk = ss_sold_date_sk
+ and s_store_sk  = ss_store_sk
+ and s_state in
+             ( select s_state
+               from  (select s_state as s_state,
+ 			    rank() over ( partition by s_state order by sum(ss_net_profit) desc) as ranking
+                      from   store_sales, store, date_dim
+                      where  d_month_seq between 1212 and 1212+11
+ 			    and d_date_sk = ss_sold_date_sk
+ 			    and s_store_sk  = ss_store_sk
+                      group by s_state
+                     ) tmp1 
+               where ranking <= 5
+             )
+ group by rollup(s_state,s_county)
+ order by
+   lochierarchy desc
+  ,case when lochierarchy = 0 then s_state end
+  ,rank_within_parent
+ limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@date_dim
+PREHOOK: Input: default@store
+PREHOOK: Input: default@store_sales
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: explain
+select  
+    sum(ss_net_profit) as total_sum
+   ,s_state
+   ,s_county
+   ,grouping(s_state)+grouping(s_county) as lochierarchy
+   ,rank() over (
+ 	partition by grouping(s_state)+grouping(s_county),
+ 	case when grouping(s_county) = 0 then s_state end 
+ 	order by sum(ss_net_profit) desc) as rank_within_parent
+ from
+    store_sales
+   ,date_dim       d1
+   ,store
+ where
+    d1.d_month_seq between 1212 and 1212+11
+ and d1.d_date_sk = ss_sold_date_sk
+ and s_store_sk  = ss_store_sk
+ and s_state in
+             ( select s_state
+               from  (select s_state as s_state,
+ 			    rank() over ( partition by s_state order by sum(ss_net_profit) desc) as ranking
+                      from   store_sales, store, date_dim
+                      where  d_month_seq between 1212 and 1212+11
+ 			    and d_date_sk = ss_sold_date_sk
+ 			    and s_store_sk  = ss_store_sk
+                      group by s_state
+                     ) tmp1 
+               where ranking <= 5
+             )
+ group by rollup(s_state,s_county)
+ order by
+   lochierarchy desc
+  ,case when lochierarchy = 0 then s_state end
+  ,rank_within_parent
+ limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@date_dim
+POSTHOOK: Input: default@store
+POSTHOOK: Input: default@store_sales
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Map 1 <- Reducer 12 (BROADCAST_EDGE)
+Reducer 10 <- Reducer 9 (SIMPLE_EDGE)
+Reducer 12 <- Map 11 (CUSTOM_SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE)
+Reducer 3 <- Map 13 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 4 <- Reducer 10 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (SIMPLE_EDGE)
+Reducer 6 <- Reducer 5 (SIMPLE_EDGE)
+Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
+Reducer 8 <- Map 14 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 9 <- Reducer 8 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 7 vectorized
+      File Output Operator [FS_168]
+        Limit [LIM_167] (rows=100 width=492)
+          Number of rows:100
+          Select Operator [SEL_166] (rows=240 width=492)
+            Output:["_col0","_col1","_col2","_col3","_col4"]
+          <-Reducer 6 [SIMPLE_EDGE] vectorized
+            SHUFFLE [RS_165]
+              Select Operator [SEL_164] (rows=240 width=492)
+                Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+                PTF Operator [PTF_163] (rows=240 width=304)
+                  Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col2 DESC NULLS LAST","partition by:":"(grouping(_col3, 1) + grouping(_col3, 0)), CASE WHEN ((grouping(_col3, 0) = 0)) THEN (_col0) ELSE (CAST( null AS STRING)) END"}]
+                  Select Operator [SEL_162] (rows=240 width=304)
+                    Output:["_col0","_col1","_col2","_col3"]
+                  <-Reducer 5 [SIMPLE_EDGE] vectorized
+                    SHUFFLE [RS_161]
+                      PartitionCols:(grouping(_col3, 1) + grouping(_col3, 0)), CASE WHEN ((grouping(_col3, 0) = 0)) THEN (_col0) ELSE (CAST( null AS STRING)) END
+                      Select Operator [SEL_160] (rows=240 width=304)
+                        Output:["_col0","_col1","_col2","_col3"]
+                        Group By Operator [GBY_159] (rows=240 width=304)
+                          Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2
+                        <-Reducer 4 [SIMPLE_EDGE]
+                          SHUFFLE [RS_49]
+                            PartitionCols:_col0, _col1, _col2
+                            Group By Operator [GBY_48] (rows=18000 width=304)
+                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col2)"],keys:_col0, _col1, 0L
+                              Select Operator [SEL_46] (rows=29778893 width=207)
+                                Output:["_col0","_col1","_col2"]
+                                Merge Join Operator [MERGEJOIN_134] (rows=29778893 width=207)
+                                  Conds:RS_43._col7=RS_158._col0(Inner),Output:["_col2","_col6","_col7"]
+                                <-Reducer 10 [SIMPLE_EDGE] vectorized
+                                  SHUFFLE [RS_158]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_157] (rows=16 width=86)
+                                      Output:["_col0"]
+                                      Filter Operator [FIL_156] (rows=16 width=198)
+                                        predicate:(rank_window_0 <= 5)
+                                        PTF Operator [PTF_155] (rows=49 width=198)
+                                          Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 DESC NULLS LAST","partition by:":"_col0"}]
+                                          Select Operator [SEL_154] (rows=49 width=198)
+                                            Output:["_col0","_col1"]
+                                          <-Reducer 9 [SIMPLE_EDGE] vectorized
+                                            SHUFFLE [RS_153]
+                                              PartitionCols:_col0
+                                              Group By Operator [GBY_152] (rows=49 width=198)
+                                                Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0
+                                              <-Reducer 8 [SIMPLE_EDGE]
+                                                SHUFFLE [RS_26]
+                                                  PartitionCols:_col0
+                                                  Group By Operator [GBY_25] (rows=1704 width=198)
+                                                    Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5
+                                                    Merge Join Operator [MERGEJOIN_133] (rows=91197860 width=168)
+                                                      Conds:RS_21._col1=RS_151._col0(Inner),Output:["_col2","_col5"]
+                                                    <-Reducer 2 [SIMPLE_EDGE]
+                                                      SHUFFLE [RS_21]
+                                                        PartitionCols:_col1
+                                                        Merge Join Operator [MERGEJOIN_130] (rows=91197860 width=85)
+                                                          Conds:RS_145._col0=RS_137._col0(Inner),Output:["_col1","_col2"]
+                                                        <-Map 11 [SIMPLE_EDGE] vectorized
+                                                          SHUFFLE [RS_137]
+                                                            PartitionCols:_col0
+                                                            Select Operator [SEL_136] (rows=317 width=8)
+                                                              Output:["_col0"]
+                                                              Filter Operator [FIL_135] (rows=317 width=8)
+                                                                predicate:d_month_seq BETWEEN 1212 AND 1223
+                                                                TableScan [TS_3] (rows=73049 width=8)
+                                                                  default@date_dim,d1,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_month_seq"]
+                                                        <-Map 1 [SIMPLE_EDGE] vectorized
+                                                          SHUFFLE [RS_145]
+                                                            PartitionCols:_col0
+                                                            Select Operator [SEL_144] (rows=525329897 width=114)
+                                                              Output:["_col0","_col1","_col2"]
+                                                              Filter Operator [FIL_143] (rows=525329897 width=114)
+                                                                predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_38_d1_d_date_sk_min) AND DynamicValue(RS_38_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_38_d1_d_date_sk_bloom_filter))) and 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_net_profit"]
+                                                                <-Reducer 12 [BROADCAST_EDGE] vectorized
+                                                                  BROADCAST [RS_142]
+                                                                    Group By Operator [GBY_141] (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_140]
+                                                                        Group By Operator [GBY_139] (rows=1 width=12)
+                                                                          Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                          Select Operator [SEL_138] (rows=317 width=4)
+                                                                            Output:["_col0"]
+                                                                             Please refer to the previous Select Operator [SEL_136]
+                                                    <-Map 14 [SIMPLE_EDGE] vectorized
+                                                      SHUFFLE [RS_151]
+                                                        PartitionCols:_col0
+                                                        Select Operator [SEL_150] (rows=1704 width=90)
+                                                          Output:["_col0","_col1"]
+                                                          Filter Operator [FIL_149] (rows=1704 width=90)
+                                                            predicate:s_state is not null
+                                                            TableScan [TS_15] (rows=1704 width=90)
+                                                              default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_state"]
+                                <-Reducer 3 [SIMPLE_EDGE]
+                                  SHUFFLE [RS_43]
+                                    PartitionCols:_col7
+                                    Merge Join Operator [MERGEJOIN_131] (rows=91197860 width=266)
+                                      Conds:RS_40._col1=RS_148._col0(Inner),Output:["_col2","_col6","_col7"]
+                                    <-Reducer 2 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_40]
+                                        PartitionCols:_col1
+                                         Please refer to the previous Merge Join Operator [MERGEJOIN_130]
+                                    <-Map 13 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_148]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_147] (rows=1704 width=188)
+                                          Output:["_col0","_col1","_col2"]
+                                          Filter Operator [FIL_146] (rows=1704 width=188)
+                                            predicate:s_state is not null
+                                            TableScan [TS_6] (rows=1704 width=188)
+                                              default@store,store,Tbl:COMPLETE,Col:COMPLETE,Output:["s_store_sk","s_county","s_state"]
+

http://git-wip-us.apache.org/repos/asf/hive/blob/b8299551/ql/src/test/results/clientpositive/perf/tez/constraints/query71.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query71.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query71.q.out
new file mode 100644
index 0000000..81f7961
--- /dev/null
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query71.q.out
@@ -0,0 +1,297 @@
+PREHOOK: query: explain
+select i_brand_id brand_id, i_brand brand,t_hour,t_minute,
+ 	sum(ext_price) ext_price
+ from item, (select ws_ext_sales_price as ext_price, 
+                        ws_sold_date_sk as sold_date_sk,
+                        ws_item_sk as sold_item_sk,
+                        ws_sold_time_sk as time_sk  
+                 from web_sales,date_dim
+                 where d_date_sk = ws_sold_date_sk
+                   and d_moy=12
+                   and d_year=2001
+                 union all
+                 select cs_ext_sales_price as ext_price,
+                        cs_sold_date_sk as sold_date_sk,
+                        cs_item_sk as sold_item_sk,
+                        cs_sold_time_sk as time_sk
+                 from catalog_sales,date_dim
+                 where d_date_sk = cs_sold_date_sk
+                   and d_moy=12
+                   and d_year=2001
+                 union all
+                 select ss_ext_sales_price as ext_price,
+                        ss_sold_date_sk as sold_date_sk,
+                        ss_item_sk as sold_item_sk,
+                        ss_sold_time_sk as time_sk
+                 from store_sales,date_dim
+                 where d_date_sk = ss_sold_date_sk
+                   and d_moy=12
+                   and d_year=2001
+                 ) as tmp,time_dim
+ where
+   sold_item_sk = i_item_sk
+   and i_manager_id=1
+   and time_sk = t_time_sk
+   and (t_meal_time = 'breakfast' or t_meal_time = 'dinner')
+ group by i_brand, i_brand_id,t_hour,t_minute
+ order by ext_price desc, i_brand_id
+PREHOOK: type: QUERY
+PREHOOK: Input: default@catalog_sales
+PREHOOK: Input: default@date_dim
+PREHOOK: Input: default@item
+PREHOOK: Input: default@store_sales
+PREHOOK: Input: default@time_dim
+PREHOOK: Input: default@web_sales
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: explain
+select i_brand_id brand_id, i_brand brand,t_hour,t_minute,
+ 	sum(ext_price) ext_price
+ from item, (select ws_ext_sales_price as ext_price, 
+                        ws_sold_date_sk as sold_date_sk,
+                        ws_item_sk as sold_item_sk,
+                        ws_sold_time_sk as time_sk  
+                 from web_sales,date_dim
+                 where d_date_sk = ws_sold_date_sk
+                   and d_moy=12
+                   and d_year=2001
+                 union all
+                 select cs_ext_sales_price as ext_price,
+                        cs_sold_date_sk as sold_date_sk,
+                        cs_item_sk as sold_item_sk,
+                        cs_sold_time_sk as time_sk
+                 from catalog_sales,date_dim
+                 where d_date_sk = cs_sold_date_sk
+                   and d_moy=12
+                   and d_year=2001
+                 union all
+                 select ss_ext_sales_price as ext_price,
+                        ss_sold_date_sk as sold_date_sk,
+                        ss_item_sk as sold_item_sk,
+                        ss_sold_time_sk as time_sk
+                 from store_sales,date_dim
+                 where d_date_sk = ss_sold_date_sk
+                   and d_moy=12
+                   and d_year=2001
+                 ) as tmp,time_dim
+ where
+   sold_item_sk = i_item_sk
+   and i_manager_id=1
+   and time_sk = t_time_sk
+   and (t_meal_time = 'breakfast' or t_meal_time = 'dinner')
+ group by i_brand, i_brand_id,t_hour,t_minute
+ order by ext_price desc, i_brand_id
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@catalog_sales
+POSTHOOK: Input: default@date_dim
+POSTHOOK: Input: default@item
+POSTHOOK: Input: default@store_sales
+POSTHOOK: Input: default@time_dim
+POSTHOOK: Input: default@web_sales
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Map 1 <- Reducer 19 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE)
+Map 10 <- Reducer 13 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE)
+Map 14 <- Reducer 17 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE)
+Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE), Union 3 (CONTAINS)
+Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE)
+Reducer 15 <- Map 14 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE), Union 3 (CONTAINS)
+Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE)
+Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE), Union 3 (CONTAINS)
+Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE)
+Reducer 4 <- Map 18 (SIMPLE_EDGE), Union 3 (SIMPLE_EDGE)
+Reducer 5 <- Map 20 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE)
+Reducer 6 <- Reducer 5 (SIMPLE_EDGE)
+Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
+Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 7 vectorized
+      File Output Operator [FS_188]
+        Select Operator [SEL_187] (rows=1991967 width=223)
+          Output:["_col0","_col1","_col2","_col3","_col4"]
+        <-Reducer 6 [SIMPLE_EDGE] vectorized
+          SHUFFLE [RS_186]
+            Select Operator [SEL_185] (rows=1991967 width=227)
+              Output:["_col1","_col2","_col3","_col4","_col5"]
+              Group By Operator [GBY_184] (rows=1991967 width=223)
+                Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3
+              <-Reducer 5 [SIMPLE_EDGE]
+                SHUFFLE [RS_46]
+                  PartitionCols:_col0, _col1, _col2, _col3
+                  Group By Operator [GBY_45] (rows=1991967 width=223)
+                    Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col0)"],keys:_col4, _col7, _col8, _col5
+                    Merge Join Operator [MERGEJOIN_140] (rows=1991967 width=112)
+                      Conds:RS_41._col2=RS_173._col0(Inner),Output:["_col0","_col4","_col5","_col7","_col8"]
+                    <-Map 20 [SIMPLE_EDGE] vectorized
+                      SHUFFLE [RS_173]
+                        PartitionCols:_col0
+                        Select Operator [SEL_172] (rows=43200 width=12)
+                          Output:["_col0","_col1","_col2"]
+                          Filter Operator [FIL_171] (rows=43200 width=99)
+                            predicate:(t_meal_time) IN ('breakfast', 'dinner')
+                            TableScan [TS_35] (rows=86400 width=99)
+                              default@time_dim,time_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["t_time_sk","t_hour","t_minute","t_meal_time"]
+                    <-Reducer 4 [SIMPLE_EDGE]
+                      SHUFFLE [RS_41]
+                        PartitionCols:_col2
+                        Merge Join Operator [MERGEJOIN_139] (rows=3983933 width=104)
+                          Conds:Union 3._col1=RS_163._col0(Inner),Output:["_col0","_col2","_col4","_col5"]
+                        <-Map 18 [SIMPLE_EDGE] vectorized
+                          SHUFFLE [RS_163]
+                            PartitionCols:_col0
+                            Select Operator [SEL_162] (rows=7333 width=107)
+                              Output:["_col0","_col1","_col2"]
+                              Filter Operator [FIL_161] (rows=7333 width=111)
+                                predicate:(i_manager_id = 1)
+                                TableScan [TS_32] (rows=462000 width=111)
+                                  default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_brand_id","i_brand","i_manager_id"]
+                        <-Union 3 [SIMPLE_EDGE]
+                          <-Reducer 11 [CONTAINS]
+                            Reduce Output Operator [RS_148]
+                              PartitionCols:_col1
+                              Select Operator [SEL_146] (rows=7751851 width=98)
+                                Output:["_col0","_col1","_col2"]
+                                Merge Join Operator [MERGEJOIN_145] (rows=7751851 width=98)
+                                  Conds:RS_199._col0=RS_191._col0(Inner),Output:["_col1","_col2","_col3"]
+                                <-Map 12 [SIMPLE_EDGE] vectorized
+                                  PARTITION_ONLY_SHUFFLE [RS_191]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_190] (rows=50 width=4)
+                                      Output:["_col0"]
+                                      Filter Operator [FIL_189] (rows=50 width=12)
+                                        predicate:((d_moy = 12) and (d_year = 2001))
+                                        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 10 [SIMPLE_EDGE] vectorized
+                                  SHUFFLE [RS_199]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_198] (rows=285116947 width=123)
+                                      Output:["_col0","_col1","_col2","_col3"]
+                                      Filter Operator [FIL_197] (rows=285116947 width=123)
+                                        predicate:((cs_item_sk BETWEEN DynamicValue(RS_39_item_i_item_sk_min) AND DynamicValue(RS_39_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_39_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_17_date_dim_d_date_sk_min) AND DynamicValue(RS_17_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_17_date_dim_d_date_sk_bloom_filter))) and (cs_sold_time_sk BETWEEN DynamicValue(RS_42_time_dim_t_time_sk_min) AND DynamicValue(RS_42_time_dim_t_time_sk_max) and in_bloom_filter(cs_sold_time_sk, DynamicValue(RS_42_time_dim_t_time_sk_bloom_filter))) and cs_sold_date_sk is not null and cs_sold_time_sk is not null)
+                                        TableScan [TS_10] (rows=287989836 width=123)
+                                          default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_sold_time_sk","cs_item_sk","cs_ext_sales_price"]
+                                        <-Reducer 19 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_169]
+                                            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 18 [CUSTOM_SIMPLE_EDGE] vectorized
+                                              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_164] (rows=7333 width=4)
+                                                    Output:["_col0"]
+                                                     Please refer to the previous Select Operator [SEL_162]
+                                        <-Reducer 21 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_179]
+                                            Group By Operator [GBY_177] (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
+                                              SHUFFLE [RS_176]
+                                                Group By Operator [GBY_175] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                  Select Operator [SEL_174] (rows=43200 width=4)
+                                                    Output:["_col0"]
+                                                     Please refer to the previous Select Operator [SEL_172]
+                                        <-Reducer 13 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_196]
+                                            Group By Operator [GBY_195] (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
+                                              PARTITION_ONLY_SHUFFLE [RS_194]
+                                                Group By Operator [GBY_193] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                  Select Operator [SEL_192] (rows=50 width=4)
+                                                    Output:["_col0"]
+                                                     Please refer to the previous Select Operator [SEL_190]
+                          <-Reducer 15 [CONTAINS]
+                            Reduce Output Operator [RS_152]
+                              PartitionCols:_col1
+                              Select Operator [SEL_150] (rows=14384397 width=4)
+                                Output:["_col0","_col1","_col2"]
+                                Merge Join Operator [MERGEJOIN_149] (rows=14384397 width=4)
+                                  Conds:RS_210._col0=RS_202._col0(Inner),Output:["_col1","_col2","_col3"]
+                                <-Map 16 [SIMPLE_EDGE] vectorized
+                                  PARTITION_ONLY_SHUFFLE [RS_202]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_201] (rows=50 width=4)
+                                      Output:["_col0"]
+                                      Filter Operator [FIL_200] (rows=50 width=12)
+                                        predicate:((d_moy = 12) and (d_year = 2001))
+                                        TableScan [TS_24] (rows=73049 width=12)
+                                          default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year","d_moy"]
+                                <-Map 14 [SIMPLE_EDGE] vectorized
+                                  SHUFFLE [RS_210]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_209] (rows=525325345 width=118)
+                                      Output:["_col0","_col1","_col2","_col3"]
+                                      Filter Operator [FIL_208] (rows=525325345 width=118)
+                                        predicate:((ss_item_sk BETWEEN DynamicValue(RS_39_item_i_item_sk_min) AND DynamicValue(RS_39_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_39_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_28_date_dim_d_date_sk_min) AND DynamicValue(RS_28_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_28_date_dim_d_date_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_42_time_dim_t_time_sk_min) AND DynamicValue(RS_42_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_42_time_dim_t_time_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_sold_time_sk is not null)
+                                        TableScan [TS_21] (rows=575995635 width=118)
+                                          default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_sold_time_sk","ss_item_sk","ss_ext_sales_price"]
+                                        <-Reducer 19 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_170]
+                                             Please refer to the previous Group By Operator [GBY_167]
+                                        <-Reducer 21 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_180]
+                                             Please refer to the previous Group By Operator [GBY_177]
+                                        <-Reducer 17 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_207]
+                                            Group By Operator [GBY_206] (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_205]
+                                                Group By Operator [GBY_204] (rows=1 width=12)
+                                                  Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                  Select Operator [SEL_203] (rows=50 width=4)
+                                                    Output:["_col0"]
+                                                     Please refer to the previous Select Operator [SEL_201]
+                          <-Reducer 2 [CONTAINS]
+                            Reduce Output Operator [RS_144]
+                              PartitionCols:_col1
+                              Select Operator [SEL_142] (rows=3941098 width=118)
+                                Output:["_col0","_col1","_col2"]
+                                Merge Join Operator [MERGEJOIN_141] (rows=3941098 width=118)
+                                  Conds:RS_183._col0=RS_155._col0(Inner),Output:["_col1","_col2","_col3"]
+                                <-Map 8 [SIMPLE_EDGE] vectorized
+                                  PARTITION_ONLY_SHUFFLE [RS_155]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_154] (rows=50 width=4)
+                                      Output:["_col0"]
+                                      Filter Operator [FIL_153] (rows=50 width=12)
+                                        predicate:((d_moy = 12) and (d_year = 2001))
+                                        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 1 [SIMPLE_EDGE] vectorized
+                                  SHUFFLE [RS_183]
+                                    PartitionCols:_col0
+                                    Select Operator [SEL_182] (rows=143930836 width=123)
+                                      Output:["_col0","_col1","_col2","_col3"]
+                                      Filter Operator [FIL_181] (rows=143930836 width=123)
+                                        predicate:((ws_item_sk BETWEEN DynamicValue(RS_39_item_i_item_sk_min) AND DynamicValue(RS_39_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_39_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_7_date_dim_d_date_sk_min) AND DynamicValue(RS_7_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and (ws_sold_time_sk BETWEEN DynamicValue(RS_42_time_dim_t_time_sk_min) AND DynamicValue(RS_42_time_dim_t_time_sk_max) and in_bloom_filter(ws_sold_time_sk, DynamicValue(RS_42_time_dim_t_time_sk_bloom_filter))) and ws_sold_date_sk is not null and ws_sold_time_sk is not null)
+                                        TableScan [TS_0] (rows=144002668 width=123)
+                                          default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_sold_time_sk","ws_item_sk","ws_ext_sales_price"]
+                                        <-Reducer 19 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_168]
+                                             Please refer to the previous Group By Operator [GBY_167]
+                                        <-Reducer 21 [BROADCAST_EDGE] vectorized
+                                          BROADCAST [RS_178]
+                                             Please refer to the previous Group By Operator [GBY_177]
+                                        <-Reducer 9 [BROADCAST_EDGE] vectorized
+                                          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 8 [CUSTOM_SIMPLE_EDGE] vectorized
+                                              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_156] (rows=50 width=4)
+                                                    Output:["_col0"]
+                                                     Please refer to the previous Select Operator [SEL_154]
+